@@ -85,7 +85,7 @@ theorem IsRegular.bot : (⊥ : ωLanguage Symbol).IsRegular := by
8585 accept := ∅ }
8686 use Unit, inferInstance, na
8787 ext xs
88- simp [na]
88+ simp +instances [na]
8989
9090/-- The language of all ω-sequences is ω-regular. -/
9191@[simp]
@@ -96,11 +96,13 @@ theorem IsRegular.top : (⊤ : ωLanguage Symbol).IsRegular := by
9696 accept := univ }
9797 use Unit, inferInstance, na
9898 ext xs
99- simp only [na, NA.Buchi.instωAcceptor, mem_language, mem_univ, frequently_true_iff_neBot ,
100- atTop_neBot, and_true, mem_top, iff_true]
99+ simp +instances only [na, NA.Buchi.instωAcceptor, mem_language, mem_univ,
100+ frequently_true_iff_neBot, atTop_neBot, and_true, mem_top, iff_true]
101101 use const ()
102102 grind [NA.Run]
103103
104+ -- TODO: fix proof to work with backward.isDefEq.respectTransparency
105+ set_option backward.isDefEq.respectTransparency false in
104106/-- The union of two ω-regular languages is ω-regular. -/
105107@[simp]
106108theorem IsRegular.sup {p1 p2 : ωLanguage Symbol}
@@ -120,6 +122,8 @@ theorem IsRegular.sup {p1 p2 : ωLanguage Symbol}
120122 rw [mem_iUnion, Fin.exists_fin_two]
121123 grind
122124
125+ -- TODO: fix proof to work with backward.isDefEq.respectTransparency
126+ set_option backward.isDefEq.respectTransparency false in
123127open NA.Buchi in
124128/-- The intersection of two ω-regular languages is ω-regular. -/
125129@[simp]
@@ -185,6 +189,8 @@ theorem IsRegular.omegaPow [Inhabited Symbol] {l : Language Symbol}
185189 use Unit ⊕ State, inferInstance, ⟨na.loop, {inl ()}⟩
186190 exact NA.Buchi.loop_language_eq
187191
192+ -- TODO: fix proof to work with backward.isDefEq.respectTransparency
193+ set_option backward.isDefEq.respectTransparency false in
188194/-- An ω-language is regular iff it is the finite union of ω-languages of the form `L * M^ω`,
189195where all `L`s and `M`s are regular languages. -/
190196theorem IsRegular.eq_fin_iSup_hmul_omegaPow [Inhabited Symbol] (p : ωLanguage Symbol) :
0 commit comments