Documentation

HexPermGroup.Subgroup

Inclusion of the represented permutation subgroups.

Equations
Instances For

    Containment needs only the original generators of the smaller group.

    Equations
    Instances For

      The first original generator whose complete sift disproves containment.

      Equations
      Instances For

        Equality of subgroups, independent of their presentations.

        Equations
        Instances For
          def Hex.PermGroup.Group.join {n : Nat} (G H : Group n) :

          Concatenate the original generators and rebuild a complete chain.

          Equations
          Instances For

            Normalize once for orbit operations; signed input references retain the connection to the group's original generator array.

            Equations
            Instances For

              The top working array already has checked symmetry and original-generator provenance; point-orbit replay need not normalize the input again.

              def Hex.PermGroup.Group.orbit {n : Nat} (G : Group n) (a : Fin n) :

              Sorted point orbit, retaining fixed points. The discovery order remains in the certificate and is independent of this public serialization.

              Equations
              Instances For
                theorem Hex.PermGroup.Group.mem_orbit {n : Nat} (G : Group n) (a x : Fin n) :
                theorem Hex.PermGroup.Group.orbit_sorted {n : Nat} (G : Group n) (a : Fin n) :
                List.Pairwise (fun (x y : Fin n) => ↑x < ↑y) (G.orbit a).toList
                theorem Hex.PermGroup.Group.orbit_nodup {n : Nat} (G : Group n) (a : Fin n) :
                theorem Hex.PermGroup.Group.self_mem_orbit {n : Nat} (G : Group n) (a : Fin n) :
                a ∈ G.orbit a
                theorem Hex.PermGroup.Group.orbit_eq {n : Nat} (G : Group n) (a b : Fin n) (hb : b ∈ G.orbit a) :
                G.orbit a = G.orbit b
                def Hex.PermGroup.Group.orbitAt? {n : Nat} (G : Group n) (a : Fin n) :

                Retain an orbit at its least point. This gives a deterministic partition with both point arrays and the list of orbits sorted.

                Equations
                Instances For
                  theorem Hex.PermGroup.Group.mem_orbits {n : Nat} (G : Group n) (points : Array (Fin n)) :
                  points ∈ G.orbits ↔ ∃ (a : Fin n), points = G.orbit a
                  theorem Hex.PermGroup.Group.orbits_disjoint {n : Nat} (G : Group n) {xs ys : Array (Fin n)} (hx : xs ∈ G.orbits) (hy : ys ∈ G.orbits) (hne : xs ≠ ys) (x : Fin n) :
                  x ∈ xs → ¬x ∈ ys
                  theorem Hex.PermGroup.Group.orbits_sorted {n : Nat} (G : Group n) :
                  List.Pairwise (fun (xs ys : Array (Fin n)) => ∃ (a : Fin n), ∃ (b : Fin n), xs[0]? = some a ∧ ys[0]? = some b ∧ ↑a < ↑b) G.orbits.toList
                  theorem Hex.PermGroup.Group.orbits_cover {n : Nat} (G : Group n) (a : Fin n) :
                  ∃ (points : Array (Fin n)), points ∈ G.orbits ∧ a ∈ points
                  def Hex.PermGroup.Group.transporter? {n : Nat} (G : Group n) (a b : Fin n) :

                  A transporter is returned exactly when the target is in the point orbit.

                  Equations
                  Instances For
                    theorem Hex.PermGroup.Group.transporter_image {n : Nat} (G : Group n) (a b : Fin n) (p : Element G) (h : G.transporter? a b = some p) :
                    p.val.get a = b
                    def Hex.PermGroup.Group.stabilizer {n : Nat} (G : Group n) (a : Fin n) :

                    The full point stabilizer, generated by the Schreier generators of the point orbit that are not generated by earlier ones.

                    Equations
                    Instances For
                      def Hex.PermGroup.Group.pointwise {n : Nat} (G : Group n) :
                      List (Fin n) → Group n

                      Iterate full point stabilizers in the supplied order.

                      Equations
                      Instances For
                        theorem Hex.PermGroup.Group.mem_pointwise {n : Nat} (G : Group n) (points : List (Fin n)) (p : Perm n) :
                        Generated (G.pointwise points).generators p ↔ Generated G.generators p ∧ ∀ (a : Fin n), a ∈ points → p.get a = a
                        theorem Hex.PermGroup.Group.pointwise_same {n : Nat} (G : Group n) (xs ys : List (Fin n)) (h : ∀ (a : Fin n), a ∈ xs ↔ a ∈ ys) :

                        Pointwise stabilizers depend on the listed point set, so reordering or repeating points leaves the represented subgroup unchanged.