Documentation

HexGraphIso.Nauty.Policy.Generic.Trivial

A partition, its path codes, and the key it would have as a leaf.

Instances For

    The exhaustive traversal's current frame, saved parents, and incumbent.

    Instances For
      def Hex.GraphIso.Nauty.Generic.Trivial.visit {n : Nat} (ctx : Ctx n) (level numcells : Nat) (st : State n) :

      Refine the current partition and append its code to the current path.

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

        The target positions, enumerated in increasing offset order.

        Equations
        Instances For
          def Hex.GraphIso.Nauty.Generic.Trivial.child {n : Nat} (level tc offset : Nat) (st : State n) :

          Individualize an offset of the current target cell, retaining its parent frame.

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

            Restore the saved parent while retaining the child's incumbent. The exhaustive policy returns to its immediate parent; each recovery therefore consumes exactly one frame pushed by child.

            Equations
            Instances For

              Install the current leaf into the incumbent.

              Equations
              Instances For
                @[instance_reducible]

                The exhaustive policy uses the specification's target selector and never removes a target position or returns past its immediate parent. Sweep entries are offsets in the target cell.

                Equations
                • One or more equations did not get rendered due to their size.
                theorem Hex.GraphIso.Nauty.Generic.Trivial.mem_positions {n len : Nat} (hlen : len ≤ n) (v : Nat) :
                (positions len).mem v = decide (v < len)

                A valid offset set has precisely its requested interval as members.

                theorem Hex.GraphIso.Nauty.Generic.Trivial.next_positions {n len : Nat} (hlen : len ≤ n) (cursor : Option Nat) :

                The next offset is the scan start whenever it is still within the target.

                theorem Hex.GraphIso.Nauty.Generic.Trivial.recover_child {n : Nat} (ctx : Ctx n) (level tc offset : Nat) (st : State n) (best : Option (Key n)) :
                recover (have __src := visit ctx (level + 1) (st.frame.partition.numcells + 1) (child level tc offset st); { frame := __src.frame, parents := __src.parents, best := best }) = { frame := st.frame, parents := st.parents, best := best }

                Completing a child restores exactly its parent frame and new incumbent.

                inductive Hex.GraphIso.Nauty.Generic.Trivial.Complete {n : Nat} (ctx : Ctx n) (tcLevel : Nat) :
                Nat → Nat → RefineSt n → Prop

                Sufficient depth for the exhaustive refinement tree. The interval bounds ensure every target offset is representable by the policy's bitset.

                Instances For