Dual circuits through one component of the contour
A. The component graph of a face
DefinitionFaces of a set reachable from a face in the face-boundary graph#✓fully proved
The faces of T reachable from f in the face-boundary graph of K.
noncomputable def componentSupport (K : Set (Site 2)) (T : Finset (Site 2)) (f : Site 2) :
Finset (Site 2) :=
T.filter (fun g => (faceBoundaryGraph K).Reachable f g)
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
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
Uses 2 · Used by 3
DefinitionComponent of a face in the face-boundary graph#✓fully proved
The connected component of the face f in the face-boundary graph of K, as a graph on all
faces.
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
abbrev Site (d : ℕ) : Type := Fin d → ℤ
MathlibExt/Combinatorics/SimpleGraph/Lattice/HypercubicLattice.lean:55
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
Uses 2 · Used by 6
C. Tight circuit data and the Peierls count
DefinitionTight axis circuit data: contour edges in one axis-face component#✓fully proved
Every realised contour of length ℓ in Λ_n ⊆ ℤ² is the contour of a cluster whose
face-boundary graph has all its edges in the component of an axis face (j, 0) with j < ℓ.
def TightAxisCircuitData (n ℓ : ℕ) : Prop :=
∀ F ∈ realisedContours 2 n ℓ,
∃ K : Finset (Site 2), (↑K : Set (Site 2)) ⊆ box 2 n ∧
crossEdges (↑K : Set (Site 2)) (bondFinsetTouch 2 n) = F ∧
contourLen (↑K : Set (Site 2)) (bondFinsetTouch 2 n) = ℓ ∧
∃ (T : Finset (Site 2)) (j : ℕ),
(faceBoundaryGraph (↑K : Set (Site 2))).support ⊆ (T : Set (Site 2)) ∧
j < ℓ ∧ axisVertex 2 j ∈ T ∧
(∀ e ∈ (faceBoundaryGraph (↑K : Set (Site 2))).edgeSet,
e ∈ (componentGraph (↑K : Set (Site 2)) (axisVertex 2 j)).edgeSet)
noncomputable def realisedContours (d n ℓ : ℕ) : Finset (Finset (Sym2 (Site d))) :=
((connClusterFamily (d := d) n).filter
(fun K : Finset (Site d) => contourLen (↑K) (bondFinsetTouch d n) = ℓ)).image
(fun K : Finset (Site d) => crossEdges (↑K : Set (Site d)) (bondFinsetTouch d n))
PhyslibExt/CondensedMatter/IsingModel/Peierls/ContourCountInjection.lean:188
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 crossEdges (K : Set (Site d)) (B : Finset (Sym2 (Site d))) :
Finset (Sym2 (Site d)) :=
B.filter (crosses K)
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:111
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 contourLen (K : Set (Site d)) (B : Finset (Sym2 (Site d))) : ℕ :=
(crossEdges K B).card
PhyslibExt/CondensedMatter/IsingModel/PeierlsContours.lean:116
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 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 9
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.