Hole-free clusters and the Peierls bound on the square lattice
A. The winding hypothesis
DefinitionWinding hypothesis for outer contours on \(\mathbb{Z}^2\)#✓fully proved
Every plus-boundary configuration on Λ_n with the origin minus has a connected contour
event through the origin whose boundary meets the positive axis within the contour length.
def OuterContourWinding (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)) ∧
j < contourLen (↑K : Set (Site 2)) (bondFinsetTouch 2 n) ∧
axisVertex 2 j ∈ T ∧
(∀ e ∈ (faceBoundaryGraph (↑K : Set (Site 2))).edgeSet,
e ∈ (componentGraph (↑K : Set (Site 2)) (axisVertex 2 j)).edgeSet)
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
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
def componentGraph (K : Set (Site 2)) (f : Site 2) : SimpleGraph (Site 2) where
Adj a b := (faceBoundaryGraph K).Adj a b ∧ (faceBoundaryGraph K).Reachable f a ∧
(faceBoundaryGraph K).Reachable f b
symm := by
refine ⟨?_⟩
rintro a b ⟨hadj, hra, hrb⟩
exact ⟨hadj.symm, hrb, hra⟩
loopless := by
refine ⟨fun a => ?_⟩
rintro ⟨hadj, _, _⟩
exact (faceBoundaryGraph K).irrefl hadj
PhyslibExt/CondensedMatter/IsingModel/Peierls/ComponentEulerCircuit.lean:110
Uses 12 · Used by 3
B. Hole-free clusters
DefinitionHole-free connected cluster through the origin#✓fully proved
K is a connected cluster in Λ_n through the origin without holes.
def IsHoleFreeBoxCluster (n : ℕ) (K : Finset (Site 2)) : Prop :=
IsConnectedCluster K ∧
∃ (T : Finset (Site 2)) (j : ℕ),
(faceBoundaryGraph (↑K : Set (Site 2))).support ⊆ (T : Set (Site 2)) ∧
j < contourLen (↑K : Set (Site 2)) (bondFinsetTouch 2 n) ∧
axisVertex 2 j ∈ T ∧
(∀ e ∈ (faceBoundaryGraph (↑K : Set (Site 2))).edgeSet,
e ∈ (componentGraph (↑K : Set (Site 2)) (axisVertex 2 j)).edgeSet)
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 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
noncomputable def contourLen (K : Set (Site d)) (B : Finset (Sym2 (Site d))) : ℕ :=
(crossEdges K B).card
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:116
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 axisVertex (d j : ℕ) : Site d := fun i => if i.val = 0 then (j : ℤ) else 0
PhyslibExt/CondensedMatter/IsingModel/Peierls/PeierlsAnchorEncode.lean:97
def componentGraph (K : Set (Site 2)) (f : Site 2) : SimpleGraph (Site 2) where
Adj a b := (faceBoundaryGraph K).Adj a b ∧ (faceBoundaryGraph K).Reachable f a ∧
(faceBoundaryGraph K).Reachable f b
symm := by
refine ⟨?_⟩
rintro a b ⟨hadj, hra, hrb⟩
exact ⟨hadj.symm, hrb, hra⟩
loopless := by
refine ⟨fun a => ?_⟩
rintro ⟨hadj, _, _⟩
exact (faceBoundaryGraph K).irrefl hadj
PhyslibExt/CondensedMatter/IsingModel/Peierls/ComponentEulerCircuit.lean:110
Uses 7 · Used by 4
DefinitionHole-free clusters in the box through the origin#✓fully proved
The hole-free clusters in Λ_n through the origin.
noncomputable def holeFreeClusterFamily (n : ℕ) : Finset (Finset (Site 2)) :=
(clusterFamily (d := 2) n).filter (fun K => IsHoleFreeBoxCluster n K)
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def clusterFamily (n : ℕ) : Finset (Finset (Site d)) :=
(boxFinset d n).powerset
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:422
def IsHoleFreeBoxCluster (n : ℕ) (K : Finset (Site 2)) : Prop :=
IsConnectedCluster K ∧
∃ (T : Finset (Site 2)) (j : ℕ),
(faceBoundaryGraph (↑K : Set (Site 2))).support ⊆ (T : Set (Site 2)) ∧
j < contourLen (↑K : Set (Site 2)) (bondFinsetTouch 2 n) ∧
axisVertex 2 j ∈ T ∧
(∀ e ∈ (faceBoundaryGraph (↑K : Set (Site 2))).edgeSet,
e ∈ (componentGraph (↑K : Set (Site 2)) (axisVertex 2 j)).edgeSet)
PhyslibExt/CondensedMatter/IsingModel/PeierlsHoleFree.lean:85
Uses 3 · Used by 4
C. Counting by contour length
DefinitionHole-free clusters with contour length \(\ell\)#✓fully proved
The hole-free clusters in Λ_n through the origin with contour length ℓ.
noncomputable def holeFreeAtLen (n ℓ : ℕ) : Finset (Finset (Site 2)) :=
(holeFreeClusterFamily n).filter
(fun K => contourLen (↑K : Set (Site 2)) (bondFinsetTouch 2 n) = ℓ)
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def holeFreeClusterFamily (n : ℕ) : Finset (Finset (Site 2)) :=
(clusterFamily (d := 2) n).filter (fun K => IsHoleFreeBoxCluster n K)
PhyslibExt/CondensedMatter/IsingModel/PeierlsHoleFree.lean:95
noncomputable def contourLen (K : Set (Site d)) (B : Finset (Sym2 (Site d))) : ℕ :=
(crossEdges K B).card
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:116
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
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.