[英]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.