theorem
Hex.GraphIso.Nauty.Sparse.CellCut.outside
{ptn : Array Nat}
{level first cut last a len : Nat}
(h : IsCell (ptn.setIfInBounds (cut - 1) level) level a len)
(hf : first < cut)
(hl : cut < last)
(ho : a + len ≤ first ∨ last ≤ a)
:
IsCell ptn level a len
A cut leaves every disjoint cell's boundary values unchanged.
theorem
Hex.GraphIso.Nauty.Sparse.CellCut.preserve
{ptn : Array Nat}
{level first cut last a len : Nat}
(h : IsCell ptn level a len)
(hf : first < cut)
(hl : cut < last)
(ho : a + len ≤ first ∨ last ≤ a)
:
IsCell (ptn.setIfInBounds (cut - 1) level) level a len
A cut inside one cell preserves the partition contract of every disjoint cell, including its open interior and both closed endpoints.
theorem
Hex.GraphIso.Nauty.Sparse.CellCut.cells
{ptn : Array Nat}
{level first cut last a len : Nat}
(h : IsCell ptn level first (last - first))
(hf : first < cut)
(hl : cut < last)
(hb : cut - 1 < ptn.size)
(ha : IsCell (ptn.setIfInBounds (cut - 1) level) level a len)
:
One boundary write replaces precisely its original cell by the two fragments; all other cells retain their original boundary contract.