Documentation

HexPermGroup.Blocks.Trials

structure Hex.PermGroup.Primitivity.Checks {n : Nat} (G : Group n) (a : Fin n) (k : Nat) (hk : k ≤ n) :

The first k seed tests have complete forced-union traces. The diagonal test is vacuous and uses an empty trace without running a block search.

Instances For
    structure Hex.PermGroup.Primitivity.Failure {n : Nat} (G : Group n) (a : Fin n) :

    A checked invariant partition that is neither discrete nor indiscrete.

    Instances For
      inductive Hex.PermGroup.Primitivity.Result {n : Nat} (G : Group n) (a : Fin n) (k : Nat) (hk : k ≤ n) :

      Either all tests through k are complete, or an explicit nontrivial invariant partition has been found.

      Instances For
        def Hex.PermGroup.Primitivity.Checks.push {n : Nat} {G : Group n} {a : Fin n} {k : Nat} {hk : k ≤ n} (c : Checks G a k hk) (hn : k + 1 ≤ n) (trace : List (Fin n × Fin n)) (h : have b := ⟨k, ⋯⟩; b ≠ a → Blocks.check G.chain.generators [(a, b)] (Partition.indiscrete n) trace = true) :
        Checks G a (k + 1) hn

        Append one successful seed test to the already checked prefix.

        Equations
        Instances For
          theorem Hex.PermGroup.Primitivity.Checks.criterion {n : Nat} {G : Group n} {a : Fin n} (c : Checks G a n ⋯) (b : Fin n) :

          Complete traces prove the seeded criterion without rerunning the producer.

          def Hex.PermGroup.Primitivity.scan {n : Nat} (G : Group n) (a : Fin n) (k : Nat) (hk : k ≤ n) :
          Result G a k hk

          Visit other points in natural order, retaining each completed block trace and stopping immediately at a nontrivial invariant partition.

          Equations
          Instances For