Per-box agreement of free and wired random-cluster measures
DefinitionWired-marginal difference between a box and its translate#✓fully proved
The difference between the wired marginal of eb' on Λ_{N+k} and on the translate of
Λ_{N+k} by v, evaluated at the translated edge.
noncomputable def fbd_offCentreCarrier (N : ℕ) (v : Site d) (eb' : Sym2 (boxVerts d N))
(p q : ℝ) (k : ℕ) : ℝ :=
edgeMargProb (wiredFkProb (boxGraph d (N + k)) (boxBoundary d (N + k)) p q)
(innerEdgeLE d (Nat.le_add_right N k) eb')
- edgeMargProb
(wiredFkProb (fvs_transBoxGraph d (N + k) v) (fvs_transBoxBoundary d (N + k) v) p q)
(Sym2.map (fvs_transEquiv d (N + k) v) (innerEdgeLE d (Nat.le_add_right N k) eb'))
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
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
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
def innerEdgeLE (d : ℕ) {n m : ℕ} (h : n ≤ m) : Sym2 (boxVerts d n) → Sym2 (boxVerts d m) :=
Sym2.map (boxVertInclLE d h)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDomChain.lean:424
def fvs_transBoxGraph (d m : ℕ) (v : Site d) : SimpleGraph (fvs_transBoxVerts d m v) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/FiniteVolumeShift.lean:334
def fvs_transBoxBoundary (d m : ℕ) (v : Site d) (y : fvs_transBoxVerts d m v) : Prop :=
((y : Site d) - v) ∈ vertexBoundary d m
PhyslibExt/StatisticalMechanics/RandomCluster/FiniteVolumeShift.lean:343
noncomputable def fvs_transEquiv (d m : ℕ) (v : Site d) :
boxVerts d m ≃ fvs_transBoxVerts d m v where
toFun := fun x => ⟨(x : Site d) + v, by
change ((x : Site d) + v - v) ∈ box d m
rw [add_sub_cancel_right]; exact x.2⟩
invFun := fun y => ⟨(y : Site d) - v, y.2⟩
left_inv := by intro x; apply Subtype.ext; simp
right_inv := by intro y; apply Subtype.ext; simp
PhyslibExt/StatisticalMechanics/RandomCluster/FiniteVolumeShift.lean:311
Uses 13 · Used by 3
LemmaMonotone-coupled laws with equal edge marginals agree on up-sets#✓fully proved
Two monotonically coupled probability vectors with equal edge marginals agree on increasing
events. Restatement of eventMass_eq_of_edgeMarg_eq (EdgeMarginal), kept because other modules
use this name.
lemma fk_unique_of_edgeMarg_eq {P : ConfigSpace E × ConfigSpace E → ℝ}
{μ ν : ConfigSpace E → ℝ} (hP : IsMonotoneCouplingFun P μ ν)
(hmarg : ∀ e : E, edgeMargProb μ e = edgeMargProb ν e)
{A : Set (ConfigSpace E)} (hA : IsIncreasing A) :
eventMassProb μ A = eventMassProb ν 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
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
Uses 6 · Used by 3
LemmaAgreement with a monotone map at continuity points fails countably#✓fully proved
If a agrees with a monotone b at every continuity point of b, then {p | a p ≠ b p} is
countable.
lemma countable_edgeMarg_ne (hb : Monotone b)
(heq_at_cont : ∀ p : ℝ, ContinuousAt b p → a p = b p) :
{p : ℝ | a p ≠ b p}.Countable
LemmaParametric agreement on increasing events off a countable set#✓fully proved
Parametric agreement: if for each p there is a monotone coupling of μ p and ν p, and edge
marginals agree at every continuity point of the monotone map p ↦ ν_p(ω(e) = 1), then μ p and ν
p agree on increasing events for all p outside a countable set.
lemma phi0_eq_phi1_off_countable
(μ ν : ℝ → ConfigSpace E → ℝ) (e : E)
(P : ℝ → ConfigSpace E × ConfigSpace E → ℝ)
(hcoup : ∀ p, IsMonotoneCouplingFun (P p) (μ p) (ν p))
(hb : Monotone (fun p => edgeMargProb (ν p) e))
(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
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
Uses 6 · Used by 1
LemmaCountably many parameters admit a separating increasing event#✓fully proved
Under the hypotheses of phi0_eq_phi1_off_countable, the set of p for which some increasing
event separates μ p and ν p is countable.
lemma countable_phi_ne
(μ ν : ℝ → ConfigSpace E → ℝ) (e : E)
(P : ℝ → ConfigSpace E × ConfigSpace E → ℝ)
(hcoup : ∀ p, IsMonotoneCouplingFun (P p) (μ p) (ν p))
(hb : Monotone (fun p => edgeMargProb (ν p) e))
(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
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
Uses 6 · Used by 3
DefinitionEvent that an edge is open#✓fully proved
The event that the edge e is open.
def fkEdgeOpenEvent {E : Type*} (e : E) : Set (ConfigSpace E) := {ω | ω e = true}
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
Uses 1 · Used by 30
DefinitionWired infinite-volume edge density#✓fully proved
The edge density φ^1_{p,q}(e open) of the wired infinite-volume random-cluster measure on
ℤ^d, set to 0 outside p ∈ (0, 1), q > 0.
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
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def wiredInfiniteVolume (d : ℕ) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) :
ProbabilityMeasure (ConfigSpace (Sym2 (Site d))) :=
(CompactSpace.tendsto_subseq (fun n => wiredFiniteMeasure d n hp hp1 hq)).choose
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:217
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def fkEdgeOpenEvent {E : Type*} (e : E) : Set (ConfigSpace E) := {ω | ω e = true}
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:114
Uses 4 · Used by 47
DefinitionFree infinite-volume edge density#✓fully proved
The edge density φ^0_{p,q}(e open) of the free infinite-volume random-cluster measure on
ℤ^d, set to 0 outside p ∈ (0, 1), q > 0.
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
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
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def fkEdgeOpenEvent {E : Type*} (e : E) : Set (ConfigSpace E) := {ω | ω e = true}
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessOffCountable.lean:114
Uses 4 · Used by 45
DefinitionWired–free gap in the \(q = 2\) density of a box edge#✓fully proved
The gap φ^1_{p,2}(eb open) - φ^0_{p,2}(eb open) between the wired and free infinite-volume
densities of the edge eb of Λ_N.
noncomputable def docGap (d N : ℕ) (eb : Sym2 (boxVerts d N)) (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
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
LemmaShell edge fraction is at most \(4d^2(n-m)/n\)#✓fully proved
The fraction of ordered edges of Λ_n outside Λ_m is at most 4 d² (n - m)/n.
lemma ocs_edgeCard_shell_fraction_le (d : ℕ) (hd : 1 ≤ d) (n m : ℕ) (hn : 1 ≤ n) (hmn : m ≤ n) :
((boxSV_edgeCard d n - boxSV_edgeCard d m : ℕ) : ℝ) / (boxSV_edgeCard d n)
≤ 4 * (d : ℝ) ^ 2 * (((n - m : ℕ) : ℝ) / n)
noncomputable def boxSV_edgeCard (d n : ℕ) : ℕ := (boxSV_edgeF d n).card
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoxSurfaceVolume.lean:122
Uses 10 · Used by 1
LemmaVanishing shell edge fraction when \((n - m(n))/n \to 0\)#✓fully proved
If (n - m(n))/n → 0, the edges of Λ_n outside Λ_{m(n)} form a vanishing fraction of
the edges of Λ_n.
lemma ocs_edgeFinset_shell_fraction_tendsto_zero (d : ℕ) (hd : 1 ≤ d) (m : ℕ → ℕ)
(hm : ∀ n, m n ≤ n) (hgap : Tendsto (fun n => ((n - m n : ℕ) : ℝ) / n) atTop (𝓝 0)) :
Tendsto (fun n => (((boxGraph d n).edgeFinset.card
- (boxGraph d (m n)).edgeFinset.card : ℝ))
/ (boxGraph d n).edgeFinset.card) atTop (𝓝 0)
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
Uses 9 · Used by 5
LemmaFree off-centre lower bound by the recentred small-box marginal#✓fully proved
For u, v adjacent in Λ_{n-R}, the free marginal in Λ_n of the edge {u, v} is at least
the free marginal in Λ_R of the recentered edge {0, v - u}.
lemma ocs_free_offCentre_lower (d R n : ℕ) (hRn : R ≤ n) (hmn : n - R ≤ n)
(u v : boxVerts d (n - R)) {p : ℝ} (hp : 0 < p) (hp1 : p < 1)
(c0 : (0 : Site d) ∈ box d R) (cw : ((v : Site d) - (u : Site d)) ∈ box d R) :
edgeMargProb (fkProb (boxGraph d R) p 2)
(s((⟨(0 : Site d), c0⟩ : boxVerts d R), (⟨(v : Site d) - (u : Site d), cw⟩ : boxVerts d R)))
≤ edgeMargProb (fkProb (boxGraph d n) p 2)
(innerEdgeLE d hmn (s(u, v) : Sym2 (boxVerts d (n - R))))
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def box (d n : ℕ) : Set (Site d) := {x | ∀ i, (x i).natAbs ≤ n}
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:86
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
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
def innerEdgeLE (d : ℕ) {n m : ℕ} (h : n ≤ m) : Sym2 (boxVerts d n) → Sym2 (boxVerts d m) :=
Sym2.map (boxVertInclLE d h)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDomChain.lean:424
Uses 51 · Used by 1
LemmaWired off-centre upper bound by the recentred small-box marginal#✓fully proved
For u, v adjacent in Λ_{n-R-1} and R ≥ 1, the wired marginal in Λ_n of {u, v} is at
most the wired marginal in Λ_R of the recentered edge {0, v - u}.
lemma ocs_wired_offCentre_upper (d R n : ℕ) (hR : 1 ≤ R) (hRn1 : R + 1 ≤ n) (hmn : n - R - 1 ≤ n)
(u v : boxVerts d (n - R - 1)) {p : ℝ} (hp : 0 < p) (hp1 : p < 1)
(c0 : (0 : Site d) ∈ box d R) (cw : ((v : Site d) - (u : Site d)) ∈ box d R) :
edgeMargProb (wiredFkProb (boxGraph d n) (boxBoundary d n) p 2)
(innerEdgeLE d hmn (s(u, v) : Sym2 (boxVerts d (n - R - 1))))
≤ edgeMargProb (wiredFkProb (boxGraph d R) (boxBoundary d R) p 2)
(s((⟨(0 : Site d), c0⟩ : boxVerts d R),
(⟨(v : Site d) - (u : Site d), cw⟩ : boxVerts d R)))
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def box (d n : ℕ) : Set (Site d) := {x | ∀ i, (x i).natAbs ≤ n}
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:86
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
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
def innerEdgeLE (d : ℕ) {n m : ℕ} (h : n ≤ m) : Sym2 (boxVerts d n) → Sym2 (boxVerts d m) :=
Sym2.map (boxVertInclLE d h)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDomChain.lean:424
Uses 24 · Used by 1
LemmaAdjacent box vertices differ by a signed unit vector#✓fully proved
The difference of adjacent box vertices is a signed unit vector. See also rot_edge_dir.
lemma ocs_edge_dir_candMap (d m : ℕ) (u v : boxVerts d m) (hadj : (boxGraph d m).Adj u v) :
∃ p : Fin d × Bool, (v : Site d) - (u : Site d) = candMap d (0 : Site d) p
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
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def candMap (d : ℕ) (x : Site d) : Fin d × Bool → Site d :=
fun p => shift d x p.1 (if p.2 then 1 else -1)
MathlibExt/Combinatorics/SimpleGraph/Lattice/PlanarTopology.lean:60
Uses 8 · Used by 3
DefinitionUnit edge \(\{0, \pm e_j\}\) of a box#✓fully proved
The unit edge {0, ±e_j} of the box Λ_R, R ≥ 1, indexed by (j, sign).
def ocs_unitEdge (d R : ℕ) (hR : 1 ≤ R) (p : Fin d × Bool) : Sym2 (boxVerts d R) :=
s((⟨(0 : Site d), ocs_zero_mem_box d R⟩ : boxVerts d R),
(⟨candMap d (0 : Site d) p, ocs_candMap_mem_box d R hR p⟩ : boxVerts d R))
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
lemma ocs_zero_mem_box (d R : ℕ) : (0 : Site d) ∈ box d R
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:462
def candMap (d : ℕ) (x : Site d) : Fin d × Bool → Site d :=
fun p => shift d x p.1 (if p.2 then 1 else -1)
MathlibExt/Combinatorics/SimpleGraph/Lattice/PlanarTopology.lean:60
lemma ocs_candMap_mem_box (d R : ℕ) (hR : 1 ≤ R) (p : Fin d × Bool) :
candMap d (0 : Site d) p ∈ box d R
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:464
Uses 4 · Used by 13
LemmaFree unit-edge marginals converge to the free density#✓fully proved
The free marginal of a unit edge in Λ_{⌊√n⌋} converges to its free q = 2 density.
lemma ocs_unitEdge_marg_tendsto (d : ℕ) (p : Fin d × Bool) {pr : ℝ} (hp : 0 < pr) (hp1 : pr < 1) :
Tendsto (fun n =>
if hR : 1 ≤ Nat.sqrt n then
edgeMargProb (fkProb (boxGraph d (Nat.sqrt n)) pr 2) (ocs_unitEdge d (Nat.sqrt n) hR p)
else (0 : ℝ)) atTop
(𝓝 (freeEdgeDensity d 2 (edgeIncl d 1 (ocs_unitEdge d 1 (le_refl 1) p)) pr))
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
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
def ocs_unitEdge (d R : ℕ) (hR : 1 ≤ R) (p : Fin d × Bool) : Sym2 (boxVerts d R) :=
s((⟨(0 : Site d), ocs_zero_mem_box d R⟩ : boxVerts d R),
(⟨candMap d (0 : Site d) p, ocs_candMap_mem_box d R hR p⟩ : boxVerts d R))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:493
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 23 · Used by 2
DefinitionFree rotation residue for a box pair#✓fully proved
The free rotation residue at tilt t for the box pair e': every lattice edge of every box
has the free q = 2 density of e' at p = logistic t.
def ocs_FreeRotationResidue (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) : Prop :=
∀ (m : ℕ) (eb : Sym2 (boxVerts d m)), eb ∈ (boxGraph d m).edgeFinset →
freeEdgeDensity d 2 (edgeIncl d m eb) (fsc_logistic t)
= 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
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
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
DefinitionFree unit-edge marginal in the square-root box#✓fully proved
The free marginal at p = logistic t of the unit edge (j, sign) in Λ_{⌊√n⌋}, and 0
when ⌊√n⌋ = 0.
noncomputable def ocs_unitMarg (d n : ℕ) (p : Fin d × Bool) (t : ℝ) : ℝ :=
if hR : 1 ≤ Nat.sqrt n then
edgeMargProb (fkProb (boxGraph d (Nat.sqrt n)) (fsc_logistic t) 2)
(ocs_unitEdge d (Nat.sqrt n) hR p)
else 0
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
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
def ocs_unitEdge (d R : ℕ) (hR : 1 ≤ R) (p : Fin d × Bool) : Sym2 (boxVerts d R) :=
s((⟨(0 : Site d), ocs_zero_mem_box d R⟩ : boxVerts d R),
(⟨candMap d (0 : Site d) p, ocs_candMap_mem_box d R hR p⟩ : boxVerts d R))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:493
Uses 8 · Used by 4
DefinitionTotal deviation of free unit-edge marginals from the density#✓fully proved
The total deviation ∑_{(j, sign)} |density(e') - unit-edge marginal| of the free unit-edge
marginals in Λ_{⌊√n⌋} from the free density of e'.
noncomputable def ocs_freeDelta (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) (n : ℕ) : ℝ :=
∑ p : Fin d × Bool,
|freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) - ocs_unitMarg d n p 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 ocs_unitMarg (d n : ℕ) (p : Fin d × Bool) (t : ℝ) : ℝ :=
if hR : 1 ≤ Nat.sqrt n then
edgeMargProb (fkProb (boxGraph d (Nat.sqrt n)) (fsc_logistic t) 2)
(ocs_unitEdge d (Nat.sqrt n) hR p)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:555
DefinitionBulk edges of \(\Lambda_n\)#✓fully proved
The bulk edges of Λ_n: the edges of the inner box Λ_{n - ⌊√n⌋}.
noncomputable def ocs_bulkSet (d n : ℕ) : Finset (Sym2 (boxVerts d n)) :=
(boxGraph d (n - Nat.sqrt n)).edgeFinset.image (innerEdgeLE d (Nat.sub_le n (Nat.sqrt n)))
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 innerEdgeLE (d : ℕ) {n m : ℕ} (h : n ≤ m) : Sym2 (boxVerts d n) → Sym2 (boxVerts d m) :=
Sym2.map (boxVertInclLE d h)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDomChain.lean:424
LemmaLower bound on free bulk edge marginals#✓fully proved
Every bulk edge of Λ_n has free marginal at least density(e') - ocs_freeDelta.
lemma ocs_free_bulk_lower (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) (n : ℕ) (hn : 1 ≤ n)
(u v : boxVerts d (n - Nat.sqrt n)) (hadj : (boxGraph d (n - Nat.sqrt n)).Adj u v) :
freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) - ocs_freeDelta N e' t n
≤ edgeMargProb (fkProb (boxGraph d n) (fsc_logistic t) 2)
(innerEdgeLE d (Nat.sub_le n (Nat.sqrt n))
(s(u, v) : Sym2 (boxVerts d (n - Nat.sqrt n))))
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
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 ocs_freeDelta (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) (n : ℕ) : ℝ :=
∑ p : Fin d × Bool,
|freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) - ocs_unitMarg d n p t|
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:563
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
def innerEdgeLE (d : ℕ) {n m : ℕ} (h : n ≤ m) : Sym2 (boxVerts d n) → Sym2 (boxVerts d m) :=
Sym2.map (boxVertInclLE d h)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDomChain.lean:424
Uses 16 · Used by 2
LemmaFree off-centre sandwich from free rotation residues#✓fully proved
The free off-centre sandwich from the free rotation residues for all pairs e' of Λ_N.
lemma ocs_freeOffCentreSandwich_of_rotation (hd : 1 ≤ d) (N : ℕ)
(hres : ∀ (e' : Sym2 (boxVerts d N)) (t : ℝ), ocs_FreeRotationResidue (d := d) N e' t) :
bdp_FreeOffCentreSandwich (d := d) N
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def ocs_FreeRotationResidue (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) : Prop :=
∀ (m : ℕ) (eb : Sym2 (boxVerts d m)), eb ∈ (boxGraph d m).edgeFinset →
freeEdgeDensity d 2 (edgeIncl d m eb) (fsc_logistic t)
= freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:548
def bdp_FreeOffCentreSandwich (N : ℕ) : Prop :=
∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
∃ (In : (n : ℕ) → Finset (Sym2 (boxVerts d n))) (δ : ℕ → ℝ),
(∀ n, In n ⊆ (boxGraph d n).edgeFinset) ∧
(∀ n, 0 ≤ δ n) ∧ Tendsto δ atTop (𝓝 0) ∧
(∀ n, ∀ e ∈ In n,
freeEdgeDensity d 2 (edgeIncl d n e) (fsc_logistic t)
= freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)) ∧
(∀ n, ∀ e ∈ In n,
freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) - δ n
≤ edgeMargProb (fkProb (boxGraph d n) (fsc_logistic t) 2) e) ∧
Tendsto (fun n =>
⋯
PhyslibExt/StatisticalMechanics/RandomCluster/FreeTranslationInvariance.lean:431
Uses 25
LemmaWired unit-edge marginals converge to the wired density#✓fully proved
The wired marginal of a unit edge in Λ_{⌊√n⌋} converges to its wired q = 2 density.
lemma ocs_unitEdge_wired_marg_tendsto (d : ℕ) (p : Fin d × Bool) {pr : ℝ}
(hp : 0 < pr) (hp1 : pr < 1) :
Tendsto (fun n =>
if hR : 1 ≤ Nat.sqrt n then
edgeMargProb (wiredFkProb (boxGraph d (Nat.sqrt n)) (boxBoundary d (Nat.sqrt n)) pr 2)
(ocs_unitEdge d (Nat.sqrt n) hR p)
else (0 : ℝ)) atTop
(𝓝 (wiredEdgeDensity d 2 (edgeIncl d 1 (ocs_unitEdge d 1 (le_refl 1) p)) pr))
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
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
def ocs_unitEdge (d R : ℕ) (hR : 1 ≤ R) (p : Fin d × Bool) : Sym2 (boxVerts d R) :=
s((⟨(0 : Site d), ocs_zero_mem_box d R⟩ : boxVerts d R),
(⟨candMap d (0 : Site d) p, ocs_candMap_mem_box d R hR p⟩ : boxVerts d R))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:493
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
Uses 24 · Used by 2
DefinitionWired rotation residue for a box pair#✓fully proved
The wired rotation residue at tilt t for the box pair e': every lattice edge of every box
has the wired q = 2 density of e' at p = logistic t.
def ocs_WiredRotationResidue (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) : Prop :=
∀ (m : ℕ) (eb : Sym2 (boxVerts d m)), eb ∈ (boxGraph d m).edgeFinset →
wiredEdgeDensity d 2 (edgeIncl d m eb) (fsc_logistic t)
= 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
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
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 7 · Used by 3
DefinitionWired unit-edge marginal in the square-root box#✓fully proved
The wired marginal at p = logistic t of the unit edge (j, sign) in Λ_{⌊√n⌋}, and 0
when ⌊√n⌋ = 0.
noncomputable def ocs_unitWiredMarg (d n : ℕ) (p : Fin d × Bool) (t : ℝ) : ℝ :=
if hR : 1 ≤ Nat.sqrt n then
edgeMargProb
(wiredFkProb (boxGraph d (Nat.sqrt n)) (boxBoundary d (Nat.sqrt n)) (fsc_logistic t) 2)
(ocs_unitEdge d (Nat.sqrt n) hR p)
else 0
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
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 fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
def ocs_unitEdge (d R : ℕ) (hR : 1 ≤ R) (p : Fin d × Bool) : Sym2 (boxVerts d R) :=
s((⟨(0 : Site d), ocs_zero_mem_box d R⟩ : boxVerts d R),
(⟨candMap d (0 : Site d) p, ocs_candMap_mem_box d R hR p⟩ : boxVerts d R))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:493
Uses 9 · Used by 4
DefinitionTotal deviation of wired unit-edge marginals from the density#✓fully proved
The total deviation of the wired unit-edge marginals in Λ_{⌊√n⌋} from the wired density of
e'.
noncomputable def ocs_wiredDelta (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) (n : ℕ) : ℝ :=
∑ p : Fin d × Bool,
|ocs_unitWiredMarg d n p t - 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 ocs_unitWiredMarg (d n : ℕ) (p : Fin d × Bool) (t : ℝ) : ℝ :=
if hR : 1 ≤ Nat.sqrt n then
edgeMargProb
(wiredFkProb (boxGraph d (Nat.sqrt n)) (boxBoundary d (Nat.sqrt n)) (fsc_logistic t) 2)
(ocs_unitEdge d (Nat.sqrt n) hR p)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:750
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
DefinitionWired bulk edges of \(\Lambda_n\)#✓fully proved
The wired bulk edges of Λ_n: the edges of the inner box Λ_{n - ⌊√n⌋ - 1}.
noncomputable def ocs_wiredBulkSet (d n : ℕ) : Finset (Sym2 (boxVerts d n)) :=
(boxGraph d (n - Nat.sqrt n - 1)).edgeFinset.image
(innerEdgeLE d (Nat.sub_le (n - Nat.sqrt n) 1 |>.trans (Nat.sub_le n (Nat.sqrt n))))
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 innerEdgeLE (d : ℕ) {n m : ℕ} (h : n ≤ m) : Sym2 (boxVerts d n) → Sym2 (boxVerts d m) :=
Sym2.map (boxVertInclLE d h)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDomChain.lean:424
LemmaUpper bound on wired bulk edge marginals#✓fully proved
Every wired bulk edge of Λ_n has wired marginal at most density(e') + ocs_wiredDelta.
lemma ocs_wired_bulk_upper (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) (n : ℕ) (hn : 2 ≤ n)
(u v : boxVerts d (n - Nat.sqrt n - 1)) (hadj : (boxGraph d (n - Nat.sqrt n - 1)).Adj u v) :
edgeMargProb (wiredFkProb (boxGraph d n) (boxBoundary d n) (fsc_logistic t) 2)
(innerEdgeLE d (Nat.sub_le (n - Nat.sqrt n) 1 |>.trans (Nat.sub_le n (Nat.sqrt n)))
(s(u, v) : Sym2 (boxVerts d (n - Nat.sqrt n - 1))))
≤ wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) + ocs_wiredDelta N e' t n
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
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
def boxBoundary (d n : ℕ) (x : boxVerts d n) : Prop := (x : Site d) ∈ vertexBoundary d n
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:151
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
def innerEdgeLE (d : ℕ) {n m : ℕ} (h : n ≤ m) : Sym2 (boxVerts d n) → Sym2 (boxVerts d m) :=
Sym2.map (boxVertInclLE d h)
PhyslibExt/StatisticalMechanics/RandomCluster/WiredDomChain.lean:424
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 ocs_wiredDelta (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) (n : ℕ) : ℝ :=
∑ p : Fin d × Bool,
|ocs_unitWiredMarg d n p t - wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)|
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:759
Uses 17 · Used by 2
LemmaWired off-centre sandwich from wired rotation residues#✓fully proved
The wired off-centre sandwich from the wired rotation residues for all pairs e' of
Λ_N.
lemma ocs_wiredOffCentreSandwich_of_rotation (hd : 1 ≤ d) (N : ℕ)
(hres : ∀ (e' : Sym2 (boxVerts d N)) (t : ℝ), ocs_WiredRotationResidue (d := d) N e' t) :
bdp_WiredOffCentreSandwich (d := d) N
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def ocs_WiredRotationResidue (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) : Prop :=
∀ (m : ℕ) (eb : Sym2 (boxVerts d m)), eb ∈ (boxGraph d m).edgeFinset →
wiredEdgeDensity d 2 (edgeIncl d m eb) (fsc_logistic t)
= wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:743
def bdp_WiredOffCentreSandwich (N : ℕ) : Prop :=
∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
∃ (In : (n : ℕ) → Finset (Sym2 (boxVerts d n))) (δ : ℕ → ℝ),
(∀ n, In n ⊆ (boxGraph d n).edgeFinset) ∧
(∀ n, 0 ≤ δ n) ∧ Tendsto δ atTop (𝓝 0) ∧
(∀ n, ∀ e ∈ In n,
wiredEdgeDensity d 2 (edgeIncl d n e) (fsc_logistic t)
= wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)) ∧
(∀ n, ∀ e ∈ In n,
edgeMargProb (wiredFkProb (boxGraph d n) (boxBoundary d n) (fsc_logistic t) 2) e
≤ wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) + δ n) ∧
Tendsto (fun n =>
⋯
PhyslibExt/StatisticalMechanics/RandomCluster/FreeTranslationInvariance.lean:452
Uses 26
LemmaFree \(q = 2\) bulk sandwich from equal free edge densities#✓fully proved
If every free q = 2 edge density equals that of e', then each box Λ_n has a bulk set of
edges with that density whose free marginals are at least the density minus δ_n → 0, and the
non-bulk edge fraction tends to zero.
lemma gec_freeSandwich_of_rotation (hd : 1 ≤ d) (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ)
(hres : ocs_FreeRotationResidue (d := d) N e' t) :
∃ (In : (n : ℕ) → Finset (Sym2 (boxVerts d n))) (δ : ℕ → ℝ),
(∀ n, In n ⊆ (boxGraph d n).edgeFinset) ∧
(∀ n, 0 ≤ δ n) ∧ Tendsto δ atTop (𝓝 0) ∧
(∀ n, ∀ e ∈ In n,
freeEdgeDensity d 2 (edgeIncl d n e) (fsc_logistic t)
= freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)) ∧
(∀ n, ∀ e ∈ In n,
freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) - δ n
≤ edgeMargProb (fkProb (boxGraph d n) (fsc_logistic t) 2) e) ∧
Tendsto (fun n =>
(((boxGraph d n).edgeFinset.card - (In n).card : ℝ)) / (boxGraph d n).edgeFinset.card)
atTop (𝓝 0)
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def ocs_FreeRotationResidue (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) : Prop :=
∀ (m : ℕ) (eb : Sym2 (boxVerts d m)), eb ∈ (boxGraph d m).edgeFinset →
freeEdgeDensity d 2 (edgeIncl d m eb) (fsc_logistic t)
= freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:548
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
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 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 24 · Used by 1
LemmaWired \(q = 2\) bulk sandwich from equal wired edge densities#✓fully proved
If every wired q = 2 edge density equals that of e', then each box Λ_n has a bulk set of
edges with that density whose wired marginals are at most the density plus δ_n → 0, and the
non-bulk edge fraction tends to zero.
lemma gec_wiredSandwich_of_rotation (hd : 1 ≤ d) (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ)
(hres : ocs_WiredRotationResidue (d := d) N e' t) :
∃ (In : (n : ℕ) → Finset (Sym2 (boxVerts d n))) (δ : ℕ → ℝ),
(∀ n, In n ⊆ (boxGraph d n).edgeFinset) ∧
(∀ n, 0 ≤ δ n) ∧ Tendsto δ atTop (𝓝 0) ∧
(∀ n, ∀ e ∈ In n,
wiredEdgeDensity d 2 (edgeIncl d n e) (fsc_logistic t)
= wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)) ∧
(∀ n, ∀ e ∈ In n,
edgeMargProb (wiredFkProb (boxGraph d n) (boxBoundary d n) (fsc_logistic t) 2) e
≤ wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) + δ n) ∧
Tendsto (fun n =>
(((boxGraph d n).edgeFinset.card - (In n).card : ℝ)) / (boxGraph d n).edgeFinset.card)
atTop (𝓝 0)
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def ocs_WiredRotationResidue (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) : Prop :=
∀ (m : ℕ) (eb : Sym2 (boxVerts d m)), eb ∈ (boxGraph d m).edgeFinset →
wiredEdgeDensity d 2 (edgeIncl d m eb) (fsc_logistic t)
= wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:743
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
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 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
def boxBoundary (d n : ℕ) (x : boxVerts d n) : Prop := (x : Site d) ∈ vertexBoundary d n
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:151
Uses 25 · Used by 1
LemmaTwo-sided free \(q = 2\) bulk bounds from the free sandwich#✓fully proved
The free sandwich gives two-sided bulk bounds: free marginals within δ_n of the density,
since free marginals increase to the density.
StatMech.FK.gec_freeBulk_of_sandwich · 22 lines
lemma gec_freeBulk_of_sandwich (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ)
(hsand : ∃ (In : (n : ℕ) → Finset (Sym2 (boxVerts d n))) (δ : ℕ → ℝ),
(∀ n, In n ⊆ (boxGraph d n).edgeFinset) ∧
(∀ n, 0 ≤ δ n) ∧ Tendsto δ atTop (𝓝 0) ∧
(∀ n, ∀ e ∈ In n,
freeEdgeDensity d 2 (edgeIncl d n e) (fsc_logistic t)
= freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)) ∧
(∀ n, ∀ e ∈ In n,
freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) - δ n
≤ edgeMargProb (fkProb (boxGraph d n) (fsc_logistic t) 2) e) ∧
Tendsto (fun n =>
(((boxGraph d n).edgeFinset.card - (In n).card : ℝ)) / (boxGraph d n).edgeFinset.card)
atTop (𝓝 0)) :
∃ (In : (n : ℕ) → Finset (Sym2 (boxVerts d n))) (δ : ℕ → ℝ),
(∀ n, In n ⊆ (boxGraph d n).edgeFinset) ∧
(∀ n, 0 ≤ δ n) ∧ Tendsto δ atTop (𝓝 0) ∧
(∀ n, ∀ e ∈ In n,
|edgeMargProb (fkProb (boxGraph d n) (fsc_logistic t) 2) e
- freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)| ≤ δ n) ∧
Tendsto (fun n =>
(((boxGraph d n).edgeFinset.card - (In n).card : ℝ)) / (boxGraph d n).edgeFinset.card)
atTop (𝓝 0)
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
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 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
LemmaTwo-sided wired \(q = 2\) bulk bounds from the wired sandwich#✓fully proved
The wired sandwich gives two-sided bulk bounds: wired marginals within δ_n of the density,
since wired marginals decrease to the density.
StatMech.FK.gec_wiredBulk_of_sandwich · 22 lines
lemma gec_wiredBulk_of_sandwich (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ)
(hsand : ∃ (In : (n : ℕ) → Finset (Sym2 (boxVerts d n))) (δ : ℕ → ℝ),
(∀ n, In n ⊆ (boxGraph d n).edgeFinset) ∧
(∀ n, 0 ≤ δ n) ∧ Tendsto δ atTop (𝓝 0) ∧
(∀ n, ∀ e ∈ In n,
wiredEdgeDensity d 2 (edgeIncl d n e) (fsc_logistic t)
= wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)) ∧
(∀ n, ∀ e ∈ In n,
edgeMargProb (wiredFkProb (boxGraph d n) (boxBoundary d n) (fsc_logistic t) 2) e
≤ wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) + δ n) ∧
Tendsto (fun n =>
(((boxGraph d n).edgeFinset.card - (In n).card : ℝ)) / (boxGraph d n).edgeFinset.card)
atTop (𝓝 0)) :
∃ (In : (n : ℕ) → Finset (Sym2 (boxVerts d n))) (δ : ℕ → ℝ),
(∀ n, In n ⊆ (boxGraph d n).edgeFinset) ∧
(∀ n, 0 ≤ δ n) ∧ Tendsto δ atTop (𝓝 0) ∧
(∀ n, ∀ e ∈ In n,
|edgeMargProb (wiredFkProb (boxGraph d n) (boxBoundary d n) (fsc_logistic t) 2) e
- wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)| ≤ δ n) ∧
Tendsto (fun n =>
(((boxGraph d n).edgeFinset.card - (In n).card : ℝ)) / (boxGraph d n).edgeFinset.card)
atTop (𝓝 0)
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
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 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
def boxBoundary (d n : ℕ) (x : boxVerts d n) : Prop := (x : Site d) ∈ vertexBoundary d n
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:151
Uses 11 · Used by 1
DefinitionCoordinate permutation of \(\mathbb{Z}^d\)#✓fully proved
The permutation of ℤ^d permuting coordinates by π: (x ∘ π⁻¹)_i = x_{π⁻¹ i}.
def rot_permEquiv (d : ℕ) (π : Equiv.Perm (Fin d)) : Site d ≃ Site d where
toFun := fun x i => x (π.symm i)
invFun := fun x i => x (π i)
left_inv := by intro x; funext i; simp
right_inv := by intro x; funext i; simp
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
Uses 1 · Used by 4
DefinitionCoordinate permutation as a box symmetry#✓fully proved
A coordinate permutation as a box symmetry.
def rot_permBoxSym (d : ℕ) (π : Equiv.Perm (Fin d)) : BoxSym d where
τ := rot_permEquiv d π
adj := by
intro x y
simp only [hypercubicLattice_adj, rot_permEquiv_apply]
rw [← Equiv.sum_comp π.symm (fun i => (x i - y i).natAbs)]
box_mem := by
intro n x
simp only [mem_box, rot_permEquiv_apply]
refine ⟨fun h i => ?_, fun h i => h (π.symm i)⟩
have := h (π i); simpa using this
structure BoxSym (d : ℕ) where
/-- The underlying permutation of the sites. -/
τ : Site d ≃ Site d
/-- `τ` preserves nearest-neighbour adjacency. -/
adj : ∀ x y, (hypercubicLattice d).Adj (τ x) (τ y) ↔ (hypercubicLattice d).Adj x y
/-- `τ` maps each centered box onto itself. -/
box_mem : ∀ n x, τ x ∈ box d n ↔ x ∈ box d n
PhyslibExt/StatisticalMechanics/RandomCluster/TranslationInvariance.lean:277
def rot_permEquiv (d : ℕ) (π : Equiv.Perm (Fin d)) : Site d ≃ Site d where
toFun := fun x i => x (π.symm i)
invFun := fun x i => x (π i)
left_inv := by intro x; funext i; simp
right_inv := by intro x; funext i; simp
PhyslibExt/StatisticalMechanics/RandomCluster/RotationInvariance.lean:80
LemmaBox symmetries preserve the free \(q = 2\) density of any pair of sites#✓fully proved
Box symmetries preserve the free q = 2 density of any edge of ℤ^d.
lemma rot_free_density_boxSym (S : BoxSym d) (e : Sym2 (Site d))
{p : ℝ} (hp : 0 < p) (hp1 : p < 1) :
freeEdgeDensity d 2 (Sym2.map S.τ e) p = freeEdgeDensity d 2 e p
structure BoxSym (d : ℕ) where
/-- The underlying permutation of the sites. -/
τ : Site d ≃ Site d
/-- `τ` preserves nearest-neighbour adjacency. -/
adj : ∀ x y, (hypercubicLattice d).Adj (τ x) (τ y) ↔ (hypercubicLattice d).Adj x y
/-- `τ` maps each centered box onto itself. -/
box_mem : ∀ n x, τ x ∈ box d n ↔ x ∈ box d n
PhyslibExt/StatisticalMechanics/RandomCluster/TranslationInvariance.lean:277
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
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 8 · Used by 1
LemmaBox symmetries preserve the wired \(q = 2\) density of any pair of sites#✓fully proved
Box symmetries preserve the wired q = 2 density of any edge of ℤ^d.
lemma rot_wired_density_boxSym (S : BoxSym d) (e : Sym2 (Site d))
{p : ℝ} (hp : 0 < p) (hp1 : p < 1) :
wiredEdgeDensity d 2 (Sym2.map S.τ e) p = wiredEdgeDensity d 2 e p
structure BoxSym (d : ℕ) where
/-- The underlying permutation of the sites. -/
τ : Site d ≃ Site d
/-- `τ` preserves nearest-neighbour adjacency. -/
adj : ∀ x y, (hypercubicLattice d).Adj (τ x) (τ y) ↔ (hypercubicLattice d).Adj x y
/-- `τ` maps each centered box onto itself. -/
box_mem : ∀ n x, τ x ∈ box d n ↔ x ∈ box d n
PhyslibExt/StatisticalMechanics/RandomCluster/TranslationInvariance.lean:277
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
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
Uses 8 · Used by 1
DefinitionReference edge \(\{0, e_0\}\) of \(\mathbb{Z}^d\)#✓fully proved
The reference edge {0, e_0} of ℤ^d.
def rot_refUnitEdge (d : ℕ) (hd : 0 < d) : Sym2 (Site d) :=
s((0 : Site d), candMap d (0 : Site d) (⟨0, hd⟩, true))
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def candMap (d : ℕ) (x : Site d) : Fin d × Bool → Site d :=
fun p => shift d x p.1 (if p.2 then 1 else -1)
MathlibExt/Combinatorics/SimpleGraph/Lattice/PlanarTopology.lean:60
Uses 2 · Used by 8
LemmaUnit edges at the origin have the free density of \(\{0, e_0\}\)#✓fully proved
Every unit edge {0, ±e_j} has the free density of {0, e_0}.
lemma rot_free_centred_unit_const (hd : 0 < d) (j : Fin d) (b : Bool) {p : ℝ}
(hp : 0 < p) (hp1 : p < 1) :
freeEdgeDensity d 2 (s((0 : Site d), candMap d (0 : Site d) (j, b)) : Sym2 (Site d)) p
= freeEdgeDensity d 2 (rot_refUnitEdge d hd) p
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
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def candMap (d : ℕ) (x : Site d) : Fin d × Bool → Site d :=
fun p => shift d x p.1 (if p.2 then 1 else -1)
MathlibExt/Combinatorics/SimpleGraph/Lattice/PlanarTopology.lean:60
def rot_refUnitEdge (d : ℕ) (hd : 0 < d) : Sym2 (Site d) :=
s((0 : Site d), candMap d (0 : Site d) (⟨0, hd⟩, true))
PhyslibExt/StatisticalMechanics/RandomCluster/RotationInvariance.lean:219
Uses 10 · Used by 1
LemmaUnit edges at the origin have the wired density of \(\{0, e_0\}\)#✓fully proved
Every unit edge {0, ±e_j} has the wired density of {0, e_0}.
lemma rot_wired_centred_unit_const (hd : 0 < d) (j : Fin d) (b : Bool) {p : ℝ}
(hp : 0 < p) (hp1 : p < 1) :
wiredEdgeDensity d 2 (s((0 : Site d), candMap d (0 : Site d) (j, b)) : Sym2 (Site d)) p
= wiredEdgeDensity d 2 (rot_refUnitEdge d hd) p
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
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def candMap (d : ℕ) (x : Site d) : Fin d × Bool → Site d :=
fun p => shift d x p.1 (if p.2 then 1 else -1)
MathlibExt/Combinatorics/SimpleGraph/Lattice/PlanarTopology.lean:60
def rot_refUnitEdge (d : ℕ) (hd : 0 < d) : Sym2 (Site d) :=
s((0 : Site d), candMap d (0 : Site d) (⟨0, hd⟩, true))
PhyslibExt/StatisticalMechanics/RandomCluster/RotationInvariance.lean:219
Uses 10 · Used by 1
LemmaAdjacent sites differ by a signed unit vector#✓fully proved
The difference of adjacent sites is a signed unit vector. See also ocs_edge_dir_candMap,
the same statement for vertices of a box.
lemma rot_edge_dir (x y : Site d) (hadj : (hypercubicLattice d).Adj x y) :
∃ p : Fin d × Bool, y - x = candMap d (0 : Site d) p
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def hypercubicLattice (d : ℕ) : SimpleGraph (Site d) where
Adj := NearestNeighbour d
symm := ⟨fun _ _ h => nearestNeighbour_symm d h⟩
loopless := nearestNeighbour_irrefl d
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:76
def candMap (d : ℕ) (x : Site d) : Fin d × Bool → Site d :=
fun p => shift d x p.1 (if p.2 then 1 else -1)
MathlibExt/Combinatorics/SimpleGraph/Lattice/PlanarTopology.lean:60
Uses 5 · Used by 3
LemmaEvery lattice edge has the free \(q = 2\) density of \(\{0, e_0\}\)#✓fully proved
Every nearest-neighbour edge of ℤ^d has the free q = 2 density of {0, e_0}.
lemma rot_free_edge_const (hd : 0 < d) (x y : Site d)
(hadj : (hypercubicLattice d).Adj x y) {p : ℝ} (hp : 0 < p) (hp1 : p < 1) :
freeEdgeDensity d 2 (s(x, y) : Sym2 (Site d)) p
= freeEdgeDensity d 2 (rot_refUnitEdge d hd) p
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def hypercubicLattice (d : ℕ) : SimpleGraph (Site d) where
Adj := NearestNeighbour d
symm := ⟨fun _ _ h => nearestNeighbour_symm d h⟩
loopless := nearestNeighbour_irrefl d
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:76
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 rot_refUnitEdge (d : ℕ) (hd : 0 < d) : Sym2 (Site d) :=
s((0 : Site d), candMap d (0 : Site d) (⟨0, hd⟩, true))
PhyslibExt/StatisticalMechanics/RandomCluster/RotationInvariance.lean:219
Uses 13 · Used by 1
LemmaEvery lattice edge has the wired \(q = 2\) density of \(\{0, e_0\}\)#✓fully proved
Every nearest-neighbour edge of ℤ^d has the wired q = 2 density of {0, e_0}.
lemma rot_wired_edge_const (hd : 0 < d) (x y : Site d)
(hadj : (hypercubicLattice d).Adj x y) {p : ℝ} (hp : 0 < p) (hp1 : p < 1) :
wiredEdgeDensity d 2 (s(x, y) : Sym2 (Site d)) p
= wiredEdgeDensity d 2 (rot_refUnitEdge d hd) p
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def hypercubicLattice (d : ℕ) : SimpleGraph (Site d) where
Adj := NearestNeighbour d
symm := ⟨fun _ _ h => nearestNeighbour_symm d h⟩
loopless := nearestNeighbour_irrefl d
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:76
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 rot_refUnitEdge (d : ℕ) (hd : 0 < d) : Sym2 (Site d) :=
s((0 : Site d), candMap d (0 : Site d) (⟨0, hd⟩, true))
PhyslibExt/StatisticalMechanics/RandomCluster/RotationInvariance.lean:219
Uses 13 · Used by 2
LemmaAll box edges have the same free \(q = 2\) density#✓fully proved
The free rotation residue holds for every lattice edge e' of the box Λ_N.
lemma rot_freeRotationResidue (hd : 0 < d) (N : ℕ) (e' : Sym2 (boxVerts d N))
(he' : e' ∈ (boxGraph d N).edgeFinset) (t : ℝ) :
ocs_FreeRotationResidue (d := d) N e' t
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 ocs_FreeRotationResidue (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) : Prop :=
∀ (m : ℕ) (eb : Sym2 (boxVerts d m)), eb ∈ (boxGraph d m).edgeFinset →
freeEdgeDensity d 2 (edgeIncl d m eb) (fsc_logistic t)
= freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:548
Uses 11 · Used by 1
LemmaAll box edges have the same wired \(q = 2\) density#✓fully proved
The wired rotation residue holds for every lattice edge e' of the box Λ_N.
lemma rot_wiredRotationResidue (hd : 0 < d) (N : ℕ) (e' : Sym2 (boxVerts d N))
(he' : e' ∈ (boxGraph d N).edgeFinset) (t : ℝ) :
ocs_WiredRotationResidue (d := d) N e' t
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 ocs_WiredRotationResidue (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) : Prop :=
∀ (m : ℕ) (eb : Sym2 (boxVerts d m)), eb ∈ (boxGraph d m).edgeFinset →
wiredEdgeDensity d 2 (edgeIncl d m eb) (fsc_logistic t)
= wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:743
Uses 11 · Used by 1
DefinitionFree growing-box collapse at \(q = 2\)#✓fully proved
Free growing-box collapse: for every edge e' of Λ_N and every t, the average free edge
density of Λ_n converges to the free infinite-volume density of e'.
def ubd_FreeGrowingBoxCollapse (N : ℕ) : Prop :=
∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
Tendsto (fun n => fpd_avgDensity (boxGraph d 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
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
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 8
LemmaFree \(q = 2\) edge density lies in \((0, 1)\)#✓fully proved
The free infinite-volume q = 2 edge density lies in [0, 1].
lemma ubd_freeEdgeDensity_mem_Icc (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) :
freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) ∈ Set.Icc (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
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 25 · Used by 1
LemmaNonnegativity of wired FK edge marginals#✓fully proved
Edge marginals of a wired FK measure are nonnegative.
lemma ubd_edgeMargProb_wiredFkProb_nonneg {V : Type*} [Fintype V] [DecidableEq V]
(G : SimpleGraph V) [DecidableRel G.Adj] (bdry : V → Prop) [DecidablePred bdry]
{p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) (e : Sym2 V) :
0 ≤ edgeMargProb (wiredFkProb G bdry p q) 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
Uses 7 · Used by 3
LemmaWired FK edge marginals are at most one#✓fully proved
Edge marginals of a wired FK measure are at most 1.
lemma ubd_edgeMargProb_wiredFkProb_le_one {V : Type*} [Fintype V] [DecidableEq V]
(G : SimpleGraph V) [DecidableRel G.Adj] (bdry : V → Prop) [DecidablePred bdry]
{p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) (e : Sym2 V) :
edgeMargProb (wiredFkProb G bdry p q) e ≤ 1
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
Uses 7 · Used by 3
LemmaWired \(q = 2\) edge density lies in \((0, 1)\)#✓fully proved
The wired infinite-volume q = 2 edge density lies in [0, 1].
lemma ubd_wiredEdgeDensity_mem_Icc (N : ℕ) (e' : Sym2 (boxVerts d N)) (t : ℝ) :
wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) ∈ Set.Icc (0:ℝ) 1
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 24 · Used by 1
LemmaAverage wired \(q = 2\) edge density of a box as a mean of marginals#✓fully proved
The average wired edge density of Λ_n is the mean of the wired edge marginals.
lemma ubd_avgWiredDensity_eq_sum (n : ℕ) (t : ℝ) :
wpd_avgWiredDensity (boxGraph d n) (boxBoundary d n) 2 t
= (1 / ((boxGraph d n).edgeFinset.card : ℝ))
* ∑ e ∈ (boxGraph d n).edgeFinset,
edgeMargProb (wiredFkProb (boxGraph d n) (boxBoundary d n) (fsc_logistic t) 2) 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
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 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
DefinitionFree uniform bulk deviation at \(q = 2\)#✓fully proved
Free uniform bulk deviation: for every edge e' and t, each box Λ_n has a bulk edge set
with free marginals within δ_n → 0 of the free density of e', and the non-bulk edge
fraction tends to zero.
def ubd_FreeUniformBulkDeviation (N : ℕ) : Prop :=
∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
∃ (In : (n : ℕ) → Finset (Sym2 (boxVerts d n))) (δ : ℕ → ℝ),
(∀ n, In n ⊆ (boxGraph d n).edgeFinset) ∧
(∀ n, 0 ≤ δ n) ∧ Tendsto δ atTop (𝓝 0) ∧
(∀ n, ∀ e ∈ In n,
|edgeMargProb (fkProb (boxGraph d n) (fsc_logistic t) 2) e
- freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)| ≤ δ n) ∧
Tendsto (fun n =>
(((boxGraph d n).edgeFinset.card - (In n).card : ℝ)) / (boxGraph d n).edgeFinset.card)
atTop (𝓝 0)
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
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
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 9
DefinitionWired uniform bulk deviation at \(q = 2\)#✓fully proved
Wired uniform bulk deviation: for every edge e' and t, each box Λ_n has a bulk edge set
with wired marginals within δ_n → 0 of the wired density of e', and the non-bulk edge
fraction tends to zero.
def ubd_WiredUniformBulkDeviation (N : ℕ) : Prop :=
∀ (e' : Sym2 (boxVerts d N)) (t : ℝ),
∃ (In : (n : ℕ) → Finset (Sym2 (boxVerts d n))) (δ : ℕ → ℝ),
(∀ n, In n ⊆ (boxGraph d n).edgeFinset) ∧
(∀ n, 0 ≤ δ n) ∧ Tendsto δ atTop (𝓝 0) ∧
(∀ n, ∀ e ∈ In n,
|edgeMargProb (wiredFkProb (boxGraph d n) (boxBoundary d n) (fsc_logistic t) 2) e
- wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)| ≤ δ n) ∧
Tendsto (fun n =>
(((boxGraph d n).edgeFinset.card - (In n).card : ℝ)) / (boxGraph d n).edgeFinset.card)
atTop (𝓝 0)
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
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
def boxBoundary (d n : ℕ) (x : boxVerts d n) : Prop := (x : Site d) ∈ vertexBoundary d n
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:151
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
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
Uses 10
DefinitionFree \(q = 2\) infinite-volume mass function on a box#✓fully proved
The mass function on configurations of Λ_N of the free q = 2 infinite-volume measure at
p = logistic(t), restricted to Λ_N.
noncomputable def fuc_freeMass (d N : ℕ) (t : ℝ) : ConfigSpace (Sym2 (boxVerts d N)) → ℝ :=
fun ω => (freeInfiniteVolume d (fsc_logistic_pos t) (fsc_logistic_lt_one t)
(by norm_num : (0 : ℝ) < 2) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
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
lemma fsc_logistic_pos (t : ℝ) : 0 < fsc_logistic t
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:88
lemma fsc_logistic_lt_one (t : ℝ) : fsc_logistic t < 1
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:91
DefinitionWired \(q = 2\) infinite-volume mass function on a box#✓fully proved
The mass function on configurations of Λ_N of the wired q = 2 infinite-volume measure at
p = logistic(t), restricted to Λ_N.
noncomputable def fuc_wiredMass (d N : ℕ) (t : ℝ) : ConfigSpace (Sym2 (boxVerts d N)) → ℝ :=
fun ω => (wiredInfiniteVolume d (fsc_logistic_pos t) (fsc_logistic_lt_one t)
(by norm_num : (0 : ℝ) < 2) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def wiredInfiniteVolume (d : ℕ) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) :
ProbabilityMeasure (ConfigSpace (Sym2 (Site d))) :=
(CompactSpace.tendsto_subseq (fun n => wiredFiniteMeasure d n hp hp1 hq)).choose
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:217
lemma fsc_logistic_pos (t : ℝ) : 0 < fsc_logistic t
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:88
lemma fsc_logistic_lt_one (t : ℝ) : fsc_logistic t < 1
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:91
DefinitionHomogeneous free-energy data on a box at \(q = 2\)#✓fully proved
There is a convex g whose right and left derivatives at t are the wired and free q = 2
edge
densities at p = logistic(t), for every edge of Λ_N.
def fuc_HomogeneousFreeEnergyData (d N : ℕ) : Prop :=
∃ g : ℝ → ℝ, ConvexOn ℝ univ g
∧ (∀ (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
LemmaFree-energy data give \(q = 2\) box uniqueness off countably many \(t\)#✓fully proved
Given fuc_HomogeneousFreeEnergyData, the free and wired q = 2 measures agree on every
increasing event of Λ_N for all but countably many t.
lemma fuc_fk_uniqueness (d N : ℕ) (eb : Sym2 (boxVerts d N))
(hdata : fuc_HomogeneousFreeEnergyData d N) :
{t : ℝ | ∃ A : Set (ConfigSpace (Sym2 (boxVerts d N))), IsIncreasing A ∧
eventMassProb (fuc_freeMass d N t) A
≠ eventMassProb (fuc_wiredMass d N t) A}.Countable
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def fuc_HomogeneousFreeEnergyData (d N : ℕ) : Prop :=
∃ g : ℝ → ℝ, ConvexOn ℝ univ g
∧ (∀ (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)
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessFromFreeEnergy.lean:288
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
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
noncomputable def fuc_freeMass (d N : ℕ) (t : ℝ) : ConfigSpace (Sym2 (boxVerts d N)) → ℝ :=
fun ω => (freeInfiniteVolume d (fsc_logistic_pos t) (fsc_logistic_lt_one t)
(by norm_num : (0 : ℝ) < 2) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessFromFreeEnergy.lean:171
noncomputable def fuc_wiredMass (d N : ℕ) (t : ℝ) : ConfigSpace (Sym2 (boxVerts d N)) → ℝ :=
fun ω => (wiredInfiniteVolume d (fsc_logistic_pos t) (fsc_logistic_lt_one t)
(by norm_num : (0 : ℝ) < 2) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessFromFreeEnergy.lean:179
Uses 47
LemmaToggle-invariant coordinates are open with probability one half#✓fully proved
A coordinate whose toggle preserves a probability mass function is open with probability 1/2.
lemma fpe2_edgeMargProb_half_of_toggle_invariant
(μ : ConfigSpace (Sym2 V) → ℝ) (e : Sym2 V)
(hsum : ∑ ω, μ ω = 1)
(hinv : ∀ ψ : ConfigSpace (Sym2 V), μ (setOpen e ψ) = μ (setClosed e ψ)) :
edgeMargProb μ e = 1 / 2
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def setOpen (e : E) (ω : ConfigSpace E) : ConfigSpace E := Function.update ω e true
MathlibExt/Probability/CorrelationInequalities/Pivotal.lean:42
def setClosed (e : E) (ω : ConfigSpace E) : ConfigSpace E := Function.update ω e false
MathlibExt/Probability/CorrelationInequalities/Pivotal.lean:45
noncomputable def edgeMargProb (μ : ConfigSpace E → ℝ) (e : E) : ℝ :=
∑ ω : ConfigSpace E, (if ω e then (1 : ℝ) else 0) * μ ω
PhyslibExt/StatisticalMechanics/RandomCluster/EdgeMarginal.lean:59
Uses 4 · Used by 2
DefinitionPer-coordinate free energy on a box#✓fully proved
The per-coordinate free energy on Λ_N: G on edges of the box graph and s ↦ s/2 on
non-edges.
noncomputable def fpe2_perEdgeG (d N : ℕ) (G : ℝ → ℝ) :
Sym2 (boxVerts d N) → ℝ → ℝ :=
fun e' => if e' ∈ (boxGraph d N).edgeFinset then G else (fun s => (1/2) * s)
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
DefinitionFree densities of genuine box edges as left derivatives#✓fully proved
Every edge of Λ_N has free q = 2 density at p = logistic(t) equal to the left derivative
G'₋(t).
def fpe2_GenuineFreeIsLeftDeriv (d N : ℕ) (G : ℝ → ℝ) : Prop :=
∀ e' ∈ (boxGraph d N).edgeFinset, ∀ t : ℝ,
freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) = pressureLeftDeriv G t
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
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
Uses 8 · Used by 2
DefinitionWired densities of genuine box edges as right derivatives#✓fully proved
Every edge of Λ_N has wired q = 2 density at p = logistic(t) equal to the right
derivative
G'₊(t).
def fpe2_GenuineWiredIsRightDeriv (d N : ℕ) (G : ℝ → ℝ) : Prop :=
∀ e' ∈ (boxGraph d N).edgeFinset, ∀ t : ℝ,
wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) = pressureRightDeriv G t
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
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
Uses 8 · Used by 2
LemmaCountable-exception \(q = 2\) uniqueness from one-sided derivative data#✓fully proved
If the free and wired densities of the edges of Λ_N are the left and right derivatives of one
convex G, the free and wired q = 2 measures agree on increasing events of Λ_N for all but
countably many t.
lemma fpe2_fk_uniqueness_of_genuine (hd : 0 < d) (N : ℕ) (eb : Sym2 (boxVerts d N))
(heb : eb ∈ (boxGraph d N).edgeFinset) {G : ℝ → ℝ} (hG : ConvexOn ℝ univ G)
(hfree : fpe2_GenuineFreeIsLeftDeriv d N G)
(hwired : fpe2_GenuineWiredIsRightDeriv d N G) :
{t : ℝ | ∃ A : Set (ConfigSpace (Sym2 (boxVerts d N))), IsIncreasing A ∧
eventMassProb (fuc_freeMass d N t) A
≠ eventMassProb (fuc_wiredMass d N t) A}.Countable
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 fpe2_GenuineFreeIsLeftDeriv (d N : ℕ) (G : ℝ → ℝ) : Prop :=
∀ e' ∈ (boxGraph d N).edgeFinset, ∀ t : ℝ,
freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) = pressureLeftDeriv G t
PhyslibExt/StatisticalMechanics/RandomCluster/FKUniqPerEdge.lean:281
def fpe2_GenuineWiredIsRightDeriv (d N : ℕ) (G : ℝ → ℝ) : Prop :=
∀ e' ∈ (boxGraph d N).edgeFinset, ∀ t : ℝ,
wiredEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t) = pressureRightDeriv G t
PhyslibExt/StatisticalMechanics/RandomCluster/FKUniqPerEdge.lean:289
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
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
noncomputable def fuc_freeMass (d N : ℕ) (t : ℝ) : ConfigSpace (Sym2 (boxVerts d N)) → ℝ :=
fun ω => (freeInfiniteVolume d (fsc_logistic_pos t) (fsc_logistic_lt_one t)
(by norm_num : (0 : ℝ) < 2) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessFromFreeEnergy.lean:171
noncomputable def fuc_wiredMass (d N : ℕ) (t : ℝ) : ConfigSpace (Sym2 (boxVerts d N)) → ℝ :=
fun ω => (wiredInfiniteVolume d (fsc_logistic_pos t) (fsc_logistic_lt_one t)
(by norm_num : (0 : ℝ) < 2) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessFromFreeEnergy.lean:179
Uses 70 · Used by 1
DefinitionFree average edge density collapse on boxes#✓fully proved
The average free edge density of Λ_n converges to the free infinite-volume density of every
edge
of Λ_N.
def fpe2_GenuineFreeCollapse (d N : ℕ) : Prop :=
∀ e' ∈ (boxGraph d N).edgeFinset, ∀ t : ℝ,
Tendsto (fun n => fpd_avgDensity (boxGraph d n) t) atTop
(𝓝 (freeEdgeDensity d 2 (edgeIncl d N e') (fsc_logistic t)))
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
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 8 · Used by 1
DefinitionWired average edge density collapse on boxes#✓fully proved
The average wired edge density of Λ_n converges to the wired infinite-volume density of every
edge of Λ_N.
def fpe2_GenuineWiredCollapse (d N : ℕ) : Prop :=
∀ e' ∈ (boxGraph d N).edgeFinset, ∀ 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)))
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
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 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 · Used by 1
DefinitionConfigurations closed off the edges of a graph#✓fully proved
Configurations closed on every coordinate that is not an edge of G.
def ecz_ClosedOff : Type _ :=
{ω : ConfigSpace (Sym2 V) // ∀ e, e ∉ G.edgeFinset → ω e = false}
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
Uses 1 · Used by 13
DefinitionEdge partition function of the random-cluster model#✓fully proved
The edge partition function: the sum of FK weights over configurations closed off E(G).
noncomputable def ecz_fkZEdge (p q : ℝ) : ℝ :=
∑ ω : ecz_ClosedOff G, fkWeight G p q ω.val
def ecz_ClosedOff : Type _ :=
{ω : ConfigSpace (Sym2 V) // ∀ e, e ∉ G.edgeFinset → ω e = false}
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:138
def fkWeight (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
edgeProduct G p ω * q ^ numClusters G ω
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:140
Uses 3 · Used by 16
DefinitionNumber of non-edge coordinates of a graph#✓fully proved
The number of coordinates Sym2 V that are not edges of G.
noncomputable def ecz_NE : ℕ :=
(Finset.univ.filter (fun e : Sym2 V => e ∉ G.edgeFinset)).card
Used by 7
LemmaEach non-edge contributes a factor 2 to the partition function#✓fully proved
fkZ G p q = 2^{#non-edges} · ecz_fkZEdge G p q: each non-edge coordinate contributes a free
factor
2.
lemma ecz_factorization (p q : ℝ) :
fkZ G p q = 2 ^ ecz_NE G * ecz_fkZEdge G p q
def fkZ (p q : ℝ) : ℝ :=
∑ ω : ConfigSpace (Sym2 V), fkWeight G p q ω
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:154
noncomputable def ecz_NE : ℕ :=
(Finset.univ.filter (fun e : Sym2 V => e ∉ G.edgeFinset)).card
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:154
noncomputable def ecz_fkZEdge (p q : ℝ) : ℝ :=
∑ ω : ecz_ClosedOff G, fkWeight G p q ω.val
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:150
Uses 9 · Used by 6
LemmaInterface subadditivity of \(-\log\) of the edge partition function#✓fully proved
-log ecz_fkZEdge is subadditive across an interface up to |interface| · (-log(1 - p));
compare
fis_neglog_interface_le for fkZ.
lemma ecz_neglog_interface_le (hci : fis_CrossInterface G H K) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) :
- Real.log (ecz_fkZEdge K p q)
≤ - Real.log (ecz_fkZEdge G p q) + - Real.log (ecz_fkZEdge H p q)
- (fis_interface G H K).card * Real.log (1 - p)
structure fis_CrossInterface : Prop where
le : (G ⊕g H) ≤ K
inl : ∀ a b, K.Adj (Sum.inl a) (Sum.inl b) → G.Adj a b
inr : ∀ c d, K.Adj (Sum.inr c) (Sum.inr d) → H.Adj c d
PhyslibExt/StatisticalMechanics/RandomCluster/FKInterfaceSubadd.lean:82
noncomputable def ecz_fkZEdge (p q : ℝ) : ℝ :=
∑ ω : ecz_ClosedOff G, fkWeight G p q ω.val
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:150
noncomputable def fis_interface : Finset (Sym2 (V ⊕ W)) :=
K.edgeFinset \ (G ⊕g H).edgeFinset
PhyslibExt/StatisticalMechanics/RandomCluster/FKInterfaceSubadd.lean:76
Uses 11 · Used by 4
DefinitionNegative log edge partition function of a graph#✓fully proved
-log ecz_fkZEdge G p q.
noncomputable def ecz_uu {V : Type*} [Fintype V] [DecidableEq V] (G : SimpleGraph V)
[DecidableRel G.Adj] (p q : ℝ) : ℝ := -Real.log (ecz_fkZEdge G p q)
noncomputable def ecz_fkZEdge (p q : ℝ) : ℝ :=
∑ ω : ecz_ClosedOff G, fkWeight G p q ω.val
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:150
Uses 1 · Used by 4
DefinitionNegative log edge partition function of a box#✓fully proved
-log ecz_fkZEdge of the box Λ_n at p = logistic(t), q = 2.
noncomputable def ecz_u (d : ℕ) (t : ℝ) (n : ℕ) : ℝ :=
-Real.log (ecz_fkZEdge (boxGraph d n) (fsc_logistic t) 2)
noncomputable def ecz_fkZEdge (p q : ℝ) : ℝ :=
∑ ω : ecz_ClosedOff G, fkWeight G p q ω.val
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:150
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 6 · Used by 8
DefinitionPer-edge free energy of a box in the tilt variable#✓fully proved
The per-edge free energy of Λ_n in the tilt variable, computed from ecz_fkZEdge.
noncomputable def ecz_edgeFreeEnergy (d : ℕ) (t : ℝ) (n : ℕ) : ℝ :=
-(ecz_u d t n / ((boxGraph d n).edgeFinset.card : ℝ)) + Real.log (1 + Real.exp t)
noncomputable def ecz_u (d : ℕ) (t : ℝ) (n : ℕ) : ℝ :=
-Real.log (ecz_fkZEdge (boxGraph d n) (fsc_logistic t) 2)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:519
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
DefinitionAdditive doubling bound for the edge partition function#✓fully proved
The doubling bound agl_AdditiveDoublingBound with -log fkZ replaced by ecz_u.
def ecz_AdditiveDoublingBound (d : ℕ) (t : ℝ) : Prop :=
∃ (I : ℕ → ℝ),
(∀ j, 0 ≤ I j)
∧ Summable (fun j => I j / agl_E d (agl_K (j + 1)))
∧ (∀ j, ecz_u d t (agl_K (j + 1))
≤ (2 : ℝ) ^ d * ecz_u d t (agl_K j) + I j * (-Real.log (1 - fsc_logistic t)))
∧ (∀ j, |(2 : ℝ) ^ d * agl_E d (agl_K j) - agl_E d (agl_K (j + 1))| ≤ I j)
noncomputable def agl_E (n : ℕ) : ℝ := ((boxGraph d n).edgeFinset.card : ℝ)
PhyslibExt/StatisticalMechanics/RandomCluster/AdditiveGluing.lean:311
def agl_K (j : ℕ) : ℕ := 2 ^ (j + 1) - 1
PhyslibExt/StatisticalMechanics/RandomCluster/AdditiveGluing.lean:275
noncomputable def ecz_u (d : ℕ) (t : ℝ) (n : ℕ) : ℝ :=
-Real.log (ecz_fkZEdge (boxGraph d n) (fsc_logistic t) 2)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:519
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 4 · Used by 3
LemmaBoxes satisfy the additive doubling bound for \(d \ge 1\)#✓fully proved
For d ≥ 1, ecz_u satisfies the doubling bound along the scales K_j = 2^{j+1} - 1.
lemma ecz_additiveDoublingBound (d : ℕ) (hd : 1 ≤ d) (t : ℝ) :
ecz_AdditiveDoublingBound d t
def ecz_AdditiveDoublingBound (d : ℕ) (t : ℝ) : Prop :=
∃ (I : ℕ → ℝ),
(∀ j, 0 ≤ I j)
∧ Summable (fun j => I j / agl_E d (agl_K (j + 1)))
∧ (∀ j, ecz_u d t (agl_K (j + 1))
≤ (2 : ℝ) ^ d * ecz_u d t (agl_K j) + I j * (-Real.log (1 - fsc_logistic t)))
∧ (∀ j, |(2 : ℝ) ^ d * agl_E d (agl_K j) - agl_E d (agl_K (j + 1))| ≤ I j)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:646
Uses 48 · Used by 2
DefinitionMembership of a box vertex in a sub-box#✓fully proved
A vertex of Λ_n lies in the sub-box Λ_a.
def ecz_subBoxPred (d a n : ℕ) : boxVerts d n → Prop := fun x => (x : Site d) ∈ box d a
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def box (d n : ℕ) : Set (Site d) := {x | ∀ i, (x i).natAbs ≤ n}
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:86
Uses 3 · Used by 1
DefinitionSub-box as an induced subgraph of a larger box#✓fully proved
Λ_a is isomorphic to the subgraph of Λ_n induced on Λ_a.
noncomputable def ecz_subBoxIso (a n : ℕ) (hle : a ≤ n) :
boxGraph d a ≃g agl_left (boxGraph d n) (ecz_subBoxPred d a n) := by
classical
have hsub : box d a ⊆ box d n := box_mono d hle
refine agl_leftBlockIso n a (ecz_subBoxPred d a n) 0 ?_ ?_
· exact {
toFun := fun y => ⟨⟨(y : Site d), hsub y.2⟩, y.2⟩
invFun := fun z => ⟨(z.1 : Site d), z.2⟩
left_inv := fun _ => rfl
right_inv := fun _ => rfl }
· intro y
change ((⟨(y : Site d), hsub y.2⟩ : boxVerts d n) : Site d) = (y : Site d) + 0
simp
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
abbrev agl_left : SimpleGraph {x // P x} := K₀.comap (Subtype.val)
PhyslibExt/StatisticalMechanics/RandomCluster/AdditiveGluing.lean:83
def ecz_subBoxPred (d a n : ℕ) : boxVerts d n → Prop := fun x => (x : Site d) ∈ box d a
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:847
Uses 7
DefinitionConvergence of the per-edge free energy of boxes#✓fully proved
The per-edge free energy ecz_u d s n / |E(Λ_n)| converges as n → ∞.
def ecz_PerEdgeDensityConverges (d : ℕ) (s : ℝ) : Prop :=
∃ ρ : ℝ, Tendsto (fun n => ecz_u d s n / ((boxGraph d n).edgeFinset.card : ℝ)) atTop (𝓝 ρ)
noncomputable def ecz_u (d : ℕ) (t : ℝ) (n : ℕ) : ℝ :=
-Real.log (ecz_fkZEdge (boxGraph d n) (fsc_logistic t) 2)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:519
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
DefinitionNumber of sub-box translates along a side of a box#✓fully proved
The number ⌊(2n + 1)/(2m + 1)⌋ of translates of Λ_m that fit along one side of Λ_n.
def ecz_T (m n : ℕ) : ℕ := (2 * n + 1) / (2 * m + 1)
Used by 9
DefinitionCenter of a cell in the tiling of a box by sub-boxes#✓fully proved
The center of the cell indexed by c in the tiling of Λ_n by translates of Λ_m.
def ecz_center (m n : ℕ) (c : Fin d → Fin (ecz_T m n)) : Site d :=
fun i => (c i : ℤ) * (2 * m + 1) + (m : ℤ) - (n : ℤ)
def ecz_T (m n : ℕ) : ℕ := (2 * n + 1) / (2 * m + 1)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1134
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
Uses 2 · Used by 2
DefinitionCoordinate index of the tiling cell containing a site#✓fully proved
The index along coordinate i of the tiling cell containing x.
def ecz_cellIdx (m n : ℕ) (x : Site d) (i : Fin d) : ℕ := ((x i + n).toNat) / (2 * m + 1)
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
Uses 1 · Used by 2
DefinitionTiling cell of a box vertex#✓fully proved
The tiling cell containing a vertex of Λ_n, or none if it lies in the leftover strip.
noncomputable def ecz_vanHoveTag (m n : ℕ) (x : boxVerts d n) :
Option (Fin d → Fin (ecz_T m n)) :=
if h : ∀ i, ecz_cellIdx m n (x : Site d) i < ecz_T m n then
some (fun i => ⟨ecz_cellIdx m n (x : Site d) i, h i⟩)
else none
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
def ecz_T (m n : ℕ) : ℕ := (2 * n + 1) / (2 * m + 1)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1134
def ecz_cellIdx (m n : ℕ) (x : Site d) (i : Fin d) : ℕ := ((x i + n).toNat) / (2 * m + 1)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1164
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
DefinitionTranslation between a sub-box and a tiling cell#✓fully proved
The vertices of Λ_m correspond to the vertices of the cell c by translation.
noncomputable def ecz_cellEquiv (m n : ℕ) (c : Fin d → Fin (ecz_T m n)) :
boxVerts d m ≃ {x : boxVerts d n // ecz_vanHoveTag m n x = some c} where
toFun y := ⟨⟨fun i => (y : Site d) i + ecz_center m n c i,
ecz_center_mem_box m n c (y : Site d) y.2⟩, by
rw [ecz_vanHoveTag_eq_some_iff]; intro i; simp only [add_sub_cancel_right]
exact (qp_natAbs_iff ((y : Site d) i) m).mpr ((qp_natAbs_iff ((y : Site d) i) m).mp (y.2 i))⟩
invFun x := ⟨fun i => ((x : boxVerts d n) : Site d) i - ecz_center m n c i, by
have h := (ecz_vanHoveTag_eq_some_iff m n x.1 c).mp x.2
intro i; exact h i⟩
left_inv y := by apply Subtype.ext; funext i; simp
right_inv x := by
apply Subtype.ext; apply Subtype.ext; funext i; simp
def ecz_T (m n : ℕ) : ℕ := (2 * n + 1) / (2 * m + 1)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1134
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def ecz_vanHoveTag (m n : ℕ) (x : boxVerts d n) :
Option (Fin d → Fin (ecz_T m n)) :=
if h : ∀ i, ecz_cellIdx m n (x : Site d) i < ecz_T m n then
some (fun i => ⟨ecz_cellIdx m n (x : Site d) i, h i⟩)
else none
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1167
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def ecz_center (m n : ℕ) (c : Fin d → Fin (ecz_T m n)) : Site d :=
fun i => (c i : ℤ) * (2 * m + 1) + (m : ℤ) - (n : ℤ)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1140
lemma ecz_center_mem_box (m n : ℕ) (c : Fin d → Fin (ecz_T m n)) (y : Site d)
(hy : y ∈ box d m) : (fun i => y i + ecz_center m n c i) ∈ box d n
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1143
Uses 8 · Used by 1
DefinitionGraph isomorphism between a sub-box and a tiling cell#✓fully proved
Each tiling cell induces a graph isomorphic to Λ_m.
noncomputable def ecz_cellBlockIso (m n : ℕ) (c : Fin d → Fin (ecz_T m n)) :
boxGraph d m ≃g qp_blkG (boxGraph d n) (ecz_vanHoveTag m n) (some c) where
toEquiv := ecz_cellEquiv m n c
map_rel_iff' := by
intro y z
show (qp_blkG (boxGraph d n) (ecz_vanHoveTag m n) (some c)).Adj
(ecz_cellEquiv m n c y) (ecz_cellEquiv m n c z) ↔ (boxGraph d m).Adj y z
unfold qp_blkG boxGraph
simp only [comap_adj]
change (hypercubicLattice d).Adj
(fun i => (y : Site d) i + ecz_center m n c i) (fun i => (z : Site d) i
+ ecz_center m n c i)
↔ (hypercubicLattice d).Adj (y : Site d) (z : Site d)
exact agl_nn_translate d (ecz_center m n c) (y : Site d) (z : Site d)
def ecz_T (m n : ℕ) : ℕ := (2 * n + 1) / (2 * m + 1)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1134
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
noncomputable def qp_blkG (τ : T) : SimpleGraph {x : U // tag x = τ} := K₀.comap Subtype.val
PhyslibExt/StatisticalMechanics/RandomCluster/QuadrantPartition.lean:152
noncomputable def ecz_vanHoveTag (m n : ℕ) (x : boxVerts d n) :
Option (Fin d → Fin (ecz_T m n)) :=
if h : ∀ i, ecz_cellIdx m n (x : Site d) i < ecz_T m n then
some (fun i => ⟨ecz_cellIdx m n (x : Site d) i, h i⟩)
else none
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1167
noncomputable def ecz_cellEquiv (m n : ℕ) (c : Fin d → Fin (ecz_T m n)) :
boxVerts d m ≃ {x : boxVerts d n // ecz_vanHoveTag m n x = some c} where
toFun y := ⟨⟨fun i => (y : Site d) i + ecz_center m n c i,
ecz_center_mem_box m n c (y : Site d) y.2⟩, by
rw [ecz_vanHoveTag_eq_some_iff]; intro i; simp only [add_sub_cancel_right]
exact (qp_natAbs_iff ((y : Site d) i) m).mpr ((qp_natAbs_iff ((y : Site d) i) m).mp (y.2 i))⟩
invFun x := ⟨fun i => ((x : boxVerts d n) : Site d) i - ecz_center m n c i, by
have h := (ecz_vanHoveTag_eq_some_iff m n x.1 c).mp x.2
intro i; exact h i⟩
left_inv y := by apply Subtype.ext; funext i; simp
right_inv x := by
apply Subtype.ext; apply Subtype.ext; funext i; simp
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1239
Uses 10 · Used by 2
DefinitionRestriction of a box to all tiling tags#✓fully proved
Restricting Λ_n to all tags gives back Λ_n.
noncomputable def ecz_restUnivIso (m n : ℕ) :
qp_restG (boxGraph d n) (ecz_vanHoveTag m n) Finset.univ ≃g boxGraph d n where
toEquiv := Equiv.subtypeUnivEquiv (fun x => Finset.mem_univ (ecz_vanHoveTag m n x))
map_rel_iff' := by intro a b; rfl
noncomputable def qp_restG (S : Finset T) : SimpleGraph {x : U // tag x ∈ S} :=
K₀.comap Subtype.val
PhyslibExt/StatisticalMechanics/RandomCluster/QuadrantPartition.lean:148
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
noncomputable def ecz_vanHoveTag (m n : ℕ) (x : boxVerts d n) :
Option (Fin d → Fin (ecz_T m n)) :=
if h : ∀ i, ecz_cellIdx m n (x : Site d) i < ecz_T m n then
some (fun i => ⟨ecz_cellIdx m n (x : Site d) i, h i⟩)
else none
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1167
LemmaVan Hove tiling bound for the edge partition function#✓fully proved
Van Hove bound: ecz_u d t n is at most T^d · ecz_u d t m plus the cost of the leftover
strip
and of the interfaces between cells, where T = ⌊(2n + 1)/(2m + 1)⌋.
lemma ecz_box_vanHove_subadd (m n : ℕ) (t : ℝ) :
ecz_u d t n ≤ ((ecz_T m n) ^ d : ℝ) * ecz_u d t m
+ (((boxGraph d n).edgeFinset.card : ℝ)
- ((ecz_T m n) ^ d : ℝ) * ((boxGraph d m).edgeFinset.card : ℝ))
* (-Real.log (1 - fsc_logistic t))
noncomputable def ecz_u (d : ℕ) (t : ℝ) (n : ℕ) : ℝ :=
-Real.log (ecz_fkZEdge (boxGraph d n) (fsc_logistic t) 2)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:519
def ecz_T (m n : ℕ) : ℕ := (2 * n + 1) / (2 * m + 1)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1134
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 35 · Used by 1
DefinitionPer-edge negative log edge partition function of a box#✓fully proved
The per-edge free energy ecz_u d s n / |E(Λ_n)|.
noncomputable def ecz_f (d : ℕ) (s : ℝ) (n : ℕ) : ℝ :=
ecz_u d s n / ((boxGraph d n).edgeFinset.card : ℝ)
noncomputable def ecz_u (d : ℕ) (t : ℝ) (n : ℕ) : ℝ :=
-Real.log (ecz_fkZEdge (boxGraph d n) (fsc_logistic t) 2)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:519
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
DefinitionUpper envelope for the per-edge free energy#✓fully proved
An upper envelope for ecz_f combining the per-edge value at scale m with the all-closed
bound.
noncomputable def ecz_g (d : ℕ) (s : ℝ) (m : ℕ) : ℝ :=
(2 * (m : ℝ) / (2 * m + 1)) * ecz_f d s m
+ (1 - 2 * (m : ℝ) / (2 * m + 1)) * (-Real.log (1 - fsc_logistic s))
noncomputable def ecz_f (d : ℕ) (s : ℝ) (n : ℕ) : ℝ :=
ecz_u d s n / ((boxGraph d n).edgeFinset.card : ℝ)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1434
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
Uses 2 · Used by 1
LemmaPer-edge free energy of boxes converges for \(d \ge 1\)#✓fully proved
For d ≥ 1, the per-edge free energy ecz_u d s n / |E(Λ_n)| converges.
lemma ecz_perEdgeDensityConverges (hd : 1 ≤ d) (s : ℝ)
(hbox : ∀ n, 1 ≤ n → 0 < (boxGraph d n).edgeFinset.card) :
ecz_PerEdgeDensityConverges d s
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
def ecz_PerEdgeDensityConverges (d : ℕ) (s : ℝ) : Prop :=
∃ ρ : ℝ, Tendsto (fun n => ecz_u d s n / ((boxGraph d n).edgeFinset.card : ℝ)) atTop (𝓝 ρ)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:1125
Uses 25 · Used by 1
DefinitionVanishing block oscillation of the edge free energy#✓fully proved
The edge free energy of Λ_n differs from that of Λ_{K_{b(n)}} by a vanishing oscillation.
def ecz_BlockOscillation (d : ℕ) (s : ℝ) : Prop :=
∃ (bj : ℕ → ℕ) (osc : ℕ → ℝ), Tendsto bj atTop atTop ∧ Tendsto osc atTop (𝓝 0)
∧ (∀ n, |ecz_edgeFreeEnergy d s n - ecz_edgeFreeEnergy d s (agl_K (bj n))| ≤ osc (bj n))
noncomputable def ecz_edgeFreeEnergy (d : ℕ) (t : ℝ) (n : ℕ) : ℝ :=
-(ecz_u d t n / ((boxGraph d n).edgeFinset.card : ℝ)) + Real.log (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/EdgePartitionFunction.lean:607
def agl_K (j : ℕ) : ℕ := 2 ^ (j + 1) - 1
PhyslibExt/StatisticalMechanics/RandomCluster/AdditiveGluing.lean:275
Uses 2 · Used by 1
LemmaPer-box \(q = 2\) uniqueness off a countable set of tilts#✓fully proved
For d ≥ 1, a fixed box Λ_N with an edge witness, the free and wired q = 2 measures
agree on every increasing event of Λ_N for all t = logit(p) outside a countable set in t.
This is the per-box q = 2 case of fkgq_countable_free_wired_disagreement.
lemma ecz_fk_uniqueness (hd : 1 ≤ d) (N : ℕ) (eb : Sym2 (boxVerts d N))
(heb : eb ∈ (boxGraph d N).edgeFinset) :
{t : ℝ | ∃ A : Set (ConfigSpace (Sym2 (boxVerts d N))), IsIncreasing A ∧
eventMassProb (fuc_freeMass d N t) A
≠ eventMassProb (fuc_wiredMass d N t) A}.Countable
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
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
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
noncomputable def fuc_freeMass (d N : ℕ) (t : ℝ) : ConfigSpace (Sym2 (boxVerts d N)) → ℝ :=
fun ω => (freeInfiniteVolume d (fsc_logistic_pos t) (fsc_logistic_lt_one t)
(by norm_num : (0 : ℝ) < 2) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessFromFreeEnergy.lean:171
noncomputable def fuc_wiredMass (d N : ℕ) (t : ℝ) : ConfigSpace (Sym2 (boxVerts d N)) → ℝ :=
fun ω => (wiredInfiniteVolume d (fsc_logistic_pos t) (fsc_logistic_lt_one t)
(by norm_num : (0 : ℝ) < 2) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessFromFreeEnergy.lean:179
Uses 95
LemmaSecant bound gives \(q = 2\) edge-event uniqueness off a countable set#✓fully proved
For q = 2: assuming φ^1_{p'}(e open) ≤ φ^0_p(e open) for p' < p in (0, 1), for all but
countably many p every measure between the free and wired infinite-volume measures on the
event
{eb open} agrees with both.
StatMech.FK.fk_uniqueness_off_countable_q2_full · 18 lines
lemma fk_uniqueness_off_countable_q2_full (d N : ℕ) (eb : Sym2 (boxVerts d N))
(hsecant : ∀ 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) :
∃ 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
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
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 32 · Used by 2
LemmaConvex limit of centered tilt free energies of boxes for \(d, q \ge 1\)#✓fully proved
For d ≥ 1 and q ≥ 1, the centered tilt free energies of the boxes Λ_n converge pointwise
to
a convex function G with G(0) = 0.
lemma fkgq_centeredConvergence (d : ℕ) (hd : 1 ≤ d) (q : ℝ) (hq : 1 ≤ q) :
∃ G : ℝ → ℝ,
(∀ s, Tendsto (fun n => cfe_centered (boxGraph d n) q s) atTop (nhds (G s)))
∧ ConvexOn ℝ Set.univ G ∧ 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
Uses 24 · Used by 1
DefinitionAverage edge density of a random-cluster measure#✓fully proved
The average edge density |E|^{-1} E_{φ_{G,p,q}}[#open edges] at p = logistic(s).
noncomputable def fkgq_avgDensity {V : Type*} [Fintype V] [DecidableEq V]
(G : SimpleGraph V) [DecidableRel G.Adj] (q s : ℝ) : ℝ :=
(1 / (G.edgeFinset.card : ℝ))
* fkExpect G (fsc_logistic s) q (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
DefinitionFree infinite-volume mass function on a box for \(q \ge 1\)#✓fully proved
The mass function on configurations of Λ_N of the free infinite-volume measure at
p = logistic(s).
noncomputable def fkgq_freeMass (d N : ℕ) (q : ℝ) (hq : 1 ≤ q) (s : ℝ) :
ConfigSpace (Sym2 (boxVerts d N)) → ℝ := fun ω =>
(freeInfiniteVolume d (fsc_logistic_pos s) (fsc_logistic_lt_one s)
(zero_lt_one.trans_le hq) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
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
lemma fsc_logistic_pos (t : ℝ) : 0 < fsc_logistic t
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:88
lemma fsc_logistic_lt_one (t : ℝ) : fsc_logistic t < 1
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:91
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def boxRestrict (d n : ℕ) (ω : ConfigSpace (Sym2 (Site d))) :
ConfigSpace (Sym2 (boxVerts d n)) :=
fun eb => ω (edgeIncl d n eb)
PhyslibExt/StatisticalMechanics/RandomCluster/TwoPointInfinite.lean:127
DefinitionWired infinite-volume mass function on a box for \(q \ge 1\)#✓fully proved
The mass function on configurations of Λ_N of the wired infinite-volume measure at
p = logistic(s).
noncomputable def fkgq_wiredMass (d N : ℕ) (q : ℝ) (hq : 1 ≤ q) (s : ℝ) :
ConfigSpace (Sym2 (boxVerts d N)) → ℝ := fun ω =>
(wiredInfiniteVolume d (fsc_logistic_pos s) (fsc_logistic_lt_one s)
(zero_lt_one.trans_le hq) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def wiredInfiniteVolume (d : ℕ) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) :
ProbabilityMeasure (ConfigSpace (Sym2 (Site d))) :=
(CompactSpace.tendsto_subseq (fun n => wiredFiniteMeasure d n hp hp1 hq)).choose
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:217
lemma fsc_logistic_pos (t : ℝ) : 0 < fsc_logistic t
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:88
lemma fsc_logistic_lt_one (t : ℝ) : fsc_logistic t < 1
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:91
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def boxRestrict (d n : ℕ) (ω : ConfigSpace (Sym2 (Site d))) :
ConfigSpace (Sym2 (boxVerts d n)) :=
fun eb => ω (edgeIncl d n eb)
PhyslibExt/StatisticalMechanics/RandomCluster/TwoPointInfinite.lean:127
DefinitionFree unit-edge marginal at \(0\) on \(\Lambda_{\lfloor\sqrt n\rfloor}\)#✓fully proved
The free marginal on Λ_{⌊√n⌋} of the unit edge at the origin in direction dir, at
p = logistic(t).
noncomputable def fkgq_unitMarg (d : ℕ) (q : ℝ) (n : ℕ)
(dir : Fin d × Bool) (t : ℝ) : ℝ :=
if hR : 1 ≤ Nat.sqrt n then
edgeMargProb (fkProb (boxGraph d (Nat.sqrt n)) (fsc_logistic t) q)
(ocs_unitEdge d (Nat.sqrt n) hR dir)
else 0
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
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
noncomputable def fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
def ocs_unitEdge (d R : ℕ) (hR : 1 ≤ R) (p : Fin d × Bool) : Sym2 (boxVerts d R) :=
s((⟨(0 : Site d), ocs_zero_mem_box d R⟩ : boxVerts d R),
(⟨candMap d (0 : Site d) p, ocs_candMap_mem_box d R hR p⟩ : boxVerts d R))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:493
Uses 8 · Used by 2
DefinitionWired unit-edge marginal at \(0\) on \(\Lambda_{\lfloor\sqrt n\rfloor}\)#✓fully proved
The wired marginal on Λ_{⌊√n⌋} of the unit edge at the origin in direction dir, at
p = logistic(t).
noncomputable def fkgq_unitWiredMarg (d : ℕ) (q : ℝ) (n : ℕ)
(dir : Fin d × Bool) (t : ℝ) : ℝ :=
if hR : 1 ≤ Nat.sqrt n then
edgeMargProb (wiredFkProb (boxGraph d (Nat.sqrt n)) (boxBoundary d (Nat.sqrt n))
(fsc_logistic t) q) (ocs_unitEdge d (Nat.sqrt n) hR dir)
else 0
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
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 fsc_logistic (t : ℝ) : ℝ := Real.exp t / (1 + Real.exp t)
PhyslibExt/StatisticalMechanics/RandomCluster/LogitFreeEnergyComparison.lean:76
def ocs_unitEdge (d R : ℕ) (hR : 1 ≤ R) (p : Fin d × Bool) : Sym2 (boxVerts d R) :=
s((⟨(0 : Site d), ocs_zero_mem_box d R⟩ : boxVerts d R),
(⟨candMap d (0 : Site d) p, ocs_candMap_mem_box d R hR p⟩ : boxVerts d R))
PhyslibExt/StatisticalMechanics/RandomCluster/OffCentreSandwich.lean:493
Uses 9 · Used by 2
DefinitionTotal deviation of free unit-edge marginals from a free density#✓fully proved
The total deviation between the free density of e and the free unit-edge marginals on
Λ_{⌊√n⌋}, summed over directions.
noncomputable def fkgq_freeDelta (N : ℕ) (e : Sym2 (boxVerts d N))
(q t : ℝ) (n : ℕ) : ℝ :=
∑ dir : Fin d × Bool,
|freeEdgeDensity d q (edgeIncl d N e) (fsc_logistic t) - fkgq_unitMarg d q n dir 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 fkgq_unitMarg (d : ℕ) (q : ℝ) (n : ℕ)
(dir : Fin d × Bool) (t : ℝ) : ℝ :=
if hR : 1 ≤ Nat.sqrt n then
edgeMargProb (fkProb (boxGraph d (Nat.sqrt n)) (fsc_logistic t) q)
(ocs_unitEdge d (Nat.sqrt n) hR dir)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessGeneralQ.lean:1184
DefinitionTotal deviation of wired unit-edge marginals from a wired density#✓fully proved
The total deviation between the wired unit-edge marginals on Λ_{⌊√n⌋} and the wired density
of
e, summed over directions.
noncomputable def fkgq_wiredDelta (N : ℕ) (e : Sym2 (boxVerts d N))
(q t : ℝ) (n : ℕ) : ℝ :=
∑ dir : Fin d × Bool,
|fkgq_unitWiredMarg d q n dir t
- wiredEdgeDensity d q (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 fkgq_unitWiredMarg (d : ℕ) (q : ℝ) (n : ℕ)
(dir : Fin d × Bool) (t : ℝ) : ℝ :=
if hR : 1 ≤ Nat.sqrt n then
edgeMargProb (wiredFkProb (boxGraph d (Nat.sqrt n)) (boxBoundary d (Nat.sqrt n))
(fsc_logistic t) q) (ocs_unitEdge d (Nat.sqrt n) hR dir)
else 0
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessGeneralQ.lean:1194
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
TheoremPer-box uniqueness of the random-cluster measures off a countable set#✓fully proved
For d ≥ 1,
q ≥ 1, and every box Λ_N, the free and wired infinite-volume random-cluster measures on
ℤ^d at p = logistic(t) give the same mass to every increasing event of Λ_N, for all t
outside a countable set.
This is a per-box statement only: the countable exceptional set may depend on N, the
statement is in the logit parameter t rather than in p ∈ (0, 1) directly, and it concludes
agreement on increasing events of that one finite restriction, not equality of the
infinite-volume measures. No declaration here takes the countable union over N, transfers
it to p, or derives equality of the infinite-volume measures. (Grimmett, The Random-Cluster
Model, 2006, Theorem 4.60.)
theorem fkgq_countable_free_wired_disagreement (hd : 1 ≤ d) (N : ℕ)
(q : ℝ) (hq : 1 ≤ q) :
{t : ℝ | ∃ A : Set (ConfigSpace (Sym2 (boxVerts d N))), IsIncreasing A ∧
eventMassProb (fkgq_freeMass d N q hq t) A ≠
eventMassProb (fkgq_wiredMass d N q hq t) A}.Countable
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
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
noncomputable def fkgq_freeMass (d N : ℕ) (q : ℝ) (hq : 1 ≤ q) (s : ℝ) :
ConfigSpace (Sym2 (boxVerts d N)) → ℝ := fun ω =>
(freeInfiniteVolume d (fsc_logistic_pos s) (fsc_logistic_lt_one s)
(zero_lt_one.trans_le hq) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessGeneralQ.lean:495
noncomputable def fkgq_wiredMass (d N : ℕ) (q : ℝ) (hq : 1 ≤ q) (s : ℝ) :
ConfigSpace (Sym2 (boxVerts d N)) → ℝ := fun ω =>
(wiredInfiniteVolume d (fsc_logistic_pos s) (fsc_logistic_lt_one s)
(zero_lt_one.trans_le hq) : Measure (ConfigSpace (Sym2 (Site d)))).real
(boxRestrict d N ⁻¹' {ω})
PhyslibExt/StatisticalMechanics/RandomCluster/UniquenessGeneralQ.lean:504
Uses 157
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.