![](/img/trans.png)
[英]Looking for some help on the Sin_domain proof from Software Foundations Color.v
[英]Software Foundations: weak_pumping lemma proof
繼續我在軟件基礎上的工作,我已經達到了weak_pumping
引理。 我設法解決了幾乎所有問題,但找不到MStarApp
案例的解決方案。
這是引理:
s =~ re ->
pumping_constant re <= length s ->
exists s1 s2 s3,
s = s1 ++ s2 ++ s3 /\
s2 <> [] /\
forall m, s1 ++ napp m s2 ++ s3 =~ re.
(** You are to fill in the proof. Several of the lemmas about
[le] that were in an optional exercise earlier in this chapter
may be useful. *)
Proof.
intros T re s Hmatch.
induction Hmatch
as [ | x | s1 re1 s2 re2 Hmatch1 IH1 Hmatch2 IH2
| s1 re1 re2 Hmatch IH | re1 s2 re2 Hmatch IH
| re | s1 s2 re Hmatch1 IH1 Hmatch2 IH2 ].
我設法解決了所有情況,除了最后一個。 這是目前的狀態:
1 subgoal (ID 918)
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 <> [ ] /\ (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 <> [ ] /\ (forall m : nat, s1 ++ napp m s3 ++ s4 =~ Star re)
H : pumping_constant (Star re) <= length s1 + length s2
============================
exists s0 s4 s5 : list T,
s1 ++ s2 = s0 ++ s4 ++ s5 /\
s4 <> [ ] /\ (forall m : nat, s0 ++ napp m s4 ++ s5 =~ Star re)
在我看來,如果我能找到一種方法將H
拆分為pumping_constant re <= length s1 \\/ pumping_constant (Star re) <= length s2
那么我就有了前進的道路(通過將H
拆分為H1
和H2
並應用相關的IHk
到匹配的Hk
然后繼續進行destruct
,三個exists
,等等)。
但是我找不到允許我按照建議拆分H
的引理。
還有什么我可以在這里做的嗎?
謝謝
在其中一種情況下,嘗試破壞 s1 並再次查看引理 napp_star。
看來你已經完成了。 恭喜。
我仍然很困惑,因為我認為我無法證明pumping_constant re <= length s1
或pumping_constant (Star re) <= length s2
with pumping_constant (Star re) <= length s1 + length s2
。
我希望你能給我一些幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.