feat: prove that the Buchi congruence has the saturation property#325
feat: prove that the Buchi congruence has the saturation property#325ctchou wants to merge 53 commits intoleanprover:mainfrom
Conversation
…n of omega-languages of a special form
3774ab4 to
882f606
Compare
882f606 to
88d04a8
Compare
88d04a8 to
973bf61
Compare
…d fix merge conflicts
chenson2018
left a comment
There was a problem hiding this comment.
As I mention I've not fully reviewed buchiFamily_saturation, but here is an initial review.
fmontesi
left a comment
There was a problem hiding this comment.
Looks pretty good to me, just minor things.
| ∃ ss : List State, lts.IsExecution s1 μs s2 ss := by | ||
| grind | ||
|
|
||
| lemma LTS.IsExecution.comp_seg2 |
There was a problem hiding this comment.
Might be a problem with my editor, but I can't find a comp_seg, so why is this called comp_seg2?
There was a problem hiding this comment.
And in general, I don't think we should have names with numbers like this.
| open ωSequence | ||
|
|
||
| /-- Any finite execution extracted from an infinite execution is valid. -/ | ||
| theorem LTS.ωTr_isExecution (h : lts.ωTr ss μs) {n m : ℕ} (hnm : n ≤ m) : |
There was a problem hiding this comment.
I'd call this LTS.ωTr_extract_isExecution
| grind [extract_apppend_right_right] | ||
| · have h : f n + k ≤ f (n + 1) := by lia | ||
| specialize exec h | ||
| grind [extract_apppend_right_right] |
There was a problem hiding this comment.
This makes me notice that apppend has an extra p.
|
My delay in approving this is because of |
|
We can work on this after I get back from my trip on March 12. I don't have my laptop with me now. |
This PR proves that the Buchi congruence introduced in #278 has the saturation property defined in
Cslib.Foundations.Data.Set.Saturation. More precisely, the family of omega-languages of the formU * V^ω, whereUandVare equivalence classes of the Buchi congruence, saturates the omega-language accepted by the underlying Buchi automaton. This proof is the hardest step in proving the closure of ω-regular languages under complementation and explains why the Buchi congruence is defined the way it is. Some miscellaneous results about LTS and infinite sequences that are needed by the proof are also added.