Documentation

HexGraphIso.AutIndiv

theorem Hex.GraphIso.Aut.indiv_exists {n k : Nat} {G : Colored n k} {v : Fin n} (w : Fin n) (hne : w v) (hcolor : G.coloring.cells[w] = G.coloring.cells[v]) :
(H : Colored n (k + 1)), indiv? G v = some H

Individualizing a vertex succeeds when its original colour cell contains another vertex.

theorem Hex.GraphIso.Aut.indiv_fields {n k : Nat} {G : Colored n k} {v : Fin n} {H : Colored n (k + 1)} (h : indiv? G v = some H) :
H.graph = G.graph ∀ (u : Fin n), H.coloring.cells[u] = if u = v then k else G.coloring.cells[u]

The checked individualization keeps the graph and splits exactly the selected vertex into a new final colour.

theorem Hex.GraphIso.Aut.indiv_isIso {n k : Nat} {G : Colored n k} {v : Fin n} {H : Colored n (k + 1)} (h : indiv? G v = some H) (p : Perm n) :
IsIso H H p IsIso G G p p.get v = v

Automorphisms after individualization are exactly the automorphisms of the original graph that fix the selected vertex.