Skip to content

Commit 501a101

Browse files
committed
Language.lean: Update formatting
1 parent 1236454 commit 501a101

1 file changed

Lines changed: 14 additions & 18 deletions

File tree

TraceTheory/TraceTheory/Language.lean

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -86,30 +86,27 @@ theorem isLexNF_iff_factorCondition (x : List α) :
8686
variable [Fintype α] [DecidableRel I.rel]
8787

8888
/-- A single symbol. -/
89-
def Letter (a : α) : Language α :=
90-
{ [a] }
89+
def char (a : α) : Language α := { [a] }
9190

9291
/-- The set of all symbols. -/
93-
def sigma : Language α :=
94-
92+
def sigma : Language α := ⊤
9593

9694
/-- The language consisting of single letters that are independent of `a`. -/
9795
def independentLetters (a : α) : Language α :=
98-
∑ c ∈ (Finset.univ.filter (fun c => I.rel a c)), Letter c
96+
∑ c ∈ (Finset.univ.filter (fun c => I.rel a c)), char c
9997

10098
/-- The "Forbidden Pattern" for a specific pair (a, b).
10199
Pattern: Σ* b (independent of a)* a Σ* -/
102100
def forbiddenPattern (a b : α) : Language α :=
103-
sigma∗ * Letter b * (independentLetters I a)∗ * Letter a * sigma∗
101+
sigma∗ * char b * (independentLetters I a)∗ * char a * sigma∗
104102

105103
/-- Union of all forbidden patterns for (a,b) ∈ I with a < b. -/
106104
def allForbiddenPatterns : Language α :=
107105
∑ p ∈ (Finset.univ.filter (fun (p : α × α) => p.1 < p.2 ∧ I.rel p.1 p.2)),
108106
forbiddenPattern I p.1 p.2
109107

110108
/-- LexNF is the complement of the forbidden patterns. -/
111-
def lexNFLanguage : Language α :=
112-
(allForbiddenPatterns I)ᶜ
109+
def lexNFLanguage : Language α := (allForbiddenPatterns I)ᶜ
113110

114111
omit [LinearOrder α] in
115112
lemma isRegular_independentLetters (a : α) : Language.IsRegular (independentLetters I a) := by
@@ -122,7 +119,7 @@ lemma isRegular_independentLetters (a : α) : Language.IsRegular (independentLet
122119

123120
omit [LinearOrder α] in
124121
lemma isRegular_forbiddenPattern (a b : α) : Language.IsRegular (forbiddenPattern I a b) := by
125-
unfold forbiddenPattern sigma Letter
122+
unfold forbiddenPattern sigma char
126123
repeat apply Language.IsRegular.mul
127124
· apply Language.IsRegular.kstar
128125
exact Language.IsRegular.top
@@ -185,14 +182,14 @@ lemma mem_forbiddenPattern_iff {x : List α} {a b : α} :
185182
rcases h with ⟨a1, b1, b2, b3, ⟨⟨ha1, hb1, hb2⟩, hb3⟩, ⟨x, hx, rfl⟩⟩
186183
use a1, b2, x
187184
constructor
188-
· simp only [Letter] at hb3 hb1
185+
· simp only [char] at hb3 hb1
189186
rw [Set.mem_singleton_iff] at hb3 hb1
190187
subst hb3 hb1
191188
simp
192189
· intro c hc
193190
rw [Language.mem_kstar] at hb2
194191
rcases hb2 with ⟨L, rfl, hL⟩
195-
unfold Letter at hL
192+
unfold char at hL
196193
simp only [mem_flatten] at hc
197194
rcases hc with ⟨y, hy, hcy⟩
198195
have hy_indep := hL y hy
@@ -208,7 +205,7 @@ lemma mem_forbiddenPattern_iff {x : List α} {a b : α} :
208205
rcases h with ⟨y, u, z, rfl, h_indep⟩
209206
simp [Language.mem_mul]
210207
use y, [b], u, [a]
211-
unfold Letter
208+
unfold char
212209
and_intros
213210
· apply mem_sigma
214211
· rfl
@@ -320,8 +317,7 @@ def IsIterativeFactor (X : Language α) (t : List α) :=
320317
∃ u v, ∀ n : ℕ, u ++ t ^ n ++ v ∈ X
321318

322319
/-- Maps a word language to a trace language. -/
323-
def toTrace (I : Independence α) (X : Language α) : Set (Trace I) :=
324-
Trace.mk' I '' X
320+
def toTrace (I : Independence α) (X : Language α) : Set (Trace I) := Trace.mk' I '' X
325321

326322
/-- The `Language` of all strings trace equivalent to strings in language `X`. -/
327323
def traceClosure (I : Independence α) (X : Language α) : Language α :=
@@ -350,12 +346,12 @@ theorem traceClosure.idem {X : Language α} :
350346
· apply mono
351347
apply le_closure
352348

353-
theorem kstar_diff_one (L : Language α) : (L \ {[]})∗ = L∗ := by
354-
ext w
349+
theorem kstar_diff_one (X : Language α) : (X \ {[]})∗ = X∗ := by
350+
ext x
355351
constructor
356-
· intro ⟨ls, hw, hls⟩
352+
· intro ⟨ls, hx, hls⟩
357353
use ls
358-
simp [hw]
354+
simp [hx]
359355
exact fun y hy => Set.diff_subset (hls y hy)
360356
· intro ⟨ls, hls, ht⟩
361357
use ls.filter (!·.isEmpty)

0 commit comments

Comments
 (0)