Contours of minus clusters
A. Flipping a set
DefinitionConfiguration with the spins in a set flipped#✓fully proved
The configuration with the spins in K flipped.
noncomputable def flipOnSet (K : Set (Site d)) (σ : ConfigSpace (Site d)) :
ConfigSpace (Site d) :=
fun x => if x ∈ K then !(σ x) else σ x
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 3
B. Contours
DefinitionBond crossing the boundary of a set#✓fully proved
The bond e has exactly one endpoint in K.
noncomputable def crosses (K : Set (Site d)) (e : Sym2 (Site d)) : Prop :=
Sym2.lift ⟨fun x y => (x ∈ K ↔ y ∉ K), by
intro x y; simp only [eq_iff_iff]
by_cases hx : x ∈ K <;> by_cases hy : y ∈ K <;> tauto⟩ e
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
DefinitionContour of a set: bonds crossing its boundary#✓fully proved
The bonds of B crossing the boundary of K (the contour of K).
noncomputable def crossEdges (K : Set (Site d)) (B : Finset (Sym2 (Site d))) :
Finset (Sym2 (Site d)) :=
B.filter (crosses K)
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def crosses (K : Set (Site d)) (e : Sym2 (Site d)) : Prop :=
Sym2.lift ⟨fun x y => (x ∈ K ↔ y ∉ K), by
intro x y; simp only [eq_iff_iff]
by_cases hx : x ∈ K <;> by_cases hy : y ∈ K <;> tauto⟩ e
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:102
Uses 2 · Used by 10
DefinitionContour length of a set#✓fully proved
The number of bonds of B crossing the boundary of K.
noncomputable def contourLen (K : Set (Site d)) (B : Finset (Sym2 (Site d))) : ℕ :=
(crossEdges K B).card
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def crossEdges (K : Set (Site d)) (B : Finset (Sym2 (Site d))) :
Finset (Sym2 (Site d)) :=
B.filter (crosses K)
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:111
Uses 2 · Used by 18
DefinitionBond variable of a crossing bond#✓fully proved
The bond variable of a crossing bond.
noncomputable def crossEdgeBond (K : Set (Site d)) (σ : ConfigSpace (Site d))
(e : Sym2 (Site d)) : ℝ :=
Sym2.lift ⟨fun x y => if (x ∈ K ↔ y ∉ K) then bond σ s(x, y) else 0, by
intro x y; simp only
rw [bond_mk, bond_mk, mul_comm (spin σ x)]
by_cases h : (x ∈ K ↔ y ∉ K)
· rw [ite_eq_left h, ite_eq_left (by tauto)]
· rw [ite_eq_right h, ite_eq_right (by tauto)]⟩ e
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
def bond (s : ConfigSpace V) (e : Sym2 V) : ℝ :=
Sym2.lift ⟨fun x y => spin s x * spin s y, fun _ _ => mul_comm _ _⟩ e
PhyslibExt/CondensedMatter/IsingModel/Gibbs.lean:85
Uses 4 · Used by 3
C. Contour events and their probability
DefinitionContour event of a set: opposite spins across every crossing bond#✓fully proved
Every bond of B crossing the boundary of K joins a minus spin inside to a plus spin
outside.
def ContourEvent (K : Set (Site d)) (B : Finset (Sym2 (Site d))) (σ : ConfigSpace (Site d)) :
Prop :=
∀ e ∈ crossEdges K B, bond σ e = -1
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
noncomputable def crossEdges (K : Set (Site d)) (B : Finset (Sym2 (Site d))) :
Finset (Sym2 (Site d)) :=
B.filter (crosses K)
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:111
def bond (s : ConfigSpace V) (e : Sym2 V) : ℝ :=
Sym2.lift ⟨fun x y => spin s x * spin s y, fun _ _ => mul_comm _ _⟩ e
PhyslibExt/CondensedMatter/IsingModel/Gibbs.lean:85
Uses 4 · Used by 8
DefinitionInside configuration with the spins in a set flipped#✓fully proved
The inside configuration with the spins in K flipped.
noncomputable def flipInteriorOn {n : ℕ} (K : Set (Site d))
(τ : {x // x ∈ box d n} → Bool) : {x // x ∈ box d n} → Bool :=
fun x => if (x : Site d) ∈ K then !(τ x) else τ x
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
DefinitionFlipping spins in a set as an involutive equivalence#✓fully proved
Flipping the spins in K as an involutive equivalence of inside configurations.
noncomputable def flipInteriorOnEquiv {n : ℕ} (K : Set (Site d)) :
({x // x ∈ box d n} → Bool) ≃ ({x // x ∈ box d n} → Bool) where
toFun := flipInteriorOn K
invFun := flipInteriorOn K
left_inv := flipInteriorOn_involutive K
right_inv := flipInteriorOn_involutive K
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 flipInteriorOn {n : ℕ} (K : Set (Site d))
(τ : {x // x ∈ box d n} → Bool) : {x // x ∈ box d n} → Bool :=
fun x => if (x : Site d) ∈ K then !(τ x) else τ x
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:187
lemma flipInteriorOn_involutive {n : ℕ} (K : Set (Site d))
(τ : {x // x ∈ box d n} → Bool) : flipInteriorOn K (flipInteriorOn K τ) = τ
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:191
DefinitionProbability of the contour event of a set#✓fully proved
The probability of the contour event of K under the box measure.
noncomputable def probContour (K : Set (Site d)) (η : ConfigSpace (Site d)) (n : ℕ)
(B : Finset (Sym2 (Site d))) (β : ℝ) : ℝ :=
∑ τ : {x // x ∈ box d n} → Bool,
(if ContourEvent K B (glue η τ) then fvProb η n B β 0 τ else 0)
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
def box (d n : ℕ) : Set (Site d) := {x | ∀ i, (x i).natAbs ≤ n}
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:86
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 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
noncomputable def fvProb (η : ConfigSpace (Site d)) (n : ℕ)
(B : Finset (Sym2 (Site d))) (β h : ℝ) (τ : {x // x ∈ box d n} → Bool) : ℝ :=
fvWeight η n B β h τ / fvZ η n B β h
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:177
Uses 6 · Used by 4
D. Minus clusters
DefinitionSet of minus sites#✓fully proved
The set of minus sites.
def minusSet (σ : ConfigSpace (Site d)) : Set (Site d) := {x | σ x = false}
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
Uses 2 · Used by 7
DefinitionNearest-neighbour graph on the minus sites#✓fully proved
The nearest-neighbour graph on the minus sites.
def minusGraph (σ : ConfigSpace (Site d)) : SimpleGraph (Site d) where
Adj x y := (hypercubicLattice d).Adj x y ∧ x ∈ minusSet σ ∧ y ∈ minusSet σ
symm := ⟨fun _ _ ⟨h1, h2, h3⟩ => ⟨h1.symm, h3, h2⟩⟩
loopless := ⟨fun _ h => (hypercubicLattice d).irrefl h.1⟩
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 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 minusSet (σ : ConfigSpace (Site d)) : Set (Site d) := {x | σ x = false}
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:320
Uses 4 · Used by 7
DefinitionMinus cluster of a site#✓fully proved
The minus cluster of o: the sites joined to o by a path of minus sites.
def minusCluster (σ : ConfigSpace (Site d)) (o : Site d) : Set (Site d) :=
{x | (minusGraph σ).Reachable o x}
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 minusGraph (σ : ConfigSpace (Site d)) : SimpleGraph (Site d) where
Adj x y := (hypercubicLattice d).Adj x y ∧ x ∈ minusSet σ ∧ y ∈ minusSet σ
symm := ⟨fun _ _ ⟨h1, h2, h3⟩ => ⟨h1.symm, h3, h2⟩⟩
loopless := ⟨fun _ h => (hypercubicLattice d).irrefl h.1⟩
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:326
Uses 3 · Used by 6
E. Cluster families and the Peierls sum
DefinitionCluster family: all subsets of the box#✓fully proved
The finite sets of sites in Λ_n containing the origin.
noncomputable def clusterFamily (n : ℕ) : Finset (Finset (Site d)) :=
(boxFinset d n).powerset
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
noncomputable def boxFinset (d n : ℕ) : Finset (Site d) :=
(box_finite d n).toFinset
PhyslibExt/CondensedMatter/IsingModel/InfiniteVolume.lean:88
Uses 2 · Used by 7
DefinitionMinus cluster of the origin as a finite set#✓fully proved
The minus cluster of the origin in a plus-boundary box configuration, as a finset.
noncomputable def minusClusterFinset {n : ℕ} (τ : {x // x ∈ box d n} → Bool)
(ho : glue (plusField d) τ (origin d) = false) : Finset (Site d) :=
(minusCluster_glue_plus_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 minusCluster_glue_plus_finite {n : ℕ} (τ : {x // x ∈ box d n} → Bool)
(ho : glue (plusField d) τ (origin d) = false) :
(minusCluster (glue (plusField d) τ) (origin d)).Finite
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:414
Uses 10
DefinitionPeierls series bound on the cluster-family contour sum#✓fully proved
The sum of e^{-2β |∂K|} over the cluster family is at most the Peierls series.
def ContourCountBound (d n : ℕ) (β : ℝ) : Prop :=
∑ K ∈ clusterFamily (d := d) n,
Real.exp (-(2 * β) * (contourLen (↑K) (bondFinsetTouch d n) : ℝ))
≤ peierlsBound d β
noncomputable def clusterFamily (n : ℕ) : Finset (Finset (Site d)) :=
(boxFinset d n).powerset
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:422
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
noncomputable def peierlsBound (d : ℕ) (β : ℝ) : ℝ :=
∑' ℓ : ℕ, (ℓ : ℝ) * (2 * d : ℝ) ^ ℓ * Real.exp (-(2 * β) * ℓ)
PhyslibExt/CondensedMatter/IsingModel/PeierlsCriterion.lean:71
Uses 5
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.