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.
structure OAI.WLIdentification.Graph line 7
structure Graph where order : ℕ edge : Fin order → Fin order → Bool symmetric : ∀ u v, edge u v = edge v u loopless : ∀ u, edge u u = false
definition OAI.WLIdentification.Isomorphic line 13
def Isomorphic (G H : Graph) : Prop := ∃ e : Fin G.order ≃ Fin H.order, ∀ u v, G.edge u v = H.edge (e u) (e v)
definition OAI.WLIdentification.NeighborColor line 17
def NeighborColor : ℕ → Type | 0 => Unit | s + 1 => NeighborColor s × Multiset (NeighborColor s)
definition OAI.WLIdentification.neighborColor line 21
def neighborColor (G : Graph) : (s : ℕ) → Fin G.order → NeighborColor s | 0, _ => () | s + 1, v => (neighborColor G s v, (Finset.univ.filter (fun w => G.edge v w = true)).val.map (neighborColor G s))
definition OAI.WLIdentification.neighborHistogram line 26
def neighborHistogram (G : Graph) (s : ℕ) : Multiset (NeighborColor s) := Finset.univ.val.map (neighborColor G s)
definition OAI.WLIdentification.TupleColor line 29
def TupleColor (k : ℕ) : ℕ → Type | 0 => (Fin k → Fin k → Bool) × (Fin k → Fin k → Bool) | s + 1 => TupleColor k s × Multiset (Fin k → TupleColor k s)
definition OAI.WLIdentification.tupleColor line 34
def tupleColor (G : Graph) (k : ℕ) : (s : ℕ) → (Fin k → Fin G.order) → TupleColor k s | 0, v => (fun i j => decide (v i = v j), fun i j => G.edge (v i) (v j)) | s + 1, v => (tupleColor G k s v, Finset.univ.val.map (fun z => fun i => tupleColor G k s (Function.update v i z)))
definition OAI.WLIdentification.tupleHistogram line 39
def tupleHistogram (G : Graph) (k s : ℕ) : Multiset (TupleColor k s) := Finset.univ.val.map (tupleColor G k s)
definition OAI.WLIdentification.Equivalent line 42
def Equivalent (k : ℕ) (G H : Graph) : Prop := if k = 1 then ∀ s, neighborHistogram G s = neighborHistogram H s else ∀ s, tupleHistogram G k s = tupleHistogram H k s
definition OAI.WLIdentification.Identifies line 47
def Identifies (k : ℕ) (G : Graph) : Prop := ∀ H : Graph, Equivalent k G H → Isomorphic G H
definition OAI.WLIdentification.WLdim line 51
noncomputable def WLdim (G : Graph) : ℕ := sInf {k : ℕ | 0 < k ∧ Identifies k G}
abbreviation OAI.WLIdentification.Word line 54
abbrev Word := List Bool
abbreviation OAI.WLIdentification.BinaryLanguage line 55
abbrev BinaryLanguage := Set Word
definition OAI.WLIdentification.binaryValue line 57
def binaryValue (bits : Word) : ℕ := bits.foldl (fun z b => 2 * z + if b then 1 else 0) 0
definition OAI.WLIdentification.matrixWord line 60
def matrixWord (G : Graph) : Word := (List.ofFn (fun i : Fin G.order => List.ofFn (G.edge i))).flatten
definition OAI.WLIdentification.inputWord line 64
def inputWord (G : Graph) (bits : Word) : Word := List.replicate G.order true ++ [false] ++ matrixWord G ++ bits
definition OAI.WLIdentification.dimensionLanguage line 68
def dimensionLanguage : BinaryLanguage := {w | ∃ (G : Graph) (bits : Word), 0 < G.order ∧ (∃ tail, bits = true :: tail) ∧ 0 < binaryValue bits ∧ w = inputWord G bits ∧ WLdim G ≤ binaryValue bits}
inductive type OAI.WLIdentification.Move line 76
inductive Move where | left | stay | right deriving DecidableEq
definition OAI.WLIdentification.Move.displacement line 80
def Move.displacement : Move → ℤ | .left => -1 | .stay => 0 | .right => 1
structure OAI.WLIdentification.Machine line 85
structure Machine where extraSymbols : ℕ extraStates : ℕ transition : Fin (extraStates + 3) → Fin (extraSymbols + 3) → Fin (extraStates + 3) × Fin (extraSymbols + 3) × Move
structure OAI.WLIdentification.Configuration line 91
structure Configuration (M : Machine) where state : Fin (M.extraStates + 3) head : ℤ tape : ℤ → Fin (M.extraSymbols + 3)
definition OAI.WLIdentification.inputSymbol line 96
def inputSymbol (M : Machine) (b : Bool) : Fin (M.extraSymbols + 3) := if b then 2 else 1
definition OAI.WLIdentification.initial line 99
def initial (M : Machine) (w : Word) : Configuration M where state := 0 head := 0 tape z := if 0 ≤ z then (w[z.toNat]?).elim 0 (inputSymbol M) else 0
definition OAI.WLIdentification.Halted line 104
def Halted {M : Machine} (c : Configuration M) : Prop := c.state = 1 ∨ c.state = 2
8 more definitions are reached the same way; the full file lists them.