Documentation

HexPermGroup.Kernel.Certify

A balanced RArray holding xs[j] at index j, for nonempty xs.

Equations
Instances For
    @[instance_reducible]
    Equations
    Instances For

      One step of a linear congruential generator, for deterministic sampling.

      Equations
      Instances For
        def Hex.PermGroup.Kernel.orbitTree {n : Nat} (gens : Array (Perm n)) (b : Fin n) :

        The orbit of b under gens in breadth-first order. Each later point records its Schreier-tree edge (i, k), meaning point j is gens[i] applied to point k < j, and its transversal element.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def Hex.PermGroup.Kernel.extendAll {n : Nat} (c : (T : Array (Perm n)) × Construction T 0) (gens : Array (Perm n)) :
          (T : Array (Perm n)) × Construction T 0

          Add generators to a complete chain by extension, skipping those it already contains.

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

            The order of the group generated by gens, from a complete chain built by extension only. Such chains are not stored in groups, but their orbit sizes give the order.

            Equations
            Instances For

              The orbit partition of gens, as the least point of each point's orbit.

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

                A partial stabilizer chain built from elements of a group H: base points, the generators added at each level (level i uses those of levels ≥ i, all of which fix the earlier base points), and each level's transversal, indexed by point. Each level's orbit lies in the orbit of its base point under the corresponding point stabilizer of H, so the product of the orbit sizes is at most |H|, whether or not the chain is complete.

                Instances For

                  The orbit sizes' product, a lower bound on the order of the group.

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

                    The transversal of b under gens, by breadth-first search.

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

                      Recompute the transversals of levels 0 to i.

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

                        Sift g, adding its residue as a new generator when it is not the identity.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          def Hex.PermGroup.Kernel.reachesOrder {n : Nat} (gens : Array (Perm n)) (target seed : Nat) (patience : Nat := 40) :

                          Whether the group generated by gens, known to lie in a group of order target, is all of it: sift pseudo-random elements of the group, made by product replacement, into a partial chain until its lower bound reaches target. Stops with false after patience consecutive elements that do not raise the bound, or after 100000 elements. A true answer is certain; false does not show that gens fails to generate.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def Hex.PermGroup.Kernel.product {n : Nat} (cands : Array (Perm n)) (w : List Nat) :

                            The product of the candidates at the given indices, leftmost outermost.

                            Equations
                            Instances For
                              def Hex.PermGroup.Kernel.smallGenerating {n : Nat} (cands : Array (Perm n)) (target seed start : Nat) (wordLength : Nat := 3) (greedy : Bool := true) :

                              A few products of elements of cands, as index lists, generating a group of order target. A single candidate of order target is taken if there is one. Otherwise pseudo-random sets of start (clamped to two or three) up to three products of three candidates are tried, each first compared on orbits and then accepted when reachesOrder shows that it generates a group of order target. Failing those, candidates are added singly, in order, whenever they enlarge the group.

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

                                The levels of a certificate for the group of order order generated by the non-identity permutations gens. Each level's base is the least point moved by its generators, and the next level's generators are a few of its Schreier generators that generate the stabilizer.

                                Equations
                                Instances For

                                  The kernel certificate of the group generated by S. The first level's generators are a few products of the distinct non-identity inputs that generate the group, found by sampling sets of products of three and then of eight inputs, or those inputs themselves when sampling finds no smaller set.

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

                                    Estimated kernel work, in field operations, of one sift through rest.

                                    Equations
                                    Instances For

                                      Estimated work of one Schreier pair of L followed by rest.

                                      Equations
                                      Instances For

                                        Estimated work of levelOk for L followed by rest.

                                        Equations
                                        Instances For

                                          Estimated work of inputsOk.

                                          Equations
                                          Instances For

                                            Split [0, total) into adjacent ranges of at most step pairs.

                                            Equations
                                            Instances For
                                              def Hex.PermGroup.Kernel.chunks (n inputCount : Nat) (c : Certificate) (budget : Nat) :

                                              For each level, adjacent ranges of Schreier pairs whose estimated work is at most budget, or the first check that cannot fit.

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