簡體   English   中英

軟件基礎:weak_pumping 引理證明

[英]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拆分為H1H2並應用相關的IHk到匹配的Hk然后繼續進行destruct ,三個exists ,等等)。

但是我找不到允許我按照建議拆分H的引理。

還有什么我可以在這里做的嗎?

謝謝

在其中一種情況下,嘗試破壞 s1 並再次查看引理 napp_star。

看來你已經完成了。 恭喜。

我仍然很困惑,因為我認為我無法證明pumping_constant re <= length s1pumping_constant (Star re) <= length s2 with pumping_constant (Star re) <= length s1 + length s2

我希望你能給我一些幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM