Documentation

HexPermGroup.Action.Image

def Hex.PermGroup.Action.Domain.generators {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (h : a.Domain objects) :
Array (Perm objects.size)

Images of the original generators, in their original order.

Equations
Instances For
    @[simp]
    theorem Hex.PermGroup.Action.Domain.generators_size {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (h : a.Domain objects) :
    theorem Hex.PermGroup.Action.Domain.mem_generators {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (h : a.Domain objects) (q : Perm objects.size) :
    theorem Hex.PermGroup.Action.Domain.generated_iff {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (h : a.Domain objects) (q : Perm objects.size) :

    The generated image is exactly the image of all original group elements; no faithfulness assumption is needed.

    structure Hex.PermGroup.Action.Image {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] (a : Action G α) (objects : Array α) :

    A checked image group, tied to the supplied domain enumeration and retaining the order of the original generators for preimage certificates.

    Instances For
      def Hex.PermGroup.Action.Image.map {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) (p : Element G) :

      The permutation induced by an original group element belongs to the image.

      Equations
      Instances For
        @[simp]
        theorem Hex.PermGroup.Action.Image.map_id {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) :
        image.map (Element.id G) = Element.id image.group
        theorem Hex.PermGroup.Action.Image.map_comp {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) (p q : Element G) :
        image.map (p.comp q) = (image.map p).comp (image.map q)
        theorem Hex.PermGroup.Action.Image.map_surjective {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) (q : Element image.group) :
        ∃ (p : Element G), image.map p = q
        theorem Hex.PermGroup.Action.Image.contains_iff {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) (q : Perm objects.size) :
        image.group.contains q = true ↔ ∃ (p : Element G), ⋯.perm p = q
        def Hex.PermGroup.Action.Image.source {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) (i : Fin image.group.generators.size) :

        The source generator associated with an image generator.

        Equations
        Instances For
          def Hex.PermGroup.Action.Image.preimage {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) (i : Fin image.group.generators.size) :
          Equations
          Instances For
            def Hex.PermGroup.Action.Image.preimageWord {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) (i : Fin image.group.generators.size) :
            Equations
            Instances For
              theorem Hex.PermGroup.Action.Image.check_preimage {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) (i : Fin image.group.generators.size) :
              theorem Hex.PermGroup.Action.Image.map_preimage {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) (i : Fin image.group.generators.size) :
              (image.map (image.preimage i)).val = image.group.generators[↑i]
              theorem Hex.PermGroup.Action.Image.map_eq_id {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] {a : Action G α} {objects : Array α} (image : a.Image objects) (p : Element G) :
              image.map p = Element.id image.group ↔ ∀ (x : α), x ∈ objects → a.act p x = x
              Instances For
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Hex.PermGroup.Action.actionImage {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] (a : Action G α) (cap : Nat) (objects : Array α) :
                  Except ImageError (a.Image objects)

                  Check the explicit allocation bound and signed generator closure before constructing index permutations or an image chain. The empty domain is valid.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    theorem Hex.PermGroup.Action.actionImage_ok {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] (a : Action G α) (cap : Nat) (objects : Array α) :
                    (∃ (image : a.Image objects), a.actionImage cap objects = Except.ok image) ↔ objects.size ≤ cap ∧ a.Domain objects
                    theorem Hex.PermGroup.Action.actionImage_sizeLimit {n : Nat} {G : Group n} {α : Type u} [DecidableEq α] (a : Action G α) (cap : Nat) (objects : Array α) (h : cap < objects.size) :
                    a.actionImage cap objects = Except.error (ImageError.sizeLimit { required := objects.size, capacity := cap })