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.
abbreviation OAI.Problem356.E3 line 12
abbrev E3 := EuclideanSpace ℝ (Fin 3)
abbreviation OAI.Problem356.Triple line 14
abbrev Triple := E3 × (E3 × E3)
definition OAI.Problem356.tripleFst line 16
def tripleFst (t : Triple) : E3 := t.1
definition OAI.Problem356.tripleSnd line 18
def tripleSnd (t : Triple) : E3 := t.2.1
definition OAI.Problem356.tripleThd line 20
def tripleThd (t : Triple) : E3 := t.2.2
definition OAI.Problem356.invDistance line 22
def invDistance (x y : E3) : ℝ≥0∞ := (ENNReal.ofReal ‖x - y‖)⁻¹
definition OAI.Problem356.coulombCost line 25
def coulombCost (t : Triple) : ℝ≥0∞ := invDistance (tripleFst t) (tripleSnd t) + invDistance (tripleFst t) (tripleThd t) + invDistance (tripleSnd t) (tripleThd t)
definition OAI.Problem356.IsThreeCoupling line 30
def IsThreeCoupling (mu : Measure E3) (pi : Measure Triple) : Prop := IsProbabilityMeasure pi ∧ Measure.map tripleFst pi = mu ∧ Measure.map tripleSnd pi = mu ∧ Measure.map tripleThd pi = mu
definition OAI.Problem356.densityMeasure line 36
def densityMeasure (rho : E3 → ℝ) : Measure E3 := Measure.withDensity (volume : Measure E3) (fun x => ENNReal.ofReal (rho x))
definition OAI.Problem356.Preserves line 39
def Preserves (mu : Measure E3) (T : E3 → E3) : Prop := Measurable T ∧ Measure.map T mu = mu
definition OAI.Problem356.graphCost line 42
def graphCost (mu : Measure E3) (T2 T3 : E3 → E3) : ℝ≥0∞ := ∫⁻ x, coulombCost (x, (T2 x, T3 x)) ∂mu
definition OAI.Problem356.kantorovichValue line 45
def kantorovichValue (mu : Measure E3) : ℝ≥0∞ := ⨅ (pi : Measure Triple), ⨅ (_h : IsThreeCoupling mu pi), ∫⁻ t, coulombCost t ∂pi
definition OAI.Problem356.mongeValue line 49
def mongeValue (mu : Measure E3) : ℝ≥0∞ := ⨅ (T2 : E3 → E3), ⨅ (T3 : E3 → E3), ⨅ (_h2 : Preserves mu T2), ⨅ (_h3 : Preserves mu T3), graphCost mu T2 T3
definition OAI.Problem356.IsSmoothCompactProbabilityDensity line 54
def IsSmoothCompactProbabilityDensity (rho : E3 → ℝ) : Prop := (∀ x, 0 ≤ rho x) ∧ ContDiff ℝ (↑(⊤ : ENat) : WithTop ENat) rho ∧ HasCompactSupport rho ∧ ContDiff ℝ (↑(⊤ : ENat) : WithTop ENat) (fun x : E3 => Real.sqrt (rho x)) ∧ HasCompactSupport (fun x : E3 => Real.sqrt (rho x)) ∧ (∫ x : E3, rho x ∂(volume : Measure E3)) = 1
definition OAI.Problem356.KantorovichAttained line 62
def KantorovichAttained (mu : Measure E3) : Prop := ∃ pi : Measure Triple, IsThreeCoupling mu pi ∧ (∫⁻ t, coulombCost t ∂pi) = kantorovichValue mu
definition OAI.Problem356.NoMongeOptimizer line 67
def NoMongeOptimizer (mu : Measure E3) : Prop := ∀ T2 T3 : E3 → E3, Preserves mu T2 → Preserves mu T3 → kantorovichValue mu < graphCost mu T2 T3
definition OAI.Problem356.FiniteMongeApproximation line 72
def FiniteMongeApproximation (mu : Measure E3) : Prop := ∀ epsilon : ℝ, 0 < epsilon → ∃ T2 T3 : E3 → E3, Preserves mu T2 ∧ Preserves mu T3 ∧ graphCost mu T2 T3 < ⊤ ∧ graphCost mu T2 T3 ≤ kantorovichValue mu + ENNReal.ofReal epsilon
definition OAI.Problem356.HasCoulombCounterexample line 81
def HasCoulombCounterexample (rho : E3 → ℝ) : Prop := IsSmoothCompactProbabilityDensity rho ∧ IsProbabilityMeasure (densityMeasure rho) ∧ kantorovichValue (densityMeasure rho) < ⊤ ∧ KantorovichAttained (densityMeasure rho) ∧ NoMongeOptimizer (densityMeasure rho)
definition OAI.Problem356.HasFullCoulombConclusion line 88
def HasFullCoulombConclusion (rho : E3 → ℝ) : Prop := HasCoulombCounterexample rho ∧ mongeValue (densityMeasure rho) = kantorovichValue (densityMeasure rho) ∧ FiniteMongeApproximation (densityMeasure rho)