[英]Cannot focus on a remaining unfocused goal in Coq
我试图证明抽引引理(这是逻辑基础书的练习之一)。 我以为我已经完成了MStarApp
案例,但口译员告诉我仍然存在不集中的目标。 只有我不能把这个剩下的目标带到前面。 我尝试了每个子弹级别,但每次我得到[Focus] Wrong bullet: No more goals.
我不知道我的证明是否有问题,或者它是否是解释器中的错误。 任何帮助将非常感激。
- (* MStarApp *)
intros.
destruct s1.
-- replace ([ ] ++ s2) with s2 in *. apply (IH2 H).
reflexivity.
-- pose proof (lt_ge_cases (length (x::s1)) (pumping_constant re)) as [
Hs1lt | Hs1ge].
--- exists [ ], (x::s1), s2. repeat split.
+ unfold not. intro. inversion H0.
+ simpl. simpl in Hs1lt.
apply n_lt_m__n_le_m in Hs1lt.
apply Hs1lt.
+ simpl. intro m.
apply (napp_star T m (x::s1) s2 re Hmatch1 Hmatch2).
--- unfold ge in Hs1ge. pose proof (IH1 Hs1ge) as [
s2' [s3' [s4' [Hxs1Eq [Hs3notEmpty [
Hlens2's3' Hnapp]]]]]].
exists s2', s3', (s4' ++ s2). repeat split.
+ rewrite Hxs1Eq. repeat rewrite <- app_assoc.
reflexivity.
+ assumption.
+ simpl. assumption.
+ intro m. pose proof Hnapp m.
replace (s2' ++ napp m s3' ++ s4' ++ s2) with
((s2' ++ napp m s3' ++ s4') ++ s2).
constructor.
++ assumption.
++ assumption.
++ repeat rewrite <- app_assoc. reflexivity.
(* 'There are unfocused goals.' *)
编辑:我不知道这是否相关,但在我的证明中更高(在MApp
案例中)我有一个assert
,其右大括号以不寻常的方式突出显示(黄色而不是绿色 - 我正在使用 Coq VSCode 中的语言支持扩展)。
您在一些较早的证明分支中有未完成的工作。 您提供的没有任何未完成的目标。 你还没有完成或admit
了一些早期的目标。 或者您可能没有正确完成assert
。 如果您需要帮助,您需要出示证明的那一部分。
这是您的证明开始的证明状态,它由您的证明脚本解决。
Lemma foo
(T: Type)
(s1 s2: list T)
(re: reg_exp T)
(Hmatch1: s1 =~ re)
(Hmatch2: s2 =~ Star re)
(IH1: pumping_constant re <= length s1 ->
exists s2 s3 s4 : list T,
s1 = s2 ++ s3 ++ s4 /\
s3 <> [ ] /\
length s2 + length s3 <= pumping_constant re /\
(forall m : nat, s2 ++ napp m s3 ++ s4 =~ re))
(IH2: pumping_constant (Star re) <= length s2 ->
exists s1 s3 s4 : list T,
s2 = s1 ++ s3 ++ s4 /\
s3 <> [ ] /\
length s1 + length s3 <= pumping_constant (Star re) /\
(forall m : nat, s1 ++ napp m s3 ++ s4 =~ Star re))
:
pumping_constant (Star re) <= length (s1 ++ s2) ->
exists s0 s3 s4 : list T,
s1 ++ s2 = s0 ++ s3 ++ s4 /\
s3 <> [ ] /\
length s0 + length s3 <= pumping_constant (Star re) /\
(forall m : nat, s0 ++ napp m s3 ++ s4 =~ Star re)
.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.