Positivity of the random-cluster critical point
A. Domination of the wired measure by Bernoulli percolation
LemmaMonotonicity of the open subgraph#✓fully proved
The open subgraph is monotone in the configuration.
lemma openGraph_mono {a b : ConfigSpace (Sym2 V)} (h : a ≤ b) :
openGraph G a ≤ openGraph G b
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def openGraph (ω : Sym2 V → Bool) : SimpleGraph V where
Adj x y := IsOpen G ω x y
symm := ⟨fun _ _ h => isOpen_symm G h⟩
loopless := ⟨fun x h => isOpen_irrefl G x h⟩
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:87
Uses 2 · Used by 1
LemmaMonotonicity of the wired graph#✓fully proved
The wired graph (open edges plus the boundary clique) is monotone in the configuration.
lemma wiredGraph_mono {a b : ConfigSpace (Sym2 V)} (h : a ≤ b) :
wiredGraph G bdry a ≤ wiredGraph G bdry b
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
def wiredGraph (ω : Sym2 V → Bool) : SimpleGraph V :=
openGraph G ω ⊔ boundaryCliqueGraph bdry
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:138
Uses 5 · Used by 1
LemmaWired cluster count is antitone#✓fully proved
The wired cluster count k¹(ω) is antitone in ω.
lemma numClustersWired_antitone {a b : ConfigSpace (Sym2 V)} (h : a ≤ b) :
numClustersWired G bdry b ≤ numClustersWired G bdry a
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def numClustersWired (ω : Sym2 V → Bool) : ℕ :=
Nat.card (wiredGraph G bdry ω).ConnectedComponent
MathlibExt/Combinatorics/SimpleGraph/Lattice/BoundaryConditions.lean:162
Uses 4 · Used by 1
LemmaHolley cross inequality for wired and Bernoulli weights, \(q \ge 1\)#✓fully proved
Holley cross inequality between the wired random-cluster weight and the Bernoulli product
weight, for q ≥ 1.
lemma wiredFkWeight_edgeProduct_cross {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
(a b : ConfigSpace (Sym2 V)) :
wiredFkWeight G bdry p q a * edgeProduct G p b
≤ wiredFkWeight G bdry p q (a ⊓ b) * edgeProduct G p (a ⊔ b)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def wiredFkWeight (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
edgeProduct G p ω * q ^ numClustersWired G bdry ω
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:81
def edgeProduct (p : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
∏ e ∈ G.edgeFinset, (if ω e then p else 1 - p)
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:126
Uses 5 · Used by 1
LemmaHolley cross inequality for wired and \(q = 1\) laws, \(q \ge 1\)#✓fully proved
Holley cross inequality between the ambient wired probability and the ambient q = 1
law, for q ≥ 1. The latter is Bernoulli-p only on the graph-edge marginal.
lemma wiredFkProb_fkProbOne_cross {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
(a b : ConfigSpace (Sym2 V)) :
wiredFkProb G bdry p q a * fkProb G p 1 b
≤ wiredFkProb G bdry p q (a ⊓ b) * fkProb G p 1 (a ⊔ b)
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
noncomputable def fkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
fkWeight G p q ω / fkZ G p q
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:172
Uses 12 · Used by 1
LemmaWired law at most the \(q = 1\) law on increasing events, \(q \ge 1\)#✓fully proved
For q ≥ 1, the ambient wired law is dominated by fkProb G p 1 on increasing events.
The latter is Bernoulli-p on graph edges and uniform on loops and nonedges; the comparison
with ordinary Bernoulli percolation therefore applies to graph-edge events.
lemma wiredFkProb_le_fkProbOne_increasing {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
{A : Set (ConfigSpace (Sym2 V))} (hA : IsIncreasing A) :
(∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * wiredFkProb G bdry p q ω)
≤ ∑ ω, A.indicator (fun _ => (1 : ℝ)) ω * fkProb G p 1 ω
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 wiredFkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
wiredFkWeight G bdry p q ω / wiredFkZ G bdry p q
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:105
noncomputable def fkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
fkWeight G p q ω / fkZ G p q
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:172
Uses 13 · Used by 2
B. Bernoulli cylinder probabilities
LemmaBoolean-configuration sum of a coordinatewise product factorizes#✓fully proved
Summing a product of single-coordinate factors over all Boolean configurations: coordinates
outside s contribute a factor 2 each.
lemma sum_prod_factor {ι : Type*} [Fintype ι] [DecidableEq ι] (s : Finset ι)
(h : ι → Bool → ℝ) :
∑ ω : ι → Bool, ∏ e ∈ s, h e (ω e)
= 2 ^ (Fintype.card ι - s.card) * ∏ e ∈ s, (∑ b : Bool, h e b)
LemmaBernoulli probability that edges \(F\) are all open is \(p^{|F|}\)#✓fully proved
Under Bernoulli percolation on a finite graph, a set F of edges is open with probability
p^|F|.
lemma fkProbOne_cylinder {p : ℝ} (hp : 0 < p) (hp1 : p < 1) (F : Finset (Sym2 V))
(hF : F ⊆ G.edgeFinset) :
∑ ω : ConfigSpace (Sym2 V),
(if (∀ e ∈ F, ω e = true) then (1 : ℝ) else 0) * fkProb G p 1 ω = p ^ F.card
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def fkProb (p q : ℝ) (ω : ConfigSpace (Sym2 V)) : ℝ :=
fkWeight G p q ω / fkZ G p q
PhyslibExt/StatisticalMechanics/RandomCluster/RandomCluster.lean:172
Uses 8 · Used by 1
C. Open self-avoiding walks
DefinitionPadding a finite lattice word to an infinite word#✓fully proved
Extend a word of m lattice steps to an infinite word by a fixed padding step.
def fkExtWord (m : ℕ) (hd : 0 < d) (w : Fin m → Fin d × Bool) : ℕ → Fin d × Bool :=
fun k => if hk : k < m then w ⟨k, hk⟩ else (⟨0, hd⟩, false)
Used by 5
DefinitionEvent of an open self-avoiding walk of \(m\) steps#✓fully proved
The event that some self-avoiding walk of m steps from the origin is open.
def fkExistsOpenWalk (d m : ℕ) (hd : 0 < d) : Set (ConfigSpace (Sym2 (Site d))) :=
⋃ (w : Fin m → Fin d × Bool) (_ : goodWord (fkExtWord m hd w) m), wordEvent (fkExtWord m hd w) m
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
def goodWord (g : ℕ → Fin d × Bool) (n : ℕ) : Prop :=
Set.InjOn (vertOf g) (Finset.range (n + 1))
MathlibExt/Probability/Percolation/PcNontrivial.lean:164
def fkExtWord (m : ℕ) (hd : 0 < d) (w : Fin m → Fin d × Bool) : ℕ → Fin d × Bool :=
fun k => if hk : k < m then w ⟨k, hk⟩ else (⟨0, hd⟩, false)
PhyslibExt/StatisticalMechanics/RandomCluster/PcNontrivial.lean:253
def wordEvent (g : ℕ → Fin d × Bool) (n : ℕ) : Set (ConfigSpace (Sym2 (Site d))) :=
{ω | ∀ k ∈ Finset.range n, ω (edgeOf g k) = true}
MathlibExt/Probability/Percolation/PcNontrivial.lean:160
Uses 5 · Used by 5
LemmaSingle-edge open event is clopen#✓fully proved
The event that a given edge is open is clopen.
lemma isClopen_singleOpen (e : Sym2 (Site d)) :
IsClopen {ω : ConfigSpace (Sym2 (Site d)) | ω e = true}
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
Uses 2 · Used by 1
LemmaEvent that a given walk is open is clopen#✓fully proved
The event that a given walk is open is clopen.
lemma isClopen_wordEvent (g : ℕ → Fin d × Bool) (m : ℕ) : IsClopen (wordEvent g m)
def wordEvent (g : ℕ → Fin d × Bool) (n : ℕ) : Set (ConfigSpace (Sym2 (Site d))) :=
{ω | ∀ k ∈ Finset.range n, ω (edgeOf g k) = true}
MathlibExt/Probability/Percolation/PcNontrivial.lean:160
Uses 5 · Used by 1
LemmaEvent that a given walk is open is increasing#✓fully proved
The event that a given walk is open is increasing.
lemma isIncreasing_wordEvent (g : ℕ → Fin d × Bool) (m : ℕ) : IsIncreasing (wordEvent g m)
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
def wordEvent (g : ℕ → Fin d × Bool) (n : ℕ) : Set (ConfigSpace (Sym2 (Site d))) :=
{ω | ∀ k ∈ Finset.range n, ω (edgeOf g k) = true}
MathlibExt/Probability/Percolation/PcNontrivial.lean:160
Uses 5 · Used by 1
LemmaEvent of some open self-avoiding walk is clopen#✓fully proved
The open-walk event is clopen.
lemma isClopen_fkExistsOpenWalk (m : ℕ) (hd : 0 < d) : IsClopen (fkExistsOpenWalk d m hd)
def fkExistsOpenWalk (d m : ℕ) (hd : 0 < d) : Set (ConfigSpace (Sym2 (Site d))) :=
⋃ (w : Fin m → Fin d × Bool) (_ : goodWord (fkExtWord m hd w) m), wordEvent (fkExtWord m hd w) m
PhyslibExt/StatisticalMechanics/RandomCluster/PcNontrivial.lean:257
Uses 7 · Used by 2
LemmaEvent of some open self-avoiding walk is increasing#✓fully proved
The open-walk event is increasing.
lemma isIncreasing_fkExistsOpenWalk (m : ℕ) (hd : 0 < d) :
IsIncreasing (fkExistsOpenWalk d m hd)
def IsIncreasing (A : Set (ConfigSpace E)) : Prop := IsUpperSet A
MathlibExt/Probability/CorrelationInequalities/IncreasingEvent.lean:55
def fkExistsOpenWalk (d m : ℕ) (hd : 0 < d) : Set (ConfigSpace (Sym2 (Site d))) :=
⋃ (w : Fin m → Fin d × Bool) (_ : goodWord (fkExtWord m hd w) m), wordEvent (fkExtWord m hd w) m
PhyslibExt/StatisticalMechanics/RandomCluster/PcNontrivial.lean:257
Uses 8 · Used by 1
LemmaPercolation gives open self-avoiding walks of every length#✓fully proved
Percolation from the origin implies an open self-avoiding walk of every length m.
lemma percolationEvent_subset_fkExistsOpenWalk (hd : 0 < d) (m : ℕ) :
percolationEvent d ⊆ fkExistsOpenWalk d m hd
def percolationEvent (d : ℕ) : Set (ConfigSpace (Sym2 (Site d))) :=
{ω | (StatMech.Lattice.cluster d ω (origin d)).Infinite}
MathlibExt/Probability/Percolation/Theta.lean:59
def fkExistsOpenWalk (d m : ℕ) (hd : 0 < d) : Set (ConfigSpace (Sym2 (Site d))) :=
⋃ (w : Fin m → Fin d × Bool) (_ : goodWord (fkExtWord m hd w) m), wordEvent (fkExtWord m hd w) m
PhyslibExt/StatisticalMechanics/RandomCluster/PcNontrivial.lean:257
Uses 18 · Used by 1
D. Bounds on the wired measure of a walk event
LemmaExtended box configuration keeps box edge states#✓fully proved
Extending a box configuration to ℤ^d keeps the state of box edges.
lemma extendEdge_eq_of_range (n : ℕ) (be : Sym2 (boxVerts d n))
(ω : ConfigSpace (Sym2 (boxVerts d n))) :
extendEdge d n ω (edgeIncl d n be) = ω be
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
abbrev ConfigSpace (E : Type*) : Type _ := E → Bool
MathlibExt/Probability/Configuration/ConfigSpace.lean:40
noncomputable def extendEdge (d n : ℕ) (ω : ConfigSpace (Sym2 (boxVerts d n))) :
ConfigSpace (Sym2 (Site d)) :=
fun e => if h : e ∈ Set.range (edgeIncl d n) then ω h.choose else false
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:170
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
LemmaOpen edges of an extended box configuration are box edges#✓fully proved
An edge that is open in an extended box configuration is a box edge.
lemma range_of_extendEdge_true (n : ℕ) (ω : ConfigSpace (Sym2 (boxVerts d n)))
(e : Sym2 (Site d)) (h : extendEdge d n ω e = true) : e ∈ Set.range (edgeIncl 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
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def extendEdge (d n : ℕ) (ω : ConfigSpace (Sym2 (boxVerts d n))) :
ConfigSpace (Sym2 (Site d)) :=
fun e => if h : e ∈ Set.range (edgeIncl d n) then ω h.choose else false
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:170
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
LemmaBox edge with a lattice-edge image is a box-graph edge#✓fully proved
A box edge whose image is a lattice edge is an edge of the box graph.
lemma boxEdge_mem (n : ℕ) (be : Sym2 (boxVerts d n)) (x y : Site d)
(hadj : (hypercubicLattice d).Adj x y) (heq : edgeIncl d n be = s(x, y)) :
be ∈ (boxGraph d n).edgeFinset
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 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 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
def boxGraph (d n : ℕ) : SimpleGraph (boxVerts d n) :=
SimpleGraph.comap Subtype.val (hypercubicLattice d)
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:142
LemmaOpen self-avoiding walk in a box gives \(m\) distinct open box edges#✓fully proved
An open self-avoiding walk of m steps that lies in the box gives m distinct box edges that
are all open.
lemma exists_boxF (n m : ℕ) (g : ℕ → Fin d × Bool) (hg : goodWord g m)
(hrange : ∀ k ∈ Finset.range m, edgeOf g k ∈ Set.range (edgeIncl d n)) :
∃ F : Finset (Sym2 (boxVerts d n)), F ⊆ (boxGraph d n).edgeFinset ∧ F.card = m ∧
(extendEdge d n ⁻¹' wordEvent g m ⊆ {ω | ∀ be ∈ F, ω be = true})
def goodWord (g : ℕ → Fin d × Bool) (n : ℕ) : Prop :=
Set.InjOn (vertOf g) (Finset.range (n + 1))
MathlibExt/Probability/Percolation/PcNontrivial.lean:164
def edgeOf (g : ℕ → Fin d × Bool) (k : ℕ) : Sym2 (Site d) :=
s(vertOf g k, vertOf g (k + 1))
MathlibExt/Probability/Percolation/PcNontrivial.lean:156
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
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 extendEdge (d n : ℕ) (ω : ConfigSpace (Sym2 (boxVerts d n))) :
ConfigSpace (Sym2 (Site d)) :=
fun e => if h : e ∈ Set.range (edgeIncl d n) then ω h.choose else false
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:170
def wordEvent (g : ℕ → Fin d × Bool) (n : ℕ) : Set (ConfigSpace (Sym2 (Site d))) :=
{ω | ∀ k ∈ Finset.range n, ω (edgeOf g k) = true}
MathlibExt/Probability/Percolation/PcNontrivial.lean:160
Uses 16 · Used by 1
LemmaBernoulli bound \(p^m\) for a fixed self-avoiding walk in the box#✓fully proved
Under Bernoulli percolation on the box, a fixed self-avoiding walk of m steps is open with
probability at most p^m.
lemma perWord_box_bound (n m : ℕ) (g : ℕ → Fin d × Bool) (hg : goodWord g m)
{p : ℝ} (hp : 0 < p) (hp1 : p < 1) :
∑ ω : ConfigSpace (Sym2 (boxVerts d n)),
(extendEdge d n ⁻¹' wordEvent g m).indicator (fun _ => (1 : ℝ)) ω
* fkProb (boxGraph d n) p 1 ω ≤ p ^ m
def goodWord (g : ℕ → Fin d × Bool) (n : ℕ) : Prop :=
Set.InjOn (vertOf g) (Finset.range (n + 1))
MathlibExt/Probability/Percolation/PcNontrivial.lean:164
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 extendEdge (d n : ℕ) (ω : ConfigSpace (Sym2 (boxVerts d n))) :
ConfigSpace (Sym2 (Site d)) :=
fun e => if h : e ∈ Set.range (edgeIncl d n) then ω h.choose else false
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:170
def wordEvent (g : ℕ → Fin d × Bool) (n : ℕ) : Set (ConfigSpace (Sym2 (Site d))) :=
{ω | ∀ k ∈ Finset.range n, ω (edgeOf g k) = true}
MathlibExt/Probability/Percolation/PcNontrivial.lean:160
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
Uses 18 · Used by 1
LemmaWired box measure as a finite sum over box configurations#✓fully proved
The wired box measure of an event, as a finite sum over box configurations.
lemma wiredFiniteMeasure_real_eq (n : ℕ) {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 0 < q)
(A : Set (ConfigSpace (Sym2 (Site d)))) (hA : MeasurableSet A) :
(wiredFiniteMeasure d n hp hp1 hq : Measure (ConfigSpace (Sym2 (Site d)))).real A
= ∑ ω : ConfigSpace (Sym2 (boxVerts d n)),
(extendEdge d n ⁻¹' A).indicator (fun _ => (1 : ℝ)) ω
* wiredFkProb (boxGraph d n) (boxBoundary d n) p q ω
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 wiredFiniteMeasure (d n : ℕ) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) :
ProbabilityMeasure (ConfigSpace (Sym2 (Site d))) :=
⟨((wiredFkPMF (boxGraph d n) (boxBoundary d n) hp hp1 hq).toMeasure).map (extendEdge d n),
inferInstance⟩
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:187
abbrev boxVerts (d n : ℕ) : Type := {x : Site d // x ∈ box d n}
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:131
noncomputable def extendEdge (d n : ℕ) (ω : ConfigSpace (Sym2 (boxVerts d n))) :
ConfigSpace (Sym2 (Site d)) :=
fun e => if h : e ∈ Set.range (edgeIncl d n) then ω h.choose else false
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:170
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
Uses 14 · Used by 1
LemmaWired box bound \((2dp)^m\) on the open-walk event for \(q \ge 1\)#✓fully proved
For q ≥ 1, the wired box measure of the open-walk event is at most (2dp)^m.
lemma wiredFiniteMeasure_fkExistsOpenWalk_le (n m : ℕ) (hd : 0 < d) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q) :
(wiredFiniteMeasure d n hp hp1 (zero_lt_one.trans_le hq)
: Measure (ConfigSpace (Sym2 (Site d)))).real (fkExistsOpenWalk d m hd)
≤ ((2 * d : ℝ) * p) ^ m
noncomputable def wiredFiniteMeasure (d n : ℕ) {p q : ℝ}
(hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) :
ProbabilityMeasure (ConfigSpace (Sym2 (Site d))) :=
⟨((wiredFkPMF (boxGraph d n) (boxBoundary d n) hp hp1 hq).toMeasure).map (extendEdge d n),
inferInstance⟩
PhyslibExt/StatisticalMechanics/RandomCluster/InfiniteVolume.lean:187
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
def fkExistsOpenWalk (d m : ℕ) (hd : 0 < d) : Set (ConfigSpace (Sym2 (Site d))) :=
⋃ (w : Fin m → Fin d × Bool) (_ : goodWord (fkExtWord m hd w) m), wordEvent (fkExtWord m hd w) m
PhyslibExt/StatisticalMechanics/RandomCluster/PcNontrivial.lean:257
Uses 25 · Used by 1
E. Positivity of the critical point
LemmaWired percolation bound \(\theta^1(p, q) \le (2dp)^m\) for \(q \ge 1\)#✓fully proved
For q ≥ 1, the wired percolation probability satisfies θ¹(p, q) ≤ (2dp)^m for every m.
lemma fkTheta_le_pow (hd : 0 < d) {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q) (m : ℕ) :
fkTheta d hp hp1 (zero_lt_one.trans_le hq) (q := q) ≤ ((2 * d : ℝ) * p) ^ m
noncomputable def fkTheta (d : ℕ) {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) : ℝ :=
((wiredInfiniteVolume d hp hp1 hq : ProbabilityMeasure (ConfigSpace (Sym2 (Site d)))) :
Measure (ConfigSpace (Sym2 (Site d)))).real (percolationEvent d)
PhyslibExt/StatisticalMechanics/RandomCluster/CriticalPoint.lean:57
Uses 13 · Used by 1
LemmaNo wired percolation for \(2dp < 1\) and \(q \ge 1\)#✓fully proved
For q ≥ 1 and 2dp < 1, there is no percolation in the wired measure: θ¹(p, q) = 0.
lemma fkTheta_eq_zero_of_lt (hd : 0 < d) {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 1 ≤ q)
(hsmall : (2 * d : ℝ) * p < 1) :
fkTheta d hp hp1 (zero_lt_one.trans_le hq) (q := q) = 0
noncomputable def fkTheta (d : ℕ) {p q : ℝ} (hp : 0 < p) (hp1 : p < 1) (hq : 0 < q) : ℝ :=
((wiredInfiniteVolume d hp hp1 hq : ProbabilityMeasure (ConfigSpace (Sym2 (Site d)))) :
Measure (ConfigSpace (Sym2 (Site d)))).real (percolationEvent d)
PhyslibExt/StatisticalMechanics/RandomCluster/CriticalPoint.lean:57
LemmaSubcritical set is bounded above by one#✓fully proved
The set of p with θ¹(p, q) = 0 is bounded above by 1.
lemma fkSubcriticalSet_bddAbove (d : ℕ) (q : ℝ) : BddAbove (fkSubcriticalSet d q)
def fkSubcriticalSet (d : ℕ) (q : ℝ) : Set ℝ :=
{p : ℝ | ∃ (hp : 0 < p) (hp1 : p < 1) (hq : 0 < q), fkTheta d hp hp1 hq (q := q) = 0}
PhyslibExt/StatisticalMechanics/RandomCluster/CriticalPoint.lean:76
Uses 2 · Used by 3
LemmaSubcritical parameters are at most the critical point#✓fully proved
Every subcritical p is at most p_c(q, d).
lemma le_fkPc_of_mem {d : ℕ} {q p : ℝ} (hp : p ∈ fkSubcriticalSet d q) : p ≤ fkPc d q
def fkSubcriticalSet (d : ℕ) (q : ℝ) : Set ℝ :=
{p : ℝ | ∃ (hp : 0 < p) (hp1 : p < 1) (hq : 0 < q), fkTheta d hp hp1 hq (q := q) = 0}
PhyslibExt/StatisticalMechanics/RandomCluster/CriticalPoint.lean:76
noncomputable def fkPc (d : ℕ) (q : ℝ) : ℝ :=
sSup (fkSubcriticalSet d q)
PhyslibExt/StatisticalMechanics/RandomCluster/CriticalPoint.lean:88
Uses 3 · Used by 4
TheoremPositivity of the random-cluster critical point#✓fully proved
For d ≥ 1 and q ≥ 1,
0 < p_c(q, d); in fact p_c(q, d) ≥ 1 / (4d).
Reference: G. Grimmett, The Random-Cluster Model, Springer (2006), Section 5.1.
theorem fkPc_pos (hd : 0 < d) {q : ℝ} (hq : 1 ≤ q) : 0 < fkPc d q
noncomputable def fkPc (d : ℕ) (q : ℝ) : ℝ :=
sSup (fkSubcriticalSet d q)
PhyslibExt/StatisticalMechanics/RandomCluster/CriticalPoint.lean:88
LemmaPositive random-cluster critical point for \(d \ge 2\), \(q \ge 1\)#✓fully proved
fkPc_pos for d ≥ 2.
lemma fkPc_pos_of_two_le (hd : 2 ≤ d) {q : ℝ} (hq : 1 ≤ q) : 0 < fkPc d q
noncomputable def fkPc (d : ℕ) (q : ℝ) : ℝ :=
sSup (fkSubcriticalSet d q)
PhyslibExt/StatisticalMechanics/RandomCluster/CriticalPoint.lean:88
Uses 2 · Used by 4
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.