Convexity of the free energy and edge densities
DefinitionSurface count of a box#✓fully proved
The surface count 2d (2n + 1)^{d - 1} of the box Λ_n.
noncomputable def boxSecantSurface (d n : ℕ) : ℝ := (2 * d) * (2 * n + 1) ^ (d - 1)
DefinitionEdge-volume count of a box#✓fully proved
The edge-volume count d (2n + 1)^d of the box Λ_n.
noncomputable def boxSecantVolume (d n : ℕ) : ℝ := (d : ℝ) * (2 * n + 1) ^ d
LemmaAdding edges within a vertex set drops components by at most its size#✓fully proved
Adding edges with both endpoints in {v | p v} lowers the number of connected components by at
most |{v | p v}|. See also card_connectedComponent_le_sup_fromEdgeSet (EdgeMarginal) for
the
bound by the number of added edges.
lemma connectedComponent_card_le_add_of_sup {V : Type*} [Fintype V]
{G K : SimpleGraph V} {p : V → Prop} (hK : ∀ {x y}, K.Adj x y → p x ∧ p y) :
Nat.card G.ConnectedComponent
≤ Nat.card (G ⊔ K).ConnectedComponent + Nat.card {v // p v}
DefinitionRight derivative of the pressure#✓fully proved
The right derivative g'₊(x) = derivWithin g (Ioi x) x, the form used by Mathlib's
ConvexOn.monotoneOn_rightDeriv.
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
Used by 18
DefinitionLeft derivative of the pressure#✓fully proved
The left derivative g'₋(x) = derivWithin g (Iio x) x.
noncomputable def pressureLeftDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Iio x) x
Used by 15
LemmaLeft derivative of a convex function is at most the right one#✓fully proved
g'₋(x) ≤ g'₊(x); Mathlib's ConvexOn.leftDeriv_le_rightDeriv_of_mem_interior on univ.
lemma pressureLeftDeriv_le_rightDeriv (hg : ConvexOn ℝ univ g) (x : ℝ) :
pressureLeftDeriv g x ≤ pressureRightDeriv g x
noncomputable def pressureLeftDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Iio x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:78
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
Uses 2 · Used by 4
LemmaConvex function has equal one-sided derivatives off a countable set#✓fully proved
A convex function on ℝ has equal left and right derivatives off a countable set.
lemma countable_leftDeriv_ne_rightDeriv (hg : ConvexOn ℝ univ g) :
{x : ℝ | pressureLeftDeriv g x ≠ pressureRightDeriv g x}.Countable
noncomputable def pressureLeftDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Iio x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:78
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
Uses 3 · Used by 3
LemmaDerivative marginals of a convex pressure agree off a countable set#✓fully proved
If two families of edge marginals are the left and right derivatives of a convex g, they
differ only on a countable set of parameters.
lemma pressure_convex_countable_density_ne
(g : ℝ → ℝ) (hg : ConvexOn ℝ univ g)
(μ ν : ℝ → ConfigSpace E → ℝ) (e : E)
(ha_eq : ∀ p, edgeMargProb (μ p) e = pressureLeftDeriv g p)
(hb_eq : ∀ p, edgeMargProb (ν p) e = pressureRightDeriv g p) :
{p : ℝ | edgeMargProb (μ p) e ≠ edgeMargProb (ν p) e}.Countable
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def edgeMargProb (μ : ConfigSpace E → ℝ) (e : E) : ℝ :=
∑ ω : ConfigSpace E, (if ω e then (1 : ℝ) else 0) * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:59
noncomputable def pressureLeftDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Iio x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:78
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
LemmaCoupled measures agree off a countable set, given a convex pressure#✓fully proved
If μ p and ν p are monotonically coupled, the edge density of ν p at e is the right
derivative of a convex g, and all edge marginals agree wherever that density is continuous in
p, then μ p and ν p agree on every increasing event for p off a countable set.
lemma fk_uniqueness_of_pressure_convex
(g : ℝ → ℝ) (hg : ConvexOn ℝ univ g)
(μ ν : ℝ → ConfigSpace E → ℝ) (e : E)
(P : ℝ → ConfigSpace E × ConfigSpace E → ℝ)
(hcoup : ∀ p, IsMonotoneCouplingFun (P p) (μ p) (ν p))
(hb_eq : ∀ p, edgeMargProb (ν p) e = pressureRightDeriv g p)
(heq_at_cont : ∀ p : ℝ, ContinuousAt (fun p => edgeMargProb (ν p) e) p →
∀ e' : E, edgeMargProb (μ p) e' = edgeMargProb (ν p) e') :
∃ S : Set ℝ, S.Countable ∧
∀ p ∉ S, ∀ {A : Set (ConfigSpace E)}, IsIncreasing A →
eventMassProb (μ p) A = eventMassProb (ν p) A
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
structure IsMonotoneCouplingFun (P : ConfigSpace E × ConfigSpace E → ℝ)
(μ ν : ConfigSpace E → ℝ) : Prop where
nonneg : ∀ z, 0 ≤ P z
supportLE : ∀ z, ¬ z.1 ≤ z.2 → P z = 0
fst_marginal : ∀ ω, ∑ ω' : ConfigSpace E, P (ω, ω') = μ ω
snd_marginal : ∀ ω', ∑ ω : ConfigSpace E, P (ω, ω') = ν ω'
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:70
noncomputable def edgeMargProb (μ : ConfigSpace E → ℝ) (e : E) : ℝ :=
∑ ω : ConfigSpace E, (if ω e then (1 : ℝ) else 0) * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:59
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
noncomputable def eventMassProb (μ : ConfigSpace E → ℝ) (A : Set (ConfigSpace E)) : ℝ :=
∑ ω : ConfigSpace E, A.indicator (fun _ => (1 : ℝ)) ω * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:63
LemmaSet where coupled measures differ is countable under a convex pressure#✓fully proved
The set of parameters at which μ p and ν p differ on some increasing event is countable,
under the hypotheses of fk_uniqueness_of_pressure_convex.
lemma countable_phi_ne_of_pressure_convex
(g : ℝ → ℝ) (hg : ConvexOn ℝ univ g)
(μ ν : ℝ → ConfigSpace E → ℝ) (e : E)
(P : ℝ → ConfigSpace E × ConfigSpace E → ℝ)
(hcoup : ∀ p, IsMonotoneCouplingFun (P p) (μ p) (ν p))
(hb_eq : ∀ p, edgeMargProb (ν p) e = pressureRightDeriv g p)
(heq_at_cont : ∀ p : ℝ, ContinuousAt (fun p => edgeMargProb (ν p) e) p →
∀ e' : E, edgeMargProb (μ p) e' = edgeMargProb (ν p) e') :
{p : ℝ | ∃ A : Set (ConfigSpace E), IsIncreasing A ∧
eventMassProb (μ p) A ≠ eventMassProb (ν p) A}.Countable
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
structure IsMonotoneCouplingFun (P : ConfigSpace E × ConfigSpace E → ℝ)
(μ ν : ConfigSpace E → ℝ) : Prop where
nonneg : ∀ z, 0 ≤ P z
supportLE : ∀ z, ¬ z.1 ≤ z.2 → P z = 0
fst_marginal : ∀ ω, ∑ ω' : ConfigSpace E, P (ω, ω') = μ ω
snd_marginal : ∀ ω', ∑ ω : ConfigSpace E, P (ω, ω') = ν ω'
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:70
noncomputable def edgeMargProb (μ : ConfigSpace E → ℝ) (e : E) : ℝ :=
∑ ω : ConfigSpace E, (if ω e then (1 : ℝ) else 0) * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:59
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
noncomputable def eventMassProb (μ : ConfigSpace E → ℝ) (A : Set (ConfigSpace E)) : ℝ :=
∑ ω : ConfigSpace E, A.indicator (fun _ => (1 : ℝ)) ω * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:63
DefinitionLogistic function \(e^t/(1+e^t)\)#✓fully proved
The logistic map t ↦ eᵗ / (1 + eᵗ), equal to Mathlib's Real.sigmoid
(fsc_logistic_eq_sigmoid).
Used by 93
DefinitionLogit function \(\log(p/(1-p))\)#✓fully proved
The logit p ↦ log (p / (1 - p)), inverse to fsc_logistic on (0, 1).
noncomputable def fsc_logit (p : ℝ) : ℝ := Real.log (p / (1 - p))
LemmaLogistic function equals the sigmoid#✓fully proved
The logistic map is Mathlib's Real.sigmoid.
lemma fsc_logistic_eq_sigmoid : fsc_logistic = Real.sigmoid
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 1
DefinitionConvex free-energy hypothesis for a box edge at \(q = 2\)#✓fully proved
The convex free-energy hypothesis for the box edge eb at q = 2: some convex g has
right derivative t ↦ θ^w(fsc_logistic t) and left derivative t ↦ θ^f(fsc_logistic t), the wired
and free infinite-volume densities of the edge.
def fsc_FreeEnergyData (d N : ℕ) (eb : Sym2 (boxVerts d N)) : Prop :=
∃ g : ℝ → ℝ, ConvexOn ℝ univ g
∧ (∀ t, wiredEdgeDensity d 2 (edgeIncl d N eb) (fsc_logistic t) = pressureRightDeriv g t)
∧ (∀ t, freeEdgeDensity d 2 (edgeIncl d N eb) (fsc_logistic t) = pressureLeftDeriv g t)
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def wiredEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(wiredInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:127
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
noncomputable def freeEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(freeInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:136
noncomputable def pressureLeftDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Iio x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:78
LemmaConvex free energy gives wired density at \(p'\) at most free at \(p > p'\)#✓fully proved
Under fsc_FreeEnergyData, the wired edge density at p' is at most the free edge density
at p whenever p' < p.
lemma fsc_secant (d N : ℕ) (eb : Sym2 (boxVerts d N))
(hdata : fsc_FreeEnergyData d N eb) :
∀ p ∈ Ioo (0 : ℝ) 1, ∀ p' ∈ Ioo (0 : ℝ) 1, p' < p →
wiredEdgeDensity d 2 (edgeIncl d N eb) p'
≤ freeEdgeDensity d 2 (edgeIncl d N eb) p
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def fsc_FreeEnergyData (d N : ℕ) (eb : Sym2 (boxVerts d N)) : Prop :=
∃ g : ℝ → ℝ, ConvexOn ℝ univ g
∧ (∀ t, wiredEdgeDensity d 2 (edgeIncl d N eb) (fsc_logistic t) = pressureRightDeriv g t)
∧ (∀ t, freeEdgeDensity d 2 (edgeIncl d N eb) (fsc_logistic t) = pressureLeftDeriv g t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:125
noncomputable def wiredEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(wiredInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:127
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def freeEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(freeInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:136
Uses 9 · Used by 1
DefinitionSoftplus function \(\log(1+e^t)\)#✓fully proved
The softplus function t ↦ log (1 + eᵗ).
Used by 1
LemmaSoftplus is convex with both one-sided derivatives logistic#✓fully proved
Softplus is a convex function whose one-sided derivatives are both fsc_logistic, so the
derivative conditions in fsc_FreeEnergyData can hold for some convex function.
lemma fsc_freeEnergyData_satisfiable :
∃ g : ℝ → ℝ, ConvexOn ℝ univ g
∧ (∀ t, fsc_logistic t = pressureRightDeriv g t)
∧ (∀ t, fsc_logistic t = pressureLeftDeriv g t)
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
noncomputable def pressureLeftDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Iio x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:78
Uses 4
LemmaEdge-marginal uniqueness off a countable set from convex free energy#✓fully proved
Under fsc_FreeEnergyData, at q = 2 there is a countable set S of parameters off which
every measure φ whose box-edge marginal lies between the free and wired ones has the same
marginal as both.
StatMech.FK.fk_uniqueness_q2_secant_from_freeEnergyData · 17 lines
lemma fk_uniqueness_q2_secant_from_freeEnergyData (d N : ℕ) (eb : Sym2 (boxVerts d N))
(hdata : fsc_FreeEnergyData d N eb) :
∃ S : Set ℝ, S.Countable ∧
∀ p ∉ S, ∀ (hp : 0 < p) (hp1 : p < 1)
(phi : Measure (ConfigSpace (Sym2 (Site d)))),
((freeInfiniteVolume d hp hp1 (by norm_num : (0:ℝ) < 2) : Measure _).real
(boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb)) ≤ phi.real
(boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
∧ phi.real (boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
≤ (wiredInfiniteVolume d hp hp1 (by norm_num : (0:ℝ) < 2) : Measure _).real
(boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))) →
phi.real (boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
= (freeInfiniteVolume d hp hp1 (by norm_num : (0:ℝ) < 2) : Measure _).real
(boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
∧ phi.real (boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
= (wiredInfiniteVolume d hp hp1 (by norm_num : (0:ℝ) < 2) : Measure _).real
(boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def fsc_FreeEnergyData (d N : ℕ) (eb : Sym2 (boxVerts d N)) : Prop :=
∃ g : ℝ → ℝ, ConvexOn ℝ univ g
∧ (∀ t, wiredEdgeDensity d 2 (edgeIncl d N eb) (fsc_logistic t) = pressureRightDeriv g t)
∧ (∀ t, freeEdgeDensity d 2 (edgeIncl d N eb) (fsc_logistic t) = pressureLeftDeriv g t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:125
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def freeInfiniteVolume (d : ℕ) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) :
ProbabilityMeasure (ConfigSpace (Sym2 (Site d))) :=
(CompactSpace.tendsto_subseq (fun n => freeFiniteMeasure d n hp hp1 hq)).choose
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:199
Uses 10
DefinitionFree edge densities on a box as left derivatives#✓fully proved
The free q = 2 density of every edge of Λ_N at p = logistic(t) is the left derivative of
g
at t.
def fdd_FreeDensityIsLeftDeriv (N : ℕ) (g : ℝ → ℝ) : Prop :=
∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) = pressureLeftDeriv g t
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def freeEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(freeInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:136
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
noncomputable def pressureLeftDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Iio x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:78
DefinitionWired edge densities on a box as right derivatives#✓fully proved
The wired q = 2 density of every edge of Λ_N at p = logistic(t) is the right derivative
of
g at t.
def fdd_WiredDensityIsRightDeriv (N : ℕ) (g : ℝ → ℝ) : Prop :=
∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) = pressureRightDeriv g t
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def wiredEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(wiredInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:127
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
DefinitionWired edge densities on a box bounded by right derivatives#✓fully proved
The wired q = 2 density of every edge of Λ_N at p = logistic(t) is at most the right
derivative of g at t.
def fdd_WiredDensityUpperBound (N : ℕ) (g : ℝ → ℝ) : Prop :=
∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) ≤ pressureRightDeriv g t
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def wiredEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(wiredInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:127
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
DefinitionAverage edge density of the \(q = 2\) random-cluster measure#✓fully proved
The average edge density |E|^{-1} E_{φ_{G,p,2}}[#open edges] at p = logistic(t).
noncomputable def fpd_avgDensity (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * fkExpect G (fsc_logistic t) 2 (fun ω => (openCount G ω : ℝ))
noncomputable def fkExpect (p q : ℝ) (X : ConfigSpace (Sym2 V) → ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), fkProb G p q ω * X ω
PhyslibExt/StatisticalMechanics/RandomCluster/Tilt.lean:147
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
def openCount (ω : ConfigSpace (Sym2 V)) : ℕ :=
(G.edgeFinset.filter (fun e => ω e = true)).card
PhyslibExt/StatisticalMechanics/RandomCluster/Tilt.lean:63
Uses 4 · Used by 4
DefinitionCollapse of average edge densities to the free density#✓fully proved
The average edge densities of the graphs Gn n converge to the free infinite-volume q = 2
density of every edge of Λ_N, at every t.
def fpd_AvgDensityCollapse (d N : ℕ)
(Gn : ℕ → SimpleGraph (boxVerts d N)) [∀ n, DecidableRel (Gn n).Adj] : Prop :=
∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
Tendsto (fun n => fpd_avgDensity (Gn n) t) atTop
(𝓝 (freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)))
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def fpd_avgDensity (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * fkExpect G (fsc_logistic t) 2 (fun ω => (openCount G ω : ℝ))
PhyslibExt/StatisticalMechanics/RandomCluster/FKPressureDeriv.lean:115
noncomputable def freeEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(freeInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:136
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 7
DefinitionInfinite-volume edge densities as one-sided derivatives#✓fully proved
The wired and free q = 2 infinite-volume densities of every edge of Λ_N at p =
logistic(t)
are the right and left derivatives of g at t.
def fpd_IVDensityIsOneSidedDeriv (d N : ℕ) (g : ℝ → ℝ) : Prop :=
(∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) = pressureRightDeriv g t)
∧ (∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) = pressureLeftDeriv g t)
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def wiredEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(wiredInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:127
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
noncomputable def freeEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(freeInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:136
noncomputable def pressureLeftDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Iio x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:78
DefinitionWeighted exponential sum#✓fully proved
The exponential sum S₀(t) = ∑_i w_i e^{a_i t}.
noncomputable def ivp2_Ssum (w a : ι → ℝ) (t : ℝ) : ℝ := ∑ i, w i * Real.exp (a i * t)
Used by 10
DefinitionFirst moment exponential sum#✓fully proved
The first moment sum S₁(t) = ∑_i w_i a_i e^{a_i t}, the derivative of S₀.
noncomputable def ivp2_S1 (w a : ι → ℝ) (t : ℝ) : ℝ := ∑ i, w i * a i * Real.exp (a i * t)
Used by 6
DefinitionSecond moment exponential sum#✓fully proved
The second moment sum S₂(t) = ∑_i w_i a_i² e^{a_i t}, the derivative of S₁.
noncomputable def ivp2_S2 (w a : ι → ℝ) (t : ℝ) : ℝ := ∑ i, w i * a i ^ 2 * Real.exp (a i * t)
LemmaCauchy–Schwarz inequality for weighted exponential sums#✓fully proved
Cauchy–Schwarz for the exponential sums: S₁² ≤ S₂ S₀.
lemma ivp2_cauchy_schwarz_cgf (w a : ι → ℝ) (hw : ∀ i, 0 ≤ w i) (t : ℝ) :
(ivp2_S1 w a t) ^ 2 ≤ (ivp2_S2 w a t) * (ivp2_Ssum w a t)
noncomputable def ivp2_S1 (w a : ι → ℝ) (t : ℝ) : ℝ := ∑ i, w i * a i * Real.exp (a i * t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:112
noncomputable def ivp2_S2 (w a : ι → ℝ) (t : ℝ) : ℝ := ∑ i, w i * a i ^ 2 * Real.exp (a i * t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:115
noncomputable def ivp2_Ssum (w a : ι → ℝ) (t : ℝ) : ℝ := ∑ i, w i * Real.exp (a i * t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:109
Uses 3 · Used by 1
DefinitionLog-sum-exp cumulant generating function#✓fully proved
The log-sum-exp function K(t) = log ∑_i w_i e^{a_i t}, the cumulant generating function of
a under the weights w.
noncomputable def ivp2_Kcgf (w a : ι → ℝ) (t : ℝ) : ℝ := Real.log (ivp2_Ssum w a t)
noncomputable def ivp2_Ssum (w a : ι → ℝ) (t : ℝ) : ℝ := ∑ i, w i * Real.exp (a i * t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:109
Uses 1 · Used by 7
LemmaConvexity of log-sum-exp with nonnegative nonzero weights#✓fully proved
A cumulant generating function is convex.
lemma ivp2_Kcgf_convexOn (w a : ι → ℝ) (hw : ∀ i, 0 ≤ w i) (hpos : ∃ i, 0 < w i) :
ConvexOn ℝ univ (ivp2_Kcgf w a)
noncomputable def ivp2_Kcgf (w a : ι → ℝ) (t : ℝ) : ℝ := Real.log (ivp2_Ssum w a t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:161
Uses 5 · Used by 2
DefinitionAmbient tilted log normalizer of a finite graph#✓fully proved
The ambient logit normalizer |E|⁻¹ log (fkZ G p q) + log (1 + eᵗ),
with p = fsc_logistic t. For |E| > 0, the added term removes the Bernoulli denominator,
not the unused-coordinate factor in fkZ. At zero edges this definition uses totalized
real division and equals log (1 + eᵗ); no per-edge physical interpretation is intended.
noncomputable def ivp2_ambientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (fkZ G (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
def fkZ (p q : ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), fkWeight G p q ω
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:154
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 2 · Used by 14
LemmaConvexity of the ambient tilted log normalizer#✓fully proved
The finite-volume ambient tilted log normalizer is convex in t.
lemma ivp2_ambientTiltLogZ_convexOn (q : ℝ) (hq : 0 < q) (hE : 0 < G.edgeFinset.card) :
ConvexOn ℝ univ (ivp2_ambientTiltLogZ G q)
noncomputable def ivp2_ambientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (fkZ G (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:246
Uses 12 · Used by 4
LemmaPointwise limits of convex functions are convex#✓fully proved
A pointwise limit of convex functions on ℝ along a nontrivial filter is convex.
LemmaLimits of ambient tilted log normalizers are convex#✓fully proved
Every pointwise limit of finite-volume ambient tilted log normalizers along a nontrivial filter is convex.
lemma ivp2_limitAmbientTiltLogZ_convexOn
{κ : Type*} {l : Filter κ} [l.NeBot]
{W : Type*} [Fintype W] [DecidableEq W]
(Gn : κ → SimpleGraph W) [∀ i, DecidableRel (Gn i).Adj]
(q : ℝ) (hq : 0 < q) (hE : ∀ i, 0 < (Gn i).edgeFinset.card)
(g : ℝ → ℝ)
(hlim : ∀ t, Tendsto (fun i => ivp2_ambientTiltLogZ (Gn i) q t) l (𝓝 (g t))) :
ConvexOn ℝ univ g
noncomputable def ivp2_ambientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (fkZ G (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:246
Uses 3
LemmaPointwise limits of convex maps are convex with one-sided derivatives#✓fully proved
A pointwise limit g of convex functions on ℝ is convex; its one-sided derivatives exist,
are
monotone, are one-sided limits of slopes, and agree off a countable set; slopes of the
approximants converge to slopes of g.
lemma cdl_convexDerivLimit {κ : Type*} {l : Filter κ} [l.NeBot]
(gn : κ → ℝ → ℝ) (g : ℝ → ℝ)
(hconv : ∀ i, ConvexOn ℝ univ (gn i))
(hlim : ∀ x, Tendsto (fun i => gn i x) l (𝓝 (g x))) :
ConvexOn ℝ univ g
∧ (∀ t, HasDerivWithinAt g (pressureRightDeriv g t) (Ioi t) t)
∧ (∀ t, HasDerivWithinAt g (pressureLeftDeriv g t) (Iio t) t)
∧ (∀ t, Tendsto (slope g t) (𝓝[>] t) (𝓝 (pressureRightDeriv g t)))
∧ (∀ t, Tendsto (slope g t) (𝓝[<] t) (𝓝 (pressureLeftDeriv g t)))
∧ (∀ a b, Tendsto (fun i => slope (gn i) a b) l (𝓝 (slope g a b)))
∧ (∀ t, pressureLeftDeriv g t ≤ pressureRightDeriv g t)
∧ Monotone (pressureRightDeriv g)
∧ Monotone (pressureLeftDeriv g)
∧ {t : ℝ | pressureLeftDeriv g t ≠ pressureRightDeriv g t}.Countable
noncomputable def pressureRightDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Ioi x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:75
noncomputable def pressureLeftDeriv (g : ℝ → ℝ) (x : ℝ) : ℝ := derivWithin g (Iio x) x
PhyslibExt/StatisticalMechanics/RandomCluster/PressureDiff.lean:78
LemmaContinuity of the logistic map#✓fully proved
The logistic map t ↦ e^t / (1 + e^t) is continuous. It equals Mathlib's Real.sigmoid.
lemma osc_fsc_logistic_continuous : Continuous fsc_logistic
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 1 · Used by 2
LemmaContinuity in \(p\) of the Bernoulli edge weight#✓fully proved
The Bernoulli edge weight of a fixed configuration is continuous in p.
lemma osc_edgeProduct_continuous {V : Type*} [Fintype V] [DecidableEq V]
(G : SimpleGraph V) [DecidableRel G.Adj] (ω : ConfigSpace (Sym2 V)) :
Continuous (fun p : ℝ => edgeProduct G p ω)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def edgeProduct (p : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
∏ e ∈ G.edgeFinset, (if ω e then p else 1 - p)
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:126
LemmaContinuity in \(t\) of free \(q = 2\) edge marginals on a finite graph#✓fully proved
The edge marginal of the free q = 2 FK measure on a finite graph is continuous in t.
lemma osc_freeBoxMarg_continuous {V : Type*} [Fintype V] [DecidableEq V]
(G : SimpleGraph V) [DecidableRel G.Adj] (e : Sym2 V) :
Continuous (fun s : ℝ => edgeMargProb (fkProb G (fsc_logistic s) 2) e)
noncomputable def edgeMargProb (μ : ConfigSpace E → ℝ) (e : E) : ℝ :=
∑ ω : ConfigSpace E, (if ω e then (1 : ℝ) else 0) * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:59
noncomputable def fkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
fkWeight G p q ω / fkZ G p q
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:172
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 10 · Used by 1
LemmaContinuity in \(t\) of wired \(q = 2\) edge marginals on a finite graph#✓fully proved
The edge marginal of the wired q = 2 FK measure on a finite graph is continuous in t.
lemma osc_wiredBoxMarg_continuous {V : Type*} [Fintype V] [DecidableEq V]
(G : SimpleGraph V) [DecidableRel G.Adj] (bdry : V → Prop) [DecidablePred bdry]
(e : Sym2 V) :
Continuous (fun s : ℝ => edgeMargProb (wiredFkProb G bdry (fsc_logistic s) 2) e)
noncomputable def edgeMargProb (μ : ConfigSpace E → ℝ) (e : E) : ℝ :=
∑ ω : ConfigSpace E, (if ω e then (1 : ℝ) else 0) * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:59
noncomputable def wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 10 · Used by 1
LemmaMonotonicity in \(p\) of free \(q = 2\) edge marginals on a finite graph#✓fully proved
The edge marginal of the free q = 2 FK measure on a finite graph is monotone in p.
lemma osc_fkEdgeMarg_monotone_in_p {V : Type*} [Fintype V] [DecidableEq V]
(G : SimpleGraph V) [DecidableRel G.Adj] (e : Sym2 V) {p1 p2 : ℝ}
(hp1 : 0 < p1) (hp1' : p1 < 1) (hp2 : 0 < p2) (hp2' : p2 < 1) (hle : p1 ≤ p2) :
edgeMargProb (fkProb G p1 2) e ≤ edgeMargProb (fkProb G p2 2) e
noncomputable def edgeMargProb (μ : ConfigSpace E → ℝ) (e : E) : ℝ :=
∑ ω : ConfigSpace E, (if ω e then (1 : ℝ) else 0) * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:59
noncomputable def fkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
fkWeight G p q ω / fkZ G p q
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:172
Uses 10 · Used by 1
LemmaFree \(q = 2\) edge density is monotone in \(p\) on \((0, 1)\)#✓fully proved
The free infinite-volume q = 2 edge density is monotone in p ∈ (0, 1).
lemma osc_freeEdgeDensity_q2_monotoneOn (d N : ℕ) (eb : Sym2 (boxVerts d N)) :
MonotoneOn (freeEdgeDensity d 2 (edgeIncl d N eb)) (Ioo (0 : ℝ) 1)
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def freeEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(freeInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:136
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
Uses 21 · Used by 1
LemmaFree \(q = 2\) edge density is monotone in \(t\)#✓fully proved
The free infinite-volume q = 2 edge density is monotone in t.
lemma osc_freeEdgeDensity_logistic_monotone (d N : ℕ) (eb : Sym2 (boxVerts d N)) :
Monotone (fun s => freeEdgeDensity d 2 (edgeIncl d N eb) (fsc_logistic s))
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def freeEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(freeInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:136
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 5 · Used by 1
LemmaWired \(q = 2\) edge density is monotone in \(t\)#✓fully proved
The wired infinite-volume q = 2 edge density is monotone in t.
lemma osc_wiredEdgeDensity_logistic_monotone (d N : ℕ) (eb : Sym2 (boxVerts d N)) :
Monotone (fun s => wiredEdgeDensity d 2 (edgeIncl d N eb) (fsc_logistic s))
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def wiredEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(wiredInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:127
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 26 · Used by 1
LemmaLeft-continuity of the free \(q = 2\) edge density in \(t\)#✓fully proved
The free infinite-volume q = 2 edge density is left-continuous in t.
lemma osc_freeEdgeDensity_left_continuous (d N : ℕ) (eb : Sym2 (boxVerts d N)) (t : ℝ) :
ContinuousWithinAt
(fun s => freeEdgeDensity d 2 (edgeIncl d N eb) (fsc_logistic s)) (Iio t) t
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def freeEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(freeInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:136
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 26 · Used by 1
LemmaRight-continuity of the wired \(q = 2\) edge density in \(t\)#✓fully proved
The wired infinite-volume q = 2 edge density is right-continuous in t.
lemma osc_wiredEdgeDensity_right_continuous (d N : ℕ) (eb : Sym2 (boxVerts d N)) (t : ℝ) :
ContinuousWithinAt
(fun s => wiredEdgeDensity d 2 (edgeIncl d N eb) (fsc_logistic s)) (Ioi t) t
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def wiredEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(wiredInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:127
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 26 · Used by 1
LemmaNon-bulk edge fraction bound from a boundary bound on their count#✓fully proved
If the non-bulk edges of Λ_n number at most C times the boundary of Λ_n, their fraction
is at most C times the boundary-to-edge ratio.
lemma spc_boundaryFraction_le_surfaceVolume (n : ℕ) (C : ℝ) (hC : 0 ≤ C)
(In : Finset (Sym2 (boxVerts d n)))
(hIE : In ⊆ (boxGraph d n).edgeFinset)
(hbd : ((boxGraph d n).edgeFinset.card - In.card : ℝ)
≤ C * (Finset.univ.filter (boxBoundary d n)).card)
(hEpos : 0 < (boxGraph d n).edgeFinset.card) :
(((boxGraph d n).edgeFinset.card - In.card : ℝ)) / (boxGraph d n).edgeFinset.card
≤ C * (((Finset.univ.filter (boxBoundary d n)).card : ℝ)
/ (boxGraph d n).edgeFinset.card)
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
def boxBoundary (d n : ℕ) (x : boxVerts d n) : Prop := (x : Site d) ∈ vertexBoundary d n
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:151
LemmaAmbient tilted log normalizer ignores the decidability instance#✓fully proved
The per-edge ambient tilted log normalizer does not depend on the decidability instance of the adjacency relation.
lemma spc_ambientTiltLogZ_instIrrel (N : ℕ) (H : SimpleGraph (boxVerts d N))
(i1 i2 : DecidableRel H.Adj) (t : ℝ) :
@ivp2_ambientTiltLogZ _ _ _ H i1 2 t = @ivp2_ambientTiltLogZ _ _ _ H i2 2 t
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def ivp2_ambientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (fkZ G (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:246
LemmaTilted log normalizers on a fixed box take finitely many values#✓fully proved
The per-edge ambient tilted log normalizers of a sequence of graphs on the fixed box Λ_N take
finitely many
values.
lemma spc_range_finite (N : ℕ) (Gn : ℕ → SimpleGraph (boxVerts d N))
[inst : ∀ n, DecidableRel (Gn n).Adj] (t : ℝ) :
(Set.range (fun n => ivp2_ambientTiltLogZ (Gn n) 2 t)).Finite
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def ivp2_ambientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (fkZ G (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:246
Uses 5 · Used by 1
LemmaLimits of tilted log normalizers on a fixed box are attained#✓fully proved
A limit of per-edge ambient tilted log normalizers of graphs on the fixed box Λ_N is attained
by one of the
graphs.
lemma spc_feketeLimit_mem_finiteRange (N : ℕ) (Gn : ℕ → SimpleGraph (boxVerts d N))
[∀ n, DecidableRel (Gn n).Adj] (g : ℝ → ℝ)
(hfree : ∀ t, Tendsto (fun n => ivp2_ambientTiltLogZ (Gn n) 2 t) atTop (𝓝 (g t)))
(t : ℝ) :
g t ∈ Set.range (fun n => ivp2_ambientTiltLogZ (Gn n) 2 t)
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def ivp2_ambientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (fkZ G (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:246
Uses 5 · Used by 1
LemmaA limit shared with growing boxes is one fixed-box graph's value#✓fully proved
If graphs on the fixed box Λ_N and the growing boxes Λ_n have the same limiting per-edge
ambient tilted log normalizer g t, then g t is the ambient tilted log normalizer of a single
graph on Λ_N.
lemma spc_fixedBox_collapse_obstruction (N : ℕ) (Gn : ℕ → SimpleGraph (boxVerts d N))
[∀ n, DecidableRel (Gn n).Adj] (g : ℝ → ℝ)
(hfree : ∀ t, Tendsto (fun n => ivp2_ambientTiltLogZ (Gn n) 2 t) atTop (𝓝 (g t)))
(hboxfree : ∀ t, Tendsto (fun n => ivp2_ambientTiltLogZ (boxGraph d n) 2 t) atTop (𝓝 (g t)))
(t : ℝ) :
(∃ H : SimpleGraph (boxVerts d N), ∃ _ : DecidableRel H.Adj,
g t = ivp2_ambientTiltLogZ H 2 t)
∧ Tendsto (fun n => ivp2_ambientTiltLogZ (boxGraph d n) 2 t) atTop (𝓝 (g t))
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def ivp2_ambientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (fkZ G (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:246
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
LemmaVolume-growth lemma for tilted finite-volume bounds#✓fully proved
If ε ≤ q ^ (S n) λ ^ (m V n) / ε for all n, with q ≥ 1, 0 < λ < 1, V n → ∞ and
S n / V n → 0, then m ≤ 0.
LemmaTilted finite-volume bounds for all \(\varepsilon > 0\) force \(b \le a\)#✓fully proved
If for every ε > 0 the bound ε ≤ q ^ (S n) λ ^ ((b - a - 2ε) V n) / ε holds for all
n, with V n → ∞ and S n = o(V n), then b ≤ a.
lemma secant_b_le_a_of_finiteVolumeData {q lam a b : ℝ}
(hq : 1 ≤ q) (hlampos : 0 < lam) (hlam1 : lam < 1)
{S V : ℕ → ℝ} (hVpos : ∀ n, 0 < V n)
(hSV : Tendsto (fun n => S n / V n) atTop (𝓝 0))
(hVinf : Tendsto V atTop atTop)
(hfv : ∀ ε > 0, ∀ n, ε ≤ q ^ (S n) * lam ^ ((b - a - 2 * ε) * V n) / ε) :
b ≤ a
Uses 1 · Used by 1
DefinitionFinite-volume tilt data for a box edge at \(q = 2\)#✓fully proved
Finite-volume tilt data for the box edge eb at q = 2: volumes V n → ∞ and surface
terms S n = o(V n) such that, for all p' < p in (0, 1) and ε > 0,
ε ≤ 2 ^ (S n) λ ^ ((θ^w(p') - θ^f(p) - 2ε) V n) / ε with λ = tiltFactor p p', where θ^w and
θ^f are the wired and free infinite-volume densities of the edge.
def FKSecantData (d N : ℕ) (eb : Sym2 (boxVerts d N)) : Prop :=
∃ S V : ℕ → ℝ, (∀ n, 0 < V n)
∧ Tendsto (fun n => S n / V n) atTop (𝓝 0)
∧ Tendsto V atTop atTop
∧ ∀ p ∈ Ioo (0 : ℝ) 1, ∀ p' ∈ Ioo (0 : ℝ) 1, p' < p → ∀ ε > 0, ∀ n,
ε ≤ (2 : ℝ) ^ (S n)
* (tiltFactor p p')
^ ((wiredEdgeDensity d 2 (edgeIncl d N eb) p'
- freeEdgeDensity d 2 (edgeIncl d N eb) p - 2 * ε) * V n) / ε
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def tiltFactor (p1 p2 : ℝ) : ℝ := p2 * (1 - p1) / ((1 - p2) * p1)
PhyslibExt/StatisticalMechanics/RandomCluster/Tilt.lean:101
noncomputable def wiredEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(wiredInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:127
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def freeEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(freeInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:136
LemmaTilt data give wired density at \(p'\) at most free density at \(p > p'\)#✓fully proved
Under FKSecantData, the wired edge density at p' is at most the free edge density at
p whenever p' < p.
lemma hsecant_discharged (d N : ℕ) (eb : Sym2 (boxVerts d N))
(hdata : FKSecantData d N eb) :
∀ p ∈ Ioo (0 : ℝ) 1, ∀ p' ∈ Ioo (0 : ℝ) 1, p' < p →
wiredEdgeDensity d 2 (edgeIncl d N eb) p'
≤ freeEdgeDensity d 2 (edgeIncl d N eb) p
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def FKSecantData (d N : ℕ) (eb : Sym2 (boxVerts d N)) : Prop :=
∃ S V : ℕ → ℝ, (∀ n, 0 < V n)
∧ Tendsto (fun n => S n / V n) atTop (𝓝 0)
∧ Tendsto V atTop atTop
∧ ∀ p ∈ Ioo (0 : ℝ) 1, ∀ p' ∈ Ioo (0 : ℝ) 1, p' < p → ∀ ε > 0, ∀ n,
ε ≤ (2 : ℝ) ^ (S n)
* (tiltFactor p p')
^ ((wiredEdgeDensity d 2 (edgeIncl d N eb) p'
- freeEdgeDensity d 2 (edgeIncl d N eb) p - 2 * ε) * V n) / ε
PhyslibExt/StatisticalMechanics/RandomCluster/TiltSecant.lean:140
noncomputable def wiredEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(wiredInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:127
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def freeEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(freeInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:136
Uses 7 · Used by 1
LemmaBox-edge marginal uniqueness off a countable set under tilt data#✓fully proved
Under FKSecantData, at q = 2 there is a countable set S of parameters off which every
measure φ whose box-edge marginal lies between the free and wired ones has the same marginal
as both.
StatMech.FK.fk_uniqueness_q2_secant_from_finiteVolumeData · 17 lines
lemma fk_uniqueness_q2_secant_from_finiteVolumeData (d N : ℕ) (eb : Sym2 (boxVerts d N))
(hdata : FKSecantData d N eb) :
∃ S : Set ℝ, S.Countable ∧
∀ p ∉ S, ∀ (hp : 0 < p) (hp1 : p < 1)
(phi : Measure (ConfigSpace (Sym2 (Site d)))),
((freeInfiniteVolume d hp hp1 (by norm_num : (0:ℝ) < 2) : Measure _).real
(boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb)) ≤ phi.real
(boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
∧ phi.real (boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
≤ (wiredInfiniteVolume d hp hp1 (by norm_num : (0:ℝ) < 2) : Measure _).real
(boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))) →
phi.real (boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
= (freeInfiniteVolume d hp hp1 (by norm_num : (0:ℝ) < 2) : Measure _).real
(boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
∧ phi.real (boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
= (wiredInfiniteVolume d hp hp1 (by norm_num : (0:ℝ) < 2) : Measure _).real
(boxRestrict d N ⁻¹' (boxEdgeOpenEvent d N eb))
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def FKSecantData (d N : ℕ) (eb : Sym2 (boxVerts d N)) : Prop :=
∃ S V : ℕ → ℝ, (∀ n, 0 < V n)
∧ Tendsto (fun n => S n / V n) atTop (𝓝 0)
∧ Tendsto V atTop atTop
∧ ∀ p ∈ Ioo (0 : ℝ) 1, ∀ p' ∈ Ioo (0 : ℝ) 1, p' < p → ∀ ε > 0, ∀ n,
ε ≤ (2 : ℝ) ^ (S n)
* (tiltFactor p p')
^ ((wiredEdgeDensity d 2 (edgeIncl d N eb) p'
- freeEdgeDensity d 2 (edgeIncl d N eb) p - 2 * ε) * V n) / ε
PhyslibExt/StatisticalMechanics/RandomCluster/TiltSecant.lean:140
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def freeInfiniteVolume (d : ℕ) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) :
ProbabilityMeasure (ConfigSpace (Sym2 (Site d))) :=
(CompactSpace.tendsto_subseq (fun n => freeFiniteMeasure d n hp hp1 hq)).choose
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:199
Uses 10
DefinitionWired per-edge ambient tilted log normalizer#✓fully proved
The wired per-edge ambient tilted log normalizer |E|⁻¹ log Z^w(p, q) + log(1 + e^t) at p =
e^t / (1 + e^t).
noncomputable def wpd_wiredAmbientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (wiredFkZ G bdry (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
noncomputable def wiredFkZ (p q : ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), wiredFkWeight G bdry p q ω
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:93
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 2 · Used by 7
LemmaWired partition function at logistic \(p\) as a tilted sum#✓fully proved
The wired partition function at p = e^t / (1 + e^t) as a tilted sum over configurations
divided by (1 + e^t)^{|E|}.
lemma wpd_wiredFkZ_logistic (t q : ℝ) :
wiredFkZ G bdry (fsc_logistic t) q
= ivp2_Ssum (fun ω => q ^ numClustersWired G bdry ω) (fun ω => (openCount G ω : ℝ)) t
/ (1 + Real.exp t) ^ G.edgeFinset.card
noncomputable def wiredFkZ (p q : ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), wiredFkWeight G bdry p q ω
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:93
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
noncomputable def ivp2_Ssum (w a : ι → ℝ) (t : ℝ) : ℝ := ∑ i, w i * Real.exp (a i * t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:109
noncomputable def numClustersWired (ω : Sym2 V → Bool) : ℕ :=
Nat.card (wiredGraph G bdry ω).ConnectedComponent
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:162
def openCount (ω : ConfigSpace (Sym2 V)) : ℕ :=
(G.edgeFinset.filter (fun e => ω e = true)).card
PhyslibExt/StatisticalMechanics/RandomCluster/Tilt.lean:63
Uses 9 · Used by 2
LemmaWired tilted log normalizer as a cumulant generating function#✓fully proved
The wired ambient tilted log normalizer is |E|⁻¹ times the cumulant generating function of the
number of open
edges under the weight q^{k^w}.
lemma wpd_wiredAmbientTiltLogZ_eq_Kcgf (q : ℝ) (hq : 0 < q) (hE : 0 < G.edgeFinset.card)
(t : ℝ) :
wpd_wiredAmbientTiltLogZ G bdry q t
= (1 / (G.edgeFinset.card : ℝ))
* ivp2_Kcgf (fun ω => q ^ numClustersWired G bdry ω)
(fun ω => (openCount G ω : ℝ)) t
noncomputable def wpd_wiredAmbientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (wiredFkZ G bdry (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:86
noncomputable def ivp2_Kcgf (w a : ι → ℝ) (t : ℝ) : ℝ := Real.log (ivp2_Ssum w a t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:161
noncomputable def numClustersWired (ω : Sym2 V → Bool) : ℕ :=
Nat.card (wiredGraph G bdry ω).ConnectedComponent
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:162
def openCount (ω : ConfigSpace (Sym2 V)) : ℕ :=
(G.edgeFinset.filter (fun e => ω e = true)).card
PhyslibExt/StatisticalMechanics/RandomCluster/Tilt.lean:63
Uses 9 · Used by 2
LemmaConvexity of the wired tilted log normalizer#✓fully proved
The wired ambient tilted log normalizer is convex in t.
lemma wpd_wiredAmbientTiltLogZ_convexOn (q : ℝ) (hq : 0 < q) (hE : 0 < G.edgeFinset.card) :
ConvexOn ℝ univ (wpd_wiredAmbientTiltLogZ G bdry q)
noncomputable def wpd_wiredAmbientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (wiredFkZ G bdry (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:86
Uses 7 · Used by 2
DefinitionExpectation under the wired FK measure#✓fully proved
The expectation of an observable under the wired FK measure.
noncomputable def wpd_wiredFkExpect (p q : ℝ) (X : ConfigSpace (Sym2 V) → ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), wiredFkProb G bdry p q ω * X ω
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
Uses 2 · Used by 7
LemmaTilted mean of open edges equals the wired FK expectation#✓fully proved
The tilted mean of the number of open edges is its wired FK expectation.
lemma wpd_wiredCgfMean_eq_openCount_expect (q : ℝ) (hq : 0 < q) (t : ℝ) :
wpd_wiredFkExpect G bdry (fsc_logistic t) q (fun ω => (openCount G ω : ℝ))
= ivp2_S1 (fun ω => q ^ numClustersWired G bdry ω) (fun ω => (openCount G ω : ℝ)) t
/ ivp2_Ssum (fun ω => q ^ numClustersWired G bdry ω)
(fun ω => (openCount G ω : ℝ)) t
noncomputable def wpd_wiredFkExpect (p q : ℝ) (X : ConfigSpace (Sym2 V) → ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), wiredFkProb G bdry p q ω * X ω
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:147
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
def openCount (ω : ConfigSpace (Sym2 V)) : ℕ :=
(G.edgeFinset.filter (fun e => ω e = true)).card
PhyslibExt/StatisticalMechanics/RandomCluster/Tilt.lean:63
noncomputable def ivp2_S1 (w a : ι → ℝ) (t : ℝ) : ℝ := ∑ i, w i * a i * Real.exp (a i * t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:112
noncomputable def numClustersWired (ω : Sym2 V → Bool) : ℕ :=
Nat.card (wiredGraph G bdry ω).ConnectedComponent
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:162
noncomputable def ivp2_Ssum (w a : ι → ℝ) (t : ℝ) : ℝ := ∑ i, w i * Real.exp (a i * t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:109
Uses 13 · Used by 1
LemmaWired tilted log normalizer has derivative the mean open fraction#✓fully proved
The derivative in t of the wired ambient tilted log normalizer is |E|⁻¹ times the expected
number of open
edges under the wired FK measure.
lemma wpd_wiredAmbientTiltLogZ_hasDerivAt (q : ℝ) (hq : 0 < q) (hE : 0 < G.edgeFinset.card)
(t : ℝ) :
HasDerivAt (wpd_wiredAmbientTiltLogZ G bdry q)
((1 / (G.edgeFinset.card : ℝ))
* wpd_wiredFkExpect G bdry (fsc_logistic t) q (fun ω => (openCount G ω : ℝ))) t
noncomputable def wpd_wiredAmbientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (wiredFkZ G bdry (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:86
noncomputable def wpd_wiredFkExpect (p q : ℝ) (X : ConfigSpace (Sym2 V) → ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), wiredFkProb G bdry p q ω * X ω
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:147
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
def openCount (ω : ConfigSpace (Sym2 V)) : ℕ :=
(G.edgeFinset.filter (fun e => ω e = true)).card
PhyslibExt/StatisticalMechanics/RandomCluster/Tilt.lean:63
Uses 11 · Used by 2
DefinitionAverage wired edge density#✓fully proved
The average wired edge density |E|⁻¹ E^w[|ω|] at p = e^t / (1 + e^t).
noncomputable def wpd_avgWiredDensity (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ))
* wpd_wiredFkExpect G bdry (fsc_logistic t) q (fun ω => (openCount G ω : ℝ))
noncomputable def wpd_wiredFkExpect (p q : ℝ) (X : ConfigSpace (Sym2 V) → ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), wiredFkProb G bdry p q ω * X ω
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:147
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
def openCount (ω : ConfigSpace (Sym2 V)) : ℕ :=
(G.edgeFinset.filter (fun e => ω e = true)).card
PhyslibExt/StatisticalMechanics/RandomCluster/Tilt.lean:63
Uses 4 · Used by 6
LemmaExpected wired open-edge count is the sum of edge marginals#✓fully proved
The expected number of open edges is the sum of the edge marginals.
lemma wpd_wiredFkExpect_openCount_eq_sum (p q : ℝ) :
wpd_wiredFkExpect G bdry p q (fun ω => (openCount G ω : ℝ))
= ∑ e ∈ G.edgeFinset, edgeMargProb (wiredFkProb G bdry p q) e
noncomputable def wpd_wiredFkExpect (p q : ℝ) (X : ConfigSpace (Sym2 V) → ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), wiredFkProb G bdry p q ω * X ω
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:147
def openCount (ω : ConfigSpace (Sym2 V)) : ℕ :=
(G.edgeFinset.filter (fun e => ω e = true)).card
PhyslibExt/StatisticalMechanics/RandomCluster/Tilt.lean:63
noncomputable def edgeMargProb (μ : ConfigSpace E → ℝ) (e : E) : ℝ :=
∑ ω : ConfigSpace E, (if ω e then (1 : ℝ) else 0) * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:59
noncomputable def wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
LemmaAverage wired edge density as the mean of edge marginals#✓fully proved
The average wired edge density is the mean of the wired edge marginals.
lemma wpd_avgWiredDensity_eq_sum_edgeMarg (q : ℝ) (t : ℝ) :
wpd_avgWiredDensity G bdry q t
= (1 / (G.edgeFinset.card : ℝ))
* ∑ e ∈ G.edgeFinset, edgeMargProb (wiredFkProb G bdry (fsc_logistic t) q) e
noncomputable def wpd_avgWiredDensity (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ))
* wpd_wiredFkExpect G bdry (fsc_logistic t) q (fun ω => (openCount G ω : ℝ))
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:190
noncomputable def edgeMargProb (μ : ConfigSpace E → ℝ) (e : E) : ℝ :=
∑ ω : ConfigSpace E, (if ω e then (1 : ℝ) else 0) * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:59
noncomputable def wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 8 · Used by 2
LemmaWired and free FK weights within a factor \(q^{|\partial|}\), \(q \ge 1\)#✓fully proved
For q ≥ 1, the wired FK weight is at most the free one, and the free one is at most
q^{|∂|} times the wired one.
lemma wpd_wiredFkWeight_le {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
(ω : ConfigSpace (Sym2 V)) :
wiredFkWeight G bdry p q ω ≤ fkWeight G p q ω
∧ fkWeight G p q ω
≤ q ^ (Finset.univ.filter bdry).card * wiredFkWeight G bdry p q ω
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def wiredFkWeight (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
edgeProduct G p ω * q ^ numClustersWired G bdry ω
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:81
def fkWeight (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
edgeProduct G p ω * q ^ numClusters G ω
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:140
Uses 14 · Used by 1
LemmaSandwich \(Z^w \le Z \le q^{|\partial|} Z^w\) for \(q \ge 1\)#✓fully proved
For q ≥ 1, Z^w ≤ Z ≤ q^{|∂|} Z^w.
lemma wpd_wiredFkZ_le {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q) :
wiredFkZ G bdry p q ≤ fkZ G p q
∧ fkZ G p q ≤ q ^ (Finset.univ.filter bdry).card * wiredFkZ G bdry p q
noncomputable def wiredFkZ (p q : ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), wiredFkWeight G bdry p q ω
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:93
def fkZ (p q : ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), fkWeight G p q ω
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:154
Uses 6 · Used by 1
LemmaFree-wired log-normalizer gap \(\le |\partial|\log q/|E|\) for \(q \ge 1\)#✓fully proved
For q ≥ 1, the free and wired per-edge ambient tilted log normalizers differ by at most |∂|
log q / |E|.
lemma wpd_ambientTiltLogZ_sub_le {q : ℝ} (hq : 1 ≤ q) (hE : 0 < G.edgeFinset.card) (t : ℝ) :
|ivp2_ambientTiltLogZ G q t - wpd_wiredAmbientTiltLogZ G bdry q t|
≤ ((Finset.univ.filter bdry).card : ℝ) / (G.edgeFinset.card : ℝ) * Real.log q
noncomputable def ivp2_ambientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (fkZ G (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:246
noncomputable def wpd_wiredAmbientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (wiredFkZ G bdry (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:86
Uses 12 · Used by 2
DefinitionAverage wired density collapse at \(q = 2\)#✓fully proved
Average wired density collapse: for every edge e' of Λ_N and every t, the average wired
edge density of Λ_n converges to the wired infinite-volume density of e'.
def wpd_AvgWiredDensityCollapse (N : ℕ) : Prop :=
∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
Tendsto (fun n => wpd_avgWiredDensity (boxGraph d n) (boxBoundary d n) 2 t) atTop
(𝓝 (wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)))
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def wpd_avgWiredDensity (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ))
* wpd_wiredFkExpect G bdry (fsc_logistic t) q (fun ω => (openCount G ω : ℝ))
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:190
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
def boxBoundary (d n : ℕ) (x : boxVerts d n) : Prop := (x : Site d) ∈ vertexBoundary d n
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:151
noncomputable def wiredEdgeDensity (d : ℕ) (q : ℝ) (e : Sym2 (Site d)) (p : ℝ) : ℝ :=
if h : 0 < p ∧ p < 1 ∧ 0 < q then
(wiredInfiniteVolume d h.1 h.2.1 h.2.2 : Measure (ConfigSpace (Sym2 (Site d)))).real
(fkEdgeOpenEvent e)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:127
def edgeIncl (d n : ℕ) : Sym2 (boxVerts d n) → Sym2 (Site d) :=
Sym2.map (Subtype.val : boxVerts d n → Site d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:163
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 9
DefinitionCentered free energy of a graph#✓fully proved
The centered free energy F_G(t) - F_G(0), with F_G = ivp2_ambientTiltLogZ G q.
In the FK range q > 0, the ambient non-edge offset cancels in this difference.
noncomputable def cfe_centered (q : ℝ) (t : ℝ) : ℝ :=
ivp2_ambientTiltLogZ G q t - ivp2_ambientTiltLogZ G q 0
noncomputable def ivp2_ambientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (fkZ G (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/IVPressureConvex.lean:246
Uses 1 · Used by 4
DefinitionWired centered free energy#✓fully proved
The wired centered free energy, obtained by subtracting
wpd_wiredAmbientTiltLogZ G bdry q 0 from its value at t. In the FK range q > 0,
the ambient non-edge offset cancels.
noncomputable def cfe_wiredCentered (q : ℝ) (t : ℝ) : ℝ :=
wpd_wiredAmbientTiltLogZ G bdry q t - wpd_wiredAmbientTiltLogZ G bdry q 0
noncomputable def wpd_wiredAmbientTiltLogZ (q : ℝ) (t : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ)) * Real.log (wiredFkZ G bdry (fsc_logistic t) q)
+ Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredPressureDeriv.lean:86
Uses 1 · Used by 2
DefinitionPointwise convergence of box centered free energies#✓fully proved
The centered free energies of the boxes Λ_n converge pointwise to G, and G(0) = 0.
def cfe_CenteredConvergence (d : ℕ) (G : ℝ → ℝ) : Prop :=
(∀ t, Tendsto (fun n => cfe_centered (boxGraph d n) 2 t) atTop (𝓝 (G t))) ∧ G 0 = 0
noncomputable def cfe_centered (q : ℝ) (t : ℝ) : ℝ :=
ivp2_ambientTiltLogZ G q t - ivp2_ambientTiltLogZ G q 0
PhyslibExt/StatisticalMechanics/RandomCluster/CenteredFreeEnergy.lean:67
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.