Documentation

HexPermGroup.Action.Queue

structure Hex.PermGroup.Action.Queue {x✝ : Nat} {G : Group x✝} {α : Type u_1} (a : Action G α) (x : α) :
Type u_1

A breadth-first queue with shared transporter programs. Each object is reachable, but closure is deliberately absent until traversal completes.

Instances For
    def Hex.PermGroup.Action.Queue.root {n : Nat} {G : Group n} {α : Type u} (a : Action G α) (x : α) :
    a.Queue x
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      def Hex.PermGroup.Action.Queue.push {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} (t : a.Queue x) (i : Fin t.objects.size) (s : Step G) (hnew : ¬a.act s.element t.objects[↑i] ∈ t.objects) :
      a.Queue x

      Extend only after checking that this neighbor has not been discovered.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        structure Hex.PermGroup.Action.Queue.Extends {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} (t u : a.Queue x) :

        Extension preserves discovery indices.

        Instances For
          theorem Hex.PermGroup.Action.Queue.Extends.refl {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} (t : a.Queue x) :
          theorem Hex.PermGroup.Action.Queue.Extends.trans {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} {t u v : a.Queue x} (htu : t.Extends u) (huv : u.Extends v) :
          theorem Hex.PermGroup.Action.Queue.Extends.mem {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} {t u : a.Queue x} (h : t.Extends u) {y : α} (hy : y ∈ t.objects) :
          theorem Hex.PermGroup.Action.Queue.push_extends {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} (t : a.Queue x) (i : Fin t.objects.size) (s : Step G) (hnew : ¬a.act s.element t.objects[↑i] ∈ t.objects) :
          t.Extends (t.push i s hnew)
          def Hex.PermGroup.Action.Queue.orbit {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} (t : a.Queue x) :
          Orbit G α

          Export all transporter roots against their one shared node array.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            theorem Hex.PermGroup.Action.Queue.orbit_nodes {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} (t : a.Queue x) (i : Fin t.objects.size) :
            theorem Hex.PermGroup.Action.Queue.reachable {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} (t : a.Queue x) (y : α) (hy : y ∈ t.objects) :
            ∃ (p : Element G), a.act p x = y
            def Hex.PermGroup.Action.Queue.Processed {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} (t : a.Queue x) (cursor : Nat) :

            All signed edges from the first cursor entries have been inspected.

            Equations
            Instances For
              theorem Hex.PermGroup.Action.Queue.orbit_valid {n : Nat} {G : Group n} {α : Type u} {a : Action G α} {x : α} (t : a.Queue x) (hc : t.Processed t.objects.size) :