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.
definition OAI.Problem315.graphDegree line 11
def graphDegree {n : Nat} (G : SimpleGraph (Fin n)) (v : Fin n) : Nat := by classical exact (Finset.univ.filter (fun w => G.Adj v w)).card
definition OAI.Problem315.Realizes line 15
def Realizes (n : Nat) (d : Fin n → Nat) (G : SimpleGraph (Fin n)) : Prop := ∀ v, graphDegree G v = d v
abbreviation OAI.Problem315.GraphState line 18
abbrev GraphState (n : Nat) (d : Fin n → Nat) := {G : SimpleGraph (Fin n) // Realizes n d G}
definition OAI.Problem315.Graphical line 21
def Graphical (n : Nat) (d : Fin n → Nat) : Prop := Nonempty (GraphState n d)
abbreviation OAI.Problem315.FourSet line 24
abbrev FourSet (n : Nat) := {S : Finset (Fin n) // S.card = 4}
definition OAI.Problem315.IsPerfectMatchingOn line 26
def IsPerfectMatchingOn {n : Nat} (S : Finset (Fin n)) (M : SimpleGraph (Fin n)) : Prop := ∀ v, (v ∈ S → ∃! w, M.Adj v w) ∧ (v ∉ S → ∀ w, ¬ M.Adj v w)
abbreviation OAI.Problem315.PerfectMatching line 31
abbrev PerfectMatching {n : Nat} (S : FourSet n) := {M : SimpleGraph (Fin n) // IsPerfectMatchingOn S.1 M}
abbreviation OAI.Problem315.SwitchProposal line 34
abbrev SwitchProposal (n : Nat) := Σ S : FourSet n, {p : PerfectMatching S × PerfectMatching S // p.1 ≠ p.2}
definition OAI.Problem315.removedMatching line 38
def removedMatching {n : Nat} (p : SwitchProposal n) : SimpleGraph (Fin n) := p.2.val.1.val
definition OAI.Problem315.addedMatching line 41
def addedMatching {n : Nat} (p : SwitchProposal n) : SimpleGraph (Fin n) := p.2.val.2.val
definition OAI.Problem315.validSwitch line 44
def validSwitch {n : Nat} (G : SimpleGraph (Fin n)) (p : SwitchProposal n) : Prop := (∀ ⦃u v⦄, (removedMatching p).Adj u v → G.Adj u v) ∧ (∀ ⦃u v⦄, (addedMatching p).Adj u v → ¬ G.Adj u v)
definition OAI.Problem315.replaceEdges line 49
def replaceEdges {n : Nat} (G M N : SimpleGraph (Fin n)) : SimpleGraph (Fin n) where
Show the remaining 15 lines
Adj u v := (G.Adj u v ∧ ¬ M.Adj u v) ∨ N.Adj u v symm := by constructor intro u v h rcases h with h | h · left exact ⟨G.symm.symm u v h.1, fun hm => h.2 (M.symm.symm v u hm)⟩ · right exact N.symm.symm u v h loopless := by constructor intro v h rcases h with h | h · exact G.loopless.irrefl v h.1 · exact N.loopless.irrefl v h
definition OAI.Problem315.proposalResult line 67
def proposalResult {n : Nat} (G : SimpleGraph (Fin n)) (p : SwitchProposal n) : SimpleGraph (Fin n) := by classical exact if validSwitch G p then replaceEdges G (removedMatching p) (addedMatching p) else G
definition OAI.Problem315.allGraphStates line 75
def allGraphStates (n : Nat) (d : Fin n → Nat) : Finset (GraphState n d) := by classical exact Finset.univ
definition OAI.Problem315.allProposals line 80
def allProposals (n : Nat) : Finset (SwitchProposal n) := by classical exact Finset.univ
definition OAI.Problem315.stateCount line 84
def stateCount (n : Nat) (d : Fin n → Nat) : Nat := (allGraphStates n d).card
definition OAI.Problem315.switchKernel line 87
def switchKernel (n : Nat) (d : Fin n → Nat) (G H : GraphState n d) : ℝ := by classical exact (if G = H then (1 : ℝ) / 2 else 0) + (((allProposals n).filter (fun p => proposalResult G.val p = H.val)).card : ℝ) / (12 * (Nat.choose n 4 : ℝ))
definition OAI.Problem315.kernelPow line 96
def kernelPow (n : Nat) (d : Fin n → Nat) : Nat → GraphState n d → GraphState n d → ℝ := by
Show the remaining 9 lines
classical intro t induction t with | zero => exact fun G H => if G = H then 1 else 0 | succ t previous => exact fun G H => Finset.sum (allGraphStates n d) (fun K => previous G K * switchKernel n d K H)
definition OAI.Problem315.uniformAverage line 108
def uniformAverage (n : Nat) (d : Fin n → Nat) (f : GraphState n d → ℝ) : ℝ := Finset.sum (allGraphStates n d) (fun G => f G) / (stateCount n d : ℝ)
definition OAI.Problem315.uniformInner line 113
def uniformInner (n : Nat) (d : Fin n → Nat) (f g : GraphState n d → ℝ) : ℝ := uniformAverage n d (fun G => f G * g G)
definition OAI.Problem315.uniformVariance line 117
def uniformVariance (n : Nat) (d : Fin n → Nat) (f : GraphState n d → ℝ) : ℝ := uniformAverage n d (fun G => (f G - uniformAverage n d f) ^ 2)
definition OAI.Problem315.markovApply line 122
def markovApply (n : Nat) (d : Fin n → Nat) (f : GraphState n d → ℝ) (G : GraphState n d) : ℝ := Finset.sum (allGraphStates n d) (fun H => switchKernel n d G H * f H)
definition OAI.Problem315.dirichletEnergy line 127
def dirichletEnergy (n : Nat) (d : Fin n → Nat) (f : GraphState n d → ℝ) : ℝ := uniformInner n d f (fun G => f G - markovApply n d f G)
definition OAI.Problem315.hasSpectralGapAtLeast line 131
def hasSpectralGapAtLeast (n : Nat) (d : Fin n → Nat) (γ : ℝ) : Prop := ∀ f : GraphState n d → ℝ, γ * uniformVariance n d f ≤ dirichletEnergy n d f
4 more definitions are reached the same way; the full file lists them.