Documentation

HexGraphIsoTheory.AutCertificate

theorem Hex.GraphIso.Aut.indiv_isIso_map {n k : ℕ} {G : Colored n k} {v w : Fin n} {Hv Hw : Colored n (k + 1)} (hv : indiv? G v = some Hv) (hw : indiv? G w = some Hw) {p : Perm n} (hp : IsIso G G p) (hpvw : p.get v = w) :
IsIso Hv Hw p

An automorphism carrying v to w identifies the two colourings obtained by individualizing those vertices.

One checked canonical key.

Instances For

    Evidence excluding one vertex as the image of a level's base point.

    Instances For

      One point-stabilizer level.

      Instances For
        @[instance_reducible]
        Equations

        A point-stabilizer certificate.

        Instances For

          Find the exclusion evidence for a vertex.

          Equations
          Instances For
            def Hex.GraphIso.Aut.Kernel.Level.checkImage {n k : ℕ} (G : Colored n k) (rows : ℕ) (v : Fin n) (_Hv : Colored n (k + 1)) (L : Level) (w : ℕ) :

            Check the evidence for one possible image of the base point.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Hex.GraphIso.Aut.Kernel.Level.check {n k : ℕ} (G : Colored n k) (rows : ℕ) (v : Fin n) (Hv : Colored n (k + 1)) (L : Level) :

              Check one level, including its reference key and every excluded image.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                Replay a point-stabilizer certificate. Every successful step adds one colour, so a terminal certificate is accepted only after the colouring has at least as many colours as vertices.

                Equations
                Instances For
                  theorem Hex.GraphIso.Aut.Kernel.check_step {n k : ℕ} {G : Colored n k} {rows : ℕ} (L : Level) {rest : Certificate} (hv : L.base < n) {H : Colored n (k + 1)} (hH : indiv? G ⟨L.base, hv⟩ = some H) (hL : Level.check G rows ⟨L.base, hv⟩ H L = true) (hrest : check H rows rest = true) :
                  check G rows (Certificate.step L rest) = true

                  Assemble an accepted step from separately replayed level and suffix certificates. The tactic uses this theorem to keep each kernel reduction small.

                  Run the untrusted automorphism and canonical-form searches and record a point-stabilizer certificate for kernel replay. budget bounds each canonical-form certificate search.

                  Equations
                  Instances For
                    theorem Hex.GraphIso.Aut.Kernel.Level.image_mem {n k : ℕ} {G : Colored n k} {rows : ℕ} {v : Fin n} {Hv : Colored n (k + 1)} {L : Level} (hrows : Kernel.packRows n G.graph.adjMatrix.data.toList = rows) (hHv : indiv? G v = some Hv) (hcheck : check G rows v Hv L = true) {p : Perm n} (hp : IsIso G G p) :
                    ↑(p.get v) ∈ L.orbit

                    An accepted level contains the image of its base point under every automorphism of the current coloured graph.

                    theorem Hex.GraphIso.Aut.Kernel.Level.orbitSize_le {n k : ℕ} {G : Colored n k} {rows : ℕ} {v : Fin n} {Hv : Colored n (k + 1)} {L : Level} (hrows : Kernel.packRows n G.graph.adjMatrix.data.toList = rows) (hHv : indiv? G v = some Hv) (hcheck : check G rows v Hv L = true) :

                    The list at an accepted level bounds the actual orbit of its base point.

                    theorem Hex.GraphIso.Aut.Kernel.card_le_bound {n k : ℕ} {G : Colored n k} {rows : ℕ} {c : Certificate} (hrows : Kernel.packRows n G.graph.adjMatrix.data.toList = rows) (hcheck : check G rows c = true) :

                    Acceptance bounds the full automorphism-group order by the product of the recorded point-orbit bounds.

                    theorem Hex.GraphIso.Aut.Kernel.order_le_bound {n k : ℕ} {G : Colored n k} {rows : ℕ} {c : Certificate} (hrows : Kernel.packRows n G.graph.adjMatrix.data.toList = rows) (hcheck : check G rows c = true) :

                    Acceptance bounds the order reported by the executable automorphism search.

                    The full colour-preserving automorphism group as a Mathlib subgroup of Equiv.Perm (Fin n).

                    Equations
                    Instances For
                      @[simp]
                      theorem Hex.GraphIso.Aut.mem_equivGroup {n k : ℕ} (G : Colored n k) (p : Equiv.Perm (Fin n)) :

                      The existing completeness theorem, transported to the Mathlib-facing permutation representation.

                      The executable and Mathlib-facing presentations of the full automorphism group have the same cardinality.

                      theorem Hex.GraphIso.Aut.isIso_nil {n k : ℕ} (G : Colored n k) (g : Equiv.Perm (Fin n)) :
                      g ∈ [] → IsIso G G (Perm.ofEquiv g)
                      theorem Hex.GraphIso.Aut.isIso_cons {n k : ℕ} {G : Colored n k} {g : Equiv.Perm (Fin n)} {gs : List (Equiv.Perm (Fin n))} (hg : IsIso G G (Perm.ofEquiv g)) (hgs : ∀ p ∈ gs, IsIso G G (Perm.ofEquiv p)) (p : Equiv.Perm (Fin n)) :
                      p ∈ g :: gs → IsIso G G (Perm.ofEquiv p)
                      theorem Hex.GraphIso.Aut.closure_eq_equivGroup {n k : ℕ} {G : Colored n k} {gs : List (Equiv.Perm (Fin n))} {gc : Kernel.Certificate} {rows N : ℕ} (hrows : Kernel.packRows n G.graph.adjMatrix.data.toList = rows) (hgraph : Kernel.check G rows gc = true) (hgens : ∀ g ∈ gs, IsIso G G (Perm.ofEquiv g)) (hcard : Nat.card ↥(Subgroup.closure {g : Equiv.Perm (Fin n) | g ∈ gs}) = N) (hbound : gc.bound = N) :

                      A certified lower bound of the same size as the graph certificate's upper bound identifies a generator subgroup with the full automorphism group.

                      theorem Hex.GraphIso.Aut.card_equivGroup_eq {n k : ℕ} {G : Colored n k} {gs : List (Equiv.Perm (Fin n))} {gc : Kernel.Certificate} {rows N : ℕ} (hrows : Kernel.packRows n G.graph.adjMatrix.data.toList = rows) (hgraph : Kernel.check G rows gc = true) (hgens : ∀ g ∈ gs, IsIso G G (Perm.ofEquiv g)) (hcard : Nat.card ↥(Subgroup.closure {g : Equiv.Perm (Fin n) | g ∈ gs}) = N) (hbound : gc.bound = N) :

                      A generator subgroup certified to meet the graph certificate's upper bound determines the full automorphism-group order.

                      A bare graph automorphism is the same thing as an automorphism of its one-cell coloured view.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        theorem Hex.GraphIso.Mathlib.card_coloredIso {V : Type u} [Fintype V] {n k : ℕ} (e : V ≃ Fin n) (G : Colored V k) [DecidableRel G.graph.Adj] :

                        Encoding identifies the cardinality of a Mathlib coloured graph's automorphism type with the executable graph's Equiv.Perm subgroup.

                        theorem Hex.GraphIso.Mathlib.card_graphIso {V : Type u} [Fintype V] {n : ℕ} (e : V ≃ Fin n) (G : SimpleGraph V) [DecidableRel G.Adj] (h : 0 < Fintype.card V) :

                        The corresponding cardinality identity for an uncoloured Mathlib graph.