The lines of the Lean statement that state the theorem, then the definitions in the file that it uses.
Local definitions the statement names, followed through the definitions they name in turn. The match is by name in the source text, so a name reached only through notation can be missed; the full file is below.
inductive type OAI.FiniteCircle.EditStep line 11
inductive EditStep {α : Type u} : List α → List α → Prop | insert (u v : List α) (a : α) : EditStep (u ++ v) (u ++ a :: v) | delete (u v : List α) (a : α) : EditStep (u ++ a :: v) (u ++ v) | substitute (u v : List α) (a b : α) : EditStep (u ++ a :: v) (u ++ b :: v)
inductive type OAI.FiniteCircle.EditScript line 16
inductive EditScript {α : Type u} : ℕ → List α → List α → Prop | nil (x : List α) : EditScript 0 x x | cons {n : ℕ} {x y z : List α} : EditStep x y → EditScript n y z → EditScript (n + 1) x z
definition OAI.FiniteCircle.editDistance line 21
noncomputable def editDistance {α : Type u} (x y : List α) : ℕ := sInf {n : ℕ | EditScript n x y}
definition OAI.FiniteCircle.lcs line 24
noncomputable def lcs {α : Type u} (x y : List α) : ℕ := sSup {n : ℕ | ∃ z : List α, z <+ x ∧ z <+ y ∧ z.length = n}
definition OAI.FiniteCircle.deficit line 27
noncomputable def deficit {α : Type u} (x y : List α) : ℕ := x.length - lcs x y
abbreviation OAI.FiniteCircle.Words line 29
abbrev Words (α : Type u) (d : ℕ) := {x : List α // x.length ≤ d}
abbreviation OAI.FiniteCircle.RealL1 line 30
abbrev RealL1 := lp (fun _ : ℕ => ℝ) 1
definition OAI.FiniteCircle.distortion line 32
noncomputable def distortion {α : Type u} {X : Type v} (word : X → List α) (f : X → RealL1) : ℝ := (sSup {r : ℝ | ∃ x y : X, x ≠ y ∧ r = ‖f x - f y‖ / (editDistance (word x) (word y) : ℝ)}) * (sSup {r : ℝ | ∃ x y : X, x ≠ y ∧ r = (editDistance (word x) (word y) : ℝ) / ‖f x - f y‖})
definition OAI.FiniteCircle.optimalDistortion line 39
noncomputable def optimalDistortion {α : Type u} {X : Type v} (word : X → List α) : ℝ := sInf {D | ∃ f : X → RealL1, Function.Injective f ∧ D = distortion word f}
definition OAI.FiniteCircle.E line 43
noncomputable def E (α : Type u) (d : ℕ) : ℝ := optimalDistortion (fun x : Words α d => x.val)
definition OAI.FiniteCircle.setDistortion line 46
noncomputable def setDistortion (S : Set (List Bool)) : ℝ := optimalDistortion (fun x : S => x.val)
definition OAI.FiniteCircle.alphabetSupremum line 49
noncomputable def alphabetSupremum (d : ℕ) : ℝ := sSup {r | ∃ A : ℕ, 2 ≤ A ∧ r = E (Fin A) d}
definition OAI.FiniteCircle.exponentScale line 52
noncomputable def exponentScale (d : ℕ) : ℝ := Real.sqrt (Real.log d * Real.log (Real.log d))
definition OAI.FiniteCircle.encode line 55
def encode {α : Type u} {w : ℕ} (c : α → Fin w → Bool) (x : List α) : List Bool := x.flatMap (fun a => List.ofFn (c a))
definition OAI.FiniteCircle.interval line 58
def interval {α : Type u} {w : ℕ} (c : α → Fin w → Bool) (a : α) (s len : ℕ) : List Bool := ((List.ofFn (c a)).drop s).take len
definition OAI.FiniteCircle.OffsetLocal line 62
def OffsetLocal {α : Type u} {w : ℕ} (δ : ℝ) (c : α → Fin w → Bool) : Prop := ∀ a b : α, a ≠ b → ∀ s t : ℕ, s + w / 8 ≤ w → t + w / 8 ≤ w → (lcs (interval c a s (w / 8)) (interval c b t (w / 8)) : ℝ) ≤ (1 - δ) * (w / 8 : ℕ)
definition OAI.FiniteCircle.indexSpan line 68
def indexSpan {w : ℕ} (is : List (Fin w)) : ℕ := match is with | [] => 0 | i :: js => (js.getLastD i).val + 1 - i.val
definition OAI.FiniteCircle.AnchorLocal line 73
def AnchorLocal {α : Type u} {w : ℕ} (ε : ℝ) (c : α → Fin w → Bool) : Prop := ∀ a b : α, ∀ is js : List (Fin w), is.Pairwise (fun i j => i.val < j.val) → js.Pairwise (fun i j => i.val < j.val) → is.length = js.length → (w : ℝ) / 4 ≤ is.length → (indexSpan is - is.length : ℕ) ≤ ε * w → (indexSpan js - js.length : ℕ) ≤ ε * w → (∀ ij ∈ is.zip js, c a ij.1 = c b ij.2) → a = b ∧ ∃ i : Fin w, (i, i) ∈ is.zip js
definition OAI.FiniteCircle.SubstitutionBounds line 83
def SubstitutionBounds {α : Type u} [Fintype α] {w : ℕ} (a C : ℝ) (c : α → Fin w → Bool) : Prop := 0 < w ∧ (w : ℝ) ≤ C * Real.log (2 * Fintype.card α) ∧ (∀ L : ℕ, ∀ x y : List α, x.length = L → y.length = L → a * w * deficit x y ≤ (deficit (encode c x) (encode c y) : ℝ) ∧ deficit (encode c x) (encode c y) ≤ w * deficit x y) ∧ (∀ x y : List α, editDistance (encode c x) (encode c y) ≤ w * editDistance x y)
definition OAI.FiniteCircle.TwoCodes line 91
def TwoCodes (a C δ ε : ℝ) : Prop := ∀ (α : Type) [Fintype α], 2 ≤ Fintype.card α → (∃ (w : ℕ) (c : α → Fin w → Bool), SubstitutionBounds a C c ∧ OffsetLocal δ c) ∧ (∃ (w : ℕ) (c : α → Fin w → Bool), SubstitutionBounds a C c ∧ AnchorLocal ε c)
definition OAI.FiniteCircle.period line 98
def period (h : ℕ) (p : ℕ → ℕ → ℕ) (l : ℕ) : ℕ := ∏ k : Fin h, p l k
definition OAI.FiniteCircle.circleSize line 100
def circleSize (h : ℕ) (p : ℕ → ℕ → ℕ) : ℕ := 2 * ∏ l : Fin h, period h p (l.val + 1)
definition OAI.FiniteCircle.MaskPrimes line 103
def MaskPrimes (h : ℕ) (p : ℕ → ℕ → ℕ) : Prop := (∀ l k : Fin h, Nat.Prime (p (l.val + 1) k)) ∧ Function.Injective (fun lk : Fin h × Fin h => p (lk.1.val + 1) lk.2) ∧ ∀ l k : Fin h, h ^ 3 ≤ p (l.val + 1) k ∧ p (l.val + 1) k ≤ 2 * h ^ 3
definition OAI.FiniteCircle.ExcludedPrimes line 108
def ExcludedPrimes (m : ℕ) (p : ℕ → ℕ → ℕ) : Prop := (∀ l k : Fin m, Nat.Prime (p (l.val + 1) k)) ∧ Function.Injective (fun lk : Fin m × Fin m => p (lk.1.val + 1) lk.2) ∧ ∀ l k : Fin m, m ^ 3 < p (l.val + 1) k ∧ p (l.val + 1) k ≤ m ^ 5
15 more definitions are reached the same way; the full file lists them.