The Peierls bound on the square lattice
DefinitionFilled-cluster winding hypothesis#✓fully proved
The filled-cluster form of the winding hypothesis, with a face-connected boundary.
def OuterContourFill (n : ℕ) : Prop :=
∀ τ : {x // x ∈ box 2 n} → Bool, glue (plusField 2) τ (origin 2) = false →
∃ K : Finset (Site 2), (↑K : Set (Site 2)) ⊆ box 2 n ∧ IsConnectedCluster K ∧
ContourEvent (↑K : Set (Site 2)) (bondFinsetTouch 2 n) (glue (plusField 2) τ) ∧
∃ (T : Finset (Site 2)) (j : ℕ),
(faceBoundaryGraph (↑K : Set (Site 2))).support ⊆ (T : Set (Site 2)) ∧
FaceBoundaryConnected (↑K : Set (Site 2)) T ∧
j < contourLen (↑K : Set (Site 2)) (bondFinsetTouch 2 n) ∧
axisVertex 2 j ∈ T
def box (d n : ℕ) : Set (Site d) := {x | ∀ i, (x i).natAbs ≤ n}
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:86
noncomputable def glue (η : ConfigSpace (Site d)) {n : ℕ}
(τ : {x // x ∈ box d n} → Bool) : ConfigSpace (Site d) :=
fun x => if h : x ∈ box d n then τ ⟨x, h⟩ else η x
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:125
def plusField (d : ℕ) : ConfigSpace (Site d) := fun _ => true
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:226
def origin (d : ℕ) : Site d := fun _ => 0
PhyslibExt/CondensedMatter/IsingModel/Peierls.lean:195
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def IsConnectedCluster (K : Finset (Site d)) : Prop :=
origin d ∈ K ∧ ∀ x ∈ K, (latticeOn (↑K : Set (Site d))).Reachable (origin d) x
PhyslibExt/CondensedMatter/IsingModel/PeierlsContourCount.lean:233
def ContourEvent (K : Set (Site d)) (B : Finset (Sym2 (Site d))) (σ : ConfigSpace (Site d)) :
Prop :=
∀ e ∈ crossEdges K B, bond σ e = -1
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:176
noncomputable def bondFinsetTouch (d n : ℕ) : Finset (Sym2 (Site d)) :=
(bondPairsTouch d n).image (fun p => s(p.1, p.2))
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:114
def faceBoundaryGraph (S : Set (Site 2)) : SimpleGraph (Site 2) where
Adj f g := (hypercubicLattice 2).Adj f g ∧ bdEdge S (sharedPrimalEdge f g)
symm := by
refine ⟨fun f g ⟨hadj, hbd⟩ => ?_⟩
refine ⟨hadj.symm, ?_⟩
rwa [← sharedPrimalEdge_comm_of_adj hadj]
loopless := by
refine ⟨fun f h => ?_⟩
exact (hypercubicLattice 2).irrefl h.1
MathlibExt/Combinatorics/SimpleGraph/Lattice/JordanEnclosure.lean:297
def FaceBoundaryConnected (K : Set (Site 2)) (T : Finset (Site 2)) : Prop :=
((faceBoundaryGraph K).induce (T : Set (Site 2))).Connected
PhyslibExt/CondensedMatter/IsingModel/Peierls/PeierlsSingleCircuit.lean:366
noncomputable def contourLen (K : Set (Site d)) (B : Finset (Sym2 (Site d))) : ℕ :=
(crossEdges K B).card
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:116
def axisVertex (d j : ℕ) : Site d := fun i => if i.val = 0 then (j : ℤ) else 0
PhyslibExt/CondensedMatter/IsingModel/Peierls/PeierlsAnchorEncode.lean:97
Uses 12 · Used by 3
DefinitionExterior component of the complement of a set#✓fully proved
The component of the complement of S that contains the outside of Λ_n.
noncomputable def outerExteriorComponent (S : Set (Site 2)) (n : ℕ) : Set (Site 2) :=
{x | (latticeOn Sᶜ).Reachable (beacon 2 n) x}
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def latticeOn (K : Set (Site d)) : SimpleGraph (Site d) where
Adj x y := (hypercubicLattice d).Adj x y ∧ x ∈ K ∧ y ∈ K
symm := ⟨fun _ _ ⟨h1, h2, h3⟩ => ⟨h1.symm, h3, h2⟩⟩
loopless := ⟨fun _ h => (hypercubicLattice d).irrefl h.1⟩
PhyslibExt/CondensedMatter/IsingModel/PeierlsContourCount.lean:227
def beacon (d R : ℕ) : Site d := fun _ => (R : ℤ) + 1
MathlibExt/Combinatorics/SimpleGraph/Lattice/UniqueInfiniteComponent.lean:153
Uses 3 · Used by 5
DefinitionSet with its holes filled#✓fully proved
The set S with its holes filled: the complement of its exterior component.
noncomputable def spinCompatibleFill (S : Set (Site 2)) (n : ℕ) : Set (Site 2) :=
(outerExteriorComponent S n)ᶜ
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def outerExteriorComponent (S : Set (Site 2)) (n : ℕ) : Set (Site 2) :=
{x | (latticeOn Sᶜ).Reachable (beacon 2 n) x}
PhyslibExt/CondensedMatter/IsingModel/PeierlsSquareLattice.lean:88
B. The filled cluster
DefinitionFilled minus cluster of the origin as a finite set#✓fully proved
The filled minus cluster of the origin, as a finset.
noncomputable def spinCompatibleFillFinset {n : ℕ}
(τ : {x // x ∈ box 2 n} → Bool)
(ho : glue (plusField 2) τ (origin 2) = false) : Finset (Site 2) :=
(spinCompatibleFill_finite τ ho).toFinset
def box (d n : ℕ) : Set (Site d) := {x | ∀ i, (x i).natAbs ≤ n}
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:86
noncomputable def glue (η : ConfigSpace (Site d)) {n : ℕ}
(τ : {x // x ∈ box d n} → Bool) : ConfigSpace (Site d) :=
fun x => if h : x ∈ box d n then τ ⟨x, h⟩ else η x
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:125
def plusField (d : ℕ) : ConfigSpace (Site d) := fun _ => true
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:226
def origin (d : ℕ) : Site d := fun _ => 0
PhyslibExt/CondensedMatter/IsingModel/Peierls.lean:195
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
lemma spinCompatibleFill_finite {n : ℕ}
(τ : {x // x ∈ box 2 n} → Bool)
(ho : glue (plusField 2) τ (origin 2) = false) :
(spinCompatibleFill (minusCluster (glue (plusField 2) τ) (origin 2)) n).Finite
PhyslibExt/CondensedMatter/IsingModel/PeierlsSquareLattice.lean:245
Uses 16 · Used by 3
D. The Peierls bound
TheoremPlus and minus box measures on \(\mathbb{Z}^2\) differ for large \(\beta\)#✓fully proved
Plus and minus box measures on ℤ² differ for all β beyond some β₀. See
peierls_probOriginMinus_le_uniform for the informative uniform bound; the inequality of
measures itself holds for every β > 0.
theorem peierls_long_range_order_spinCompatibleFill :
∃ β₀ : ℝ, ∀ (n : ℕ) (β : ℝ), β₀ ≤ β →
plusMeasure 2 n β 0 ≠ minusMeasure 2 n β 0
noncomputable def plusMeasure (d n : ℕ) (β h : ℝ) :
ProbabilityMeasure (ConfigSpace (Site d)) :=
fvProbabilityMeasure (plusField d) n (bondFinsetTouch d n) β h
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:232
noncomputable def minusMeasure (d n : ℕ) (β h : ℝ) :
ProbabilityMeasure (ConfigSpace (Site d)) :=
fvProbabilityMeasure (minusField d) n (bondFinsetTouch d n) β h
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:237
Uses 117
TheoremPeierls bound#✓fully proved
Peierls bound on ℤ², uniform in the box: there is β₀ such that for β ≥ β₀ the
probability that the origin is minus under the plus-boundary box measure on Λ_n is at most
twoPeierlsBound 2 β, which is less than 1 / 2 and independent of n.
theorem peierls_probOriginMinus_le_uniform :
∃ β₀ : ℝ, ∀ β : ℝ, β₀ ≤ β → twoPeierlsBound 2 β < 1 / 2 ∧
∀ n : ℕ, probOriginMinus (plusField 2) n (bondFinsetTouch 2 n) β 0 ≤ twoPeierlsBound 2 β
noncomputable def twoPeierlsBound (d : ℕ) (β : ℝ) : ℝ := 2 * peierlsBound d β
PhyslibExt/CondensedMatter/IsingModel/PeierlsOuterContour.lean:70
noncomputable def probOriginMinus (η : ConfigSpace (Site d)) (n : ℕ)
(B : Finset (Sym2 (Site d))) (β h : ℝ) : ℝ :=
∑ τ : {x // x ∈ box d n} → Bool,
(if (glue η τ) (origin d) = false then fvProb η n B β h τ else 0)
PhyslibExt/CondensedMatter/IsingModel/PeierlsCriterion.lean:167
def plusField (d : ℕ) : ConfigSpace (Site d) := fun _ => true
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:226
noncomputable def bondFinsetTouch (d n : ℕ) : Finset (Sym2 (Site d)) :=
(bondPairsTouch d n).image (fun p => s(p.1, p.2))
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:114
Uses 109
E. A nonvacuity check
DefinitionConfiguration with only the origin minus#✓fully proved
The configuration on Λ_n with only the origin minus.
noncomputable def isoOriginCompletion (n : ℕ) : {x // x ∈ box 2 n} → Bool :=
fun x => decide ((x : Site 2) ≠ origin 2)
def box (d n : ℕ) : Set (Site d) := {x | ∀ i, (x i).natAbs ≤ n}
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:86
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def origin (d : ℕ) : Site d := fun _ => 0
PhyslibExt/CondensedMatter/IsingModel/Peierls.lean:195
Uses 3 · Used by 1
LemmaOrigin-only minus configuration satisfies the filled-cluster data#✓fully proved
A nonvacuity check: the configuration with only the origin minus satisfies the data of
OuterContourFill.
lemma outerContourFill_nonvacuous (n : ℕ) :
∃ τ : {x // x ∈ box 2 n} → Bool, glue (plusField 2) τ (origin 2) = false ∧
(↑({origin 2} : Finset (Site 2)) : Set (Site 2)) ⊆ box 2 n ∧
IsConnectedCluster ({origin 2} : Finset (Site 2)) ∧
ContourEvent (↑({origin 2} : Finset (Site 2)) : Set (Site 2)) (bondFinsetTouch 2 n)
(glue (plusField 2) τ) ∧
∃ (T : Finset (Site 2)) (j : ℕ),
(faceBoundaryGraph (↑({origin 2} : Finset (Site 2)) : Set (Site 2))).support
⊆ (T : Set (Site 2)) ∧
FaceBoundaryConnected (↑({origin 2} : Finset (Site 2)) : Set (Site 2)) T ∧
j < contourLen (↑({origin 2} : Finset (Site 2)) : Set (Site 2)) (bondFinsetTouch 2 n) ∧
axisVertex 2 j ∈ T
def box (d n : ℕ) : Set (Site d) := {x | ∀ i, (x i).natAbs ≤ n}
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:86
noncomputable def glue (η : ConfigSpace (Site d)) {n : ℕ}
(τ : {x // x ∈ box d n} → Bool) : ConfigSpace (Site d) :=
fun x => if h : x ∈ box d n then τ ⟨x, h⟩ else η x
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:125
def plusField (d : ℕ) : ConfigSpace (Site d) := fun _ => true
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:226
def origin (d : ℕ) : Site d := fun _ => 0
PhyslibExt/CondensedMatter/IsingModel/Peierls.lean:195
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
def IsConnectedCluster (K : Finset (Site d)) : Prop :=
origin d ∈ K ∧ ∀ x ∈ K, (latticeOn (↑K : Set (Site d))).Reachable (origin d) x
PhyslibExt/CondensedMatter/IsingModel/PeierlsContourCount.lean:233
def ContourEvent (K : Set (Site d)) (B : Finset (Sym2 (Site d))) (σ : ConfigSpace (Site d)) :
Prop :=
∀ e ∈ crossEdges K B, bond σ e = -1
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:176
noncomputable def bondFinsetTouch (d n : ℕ) : Finset (Sym2 (Site d)) :=
(bondPairsTouch d n).image (fun p => s(p.1, p.2))
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:114
def faceBoundaryGraph (S : Set (Site 2)) : SimpleGraph (Site 2) where
Adj f g := (hypercubicLattice 2).Adj f g ∧ bdEdge S (sharedPrimalEdge f g)
symm := by
refine ⟨fun f g ⟨hadj, hbd⟩ => ?_⟩
refine ⟨hadj.symm, ?_⟩
rwa [← sharedPrimalEdge_comm_of_adj hadj]
loopless := by
refine ⟨fun f h => ?_⟩
exact (hypercubicLattice 2).irrefl h.1
MathlibExt/Combinatorics/SimpleGraph/Lattice/JordanEnclosure.lean:297
def FaceBoundaryConnected (K : Set (Site 2)) (T : Finset (Site 2)) : Prop :=
((faceBoundaryGraph K).induce (T : Set (Site 2))).Connected
PhyslibExt/CondensedMatter/IsingModel/Peierls/PeierlsSingleCircuit.lean:366
noncomputable def contourLen (K : Set (Site d)) (B : Finset (Sym2 (Site d))) : ℕ :=
(crossEdges K B).card
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:116
def axisVertex (d j : ℕ) : Site d := fun i => if i.val = 0 then (j : ℤ) else 0
PhyslibExt/CondensedMatter/IsingModel/Peierls/PeierlsAnchorEncode.lean:97
Uses 40
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.