Skip to content

Commit f214c70

Browse files
committed
Squash clean up to Ochmanski's theorem
1 parent eb08334 commit f214c70

5 files changed

Lines changed: 112 additions & 345 deletions

File tree

TraceTheory/TraceTheory.lean

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import TraceTheory.Basic
21
import TraceTheory.DependenceGraph
32
import TraceTheory.History
4-
import TraceTheory.Language
5-
import TraceTheory.List
3+
import TraceTheory.Occurrence
4+
import TraceTheory.Ochmanski
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import TraceTheory.Language
2+
import TraceTheory.MyhillNerode
3+
4+
namespace TraceTheory
5+
6+
theorem recognizable_image_of_regular_finite_rank {X : Language α}
7+
(hX_reg : X.IsRegular)
8+
(hX_rank : HasFiniteRank I X) :
9+
IsRecognizable (Trace.mk' I '' X) := by
10+
sorry
11+
12+
end TraceTheory

TraceTheory/TraceTheory/Lemmas.lean

Lines changed: 0 additions & 211 deletions
This file was deleted.

TraceTheory/TraceTheory/MyhillNerode.lean

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,9 @@ instance : Monoid (SyntacticMonoid T) where
168168
/-- Prop 4.1 (ii) => (i) -/
169169
theorem finSyntacticIndex_is_recognizable :
170170
Finite (SyntacticMonoid T) → IsRecognizable T := by
171+
classical
171172
intro h
172-
use SyntacticMonoid T, inferInstance, Fintype.ofFinite _, Classical.typeDecidableEq (SyntacticMonoid T)
173+
use SyntacticMonoid T, inferInstance, Fintype.ofFinite _, inferInstance
173174
use {
174175
toFun := fun m => ⟦m⟧
175176
map_one' := by rfl
@@ -211,7 +212,7 @@ theorem recognizable_is_finSyntacticIndex :
211212
exact Finite.of_surjective f f_surj
212213

213214
/-- Prop 4.1 (i) => (iv) -/
214-
theorem recognizable_has_recognizablePreImage (L : Type) [Monoid L] (φ : L →* M) :
215+
theorem recognizable_has_recognizablePreImage {L : Type} [Monoid L] (φ : L →* M) :
215216
IsRecognizable T → IsRecognizable (φ ⁻¹' T) := by
216217
intro h
217218
unfold IsRecognizable at h ⊢
@@ -244,7 +245,7 @@ theorem recognizable_has_recognizablePreImage (L : Type) [Monoid L] (φ : L →*
244245

245246
/-- The syntatic monoid of the preimage of `T` under a surjective homomorphism
246247
is isomorphic to the syntatic monoid of `T`. -/
247-
noncomputable def preImage_syntacticMonoid_iso (L : Type) [Monoid L]
248+
noncomputable def preImage_syntacticMonoid_iso {L : Type} [Monoid L]
248249
(φ : L →* M) (hφ : Function.Surjective φ) :
249250
SyntacticMonoid (φ ⁻¹' T) ≃* SyntacticMonoid T := by
250251
refine ⟨?_, ?_⟩
@@ -294,7 +295,8 @@ noncomputable def preImage_syntacticMonoid_iso (L : Type) [Monoid L]
294295
rw [MonoidHom.map_mul φ l₁ l₂]
295296

296297
/-- Prop 4.1 (iv) => (i) -/
297-
theorem recognizablePreImage_is_recognizable (L : Type) [Monoid L] (φ : L →* M) (hφ : Function.Surjective φ) :
298+
theorem recognizablePreImage_is_recognizable {L : Type} [Monoid L]
299+
(φ : L →* M) (hφ : Function.Surjective φ) :
298300
IsRecognizable (φ ⁻¹' T) → IsRecognizable T := by
299301
intro h
300302
apply recognizable_is_finSyntacticIndex at h

0 commit comments

Comments
 (0)