A connected cluster is determined by its edge boundary

DefinitionEdge with exactly one endpoint in a set#✓fully proved

An edge straddles K if exactly one of its endpoints lies in K.

def edgeStraddles (K : Set (Site d)) (e : Sym2 (Site d)) : Prop := by
  classical
  exact 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
Uses 1 · Used by 6

DefinitionEdge boundary of a set of sites#✓fully proved

The edge boundary ∂K: the lattice edges that straddle K.

def boundaryEdgeSet (K : Set (Site d)) : Set (Sym2 (Site d)) :=
  {e | e ∈ (hypercubicLattice d).edgeSet ∧ edgeStraddles K e}
Uses 3 · Used by 4

DefinitionHypercubic lattice with the edge boundary removed#✓fully proved

The hypercubic lattice with the edges straddling K removed.

def latticeMinusBoundary (K : Set (Site d)) : SimpleGraph (Site d) where
  Adj x y := (hypercubicLattice d).Adj x y ∧ ¬ edgeStraddles K s(x, y)
  symm := by
    refine ⟨?_⟩
    intro x y ⟨hadj, hbd⟩
    refine ⟨hadj.symm, ?_⟩
    rwa [← edgeStraddles_comm]
  loopless := ⟨fun x h => (hypercubicLattice d).irrefl h.1⟩
Uses 3 · Used by 3
3 fully proved

The dependency explorer needs JavaScript and its graph data.

Download the complete graph data.