Documentation

HexPermGroup.Blocks.Build

structure Hex.PermGroup.Blocks.Solution {n : Nat} (S : Array (Perm n)) (seeds : List (Fin n × Fin n)) :

A canonical minimal invariant partition with its independently replayable sequence of forced unions.

Instances For
    @[irreducible]
    def Hex.PermGroup.Blocks.run {n : Nat} (S : Array (Perm n)) (seeds : List (Fin n × Fin n)) (p : Partition n) (todo : List (Fin n × Fin n)) (st : State S seeds p todo) :
    Solution S seeds

    Process the FIFO queue until no closure obligations remain. Effective merges decrease the block count; redundant requests decrease the queue length.

    Equations
    Instances For
      def Hex.PermGroup.Blocks.solve {n : Nat} (S : Array (Perm n)) (seeds : List (Fin n × Fin n)) :
      Solution S seeds

      Least invariant equivalence relation containing arbitrary independent seed pairs. Only effective unions enqueue generator images.

      Equations
      Instances For
        theorem Hex.PermGroup.Blocks.Solution.admissible {n : Nat} {S : Array (Perm n)} {seeds : List (Fin n × Fin n)} (s : Solution S seeds) :
        theorem Hex.PermGroup.Blocks.Solution.least {n : Nat} {S : Array (Perm n)} {seeds : List (Fin n × Fin n)} (s : Solution S seeds) (R : Fin n → Fin n → Prop) (hR : Admissible S seeds R) :
        theorem Hex.PermGroup.Blocks.Solution.unique {n : Nat} {S : Array (Perm n)} {seeds : List (Fin n × Fin n)} (s t : Solution S seeds) :

        Any two accepted solutions have the same canonical partition.

        theorem Hex.PermGroup.Blocks.Solution.trace_bound {n : Nat} {S : Array (Perm n)} {seeds : List (Fin n × Fin n)} (s : Solution S seeds) :

        At most n-1 unions are needed; degree zero has an empty trace.