Documentation

HexPermGroup.Chain.Order

One representative choice at each chain level.

Equations
Instances For
    def Hex.PermGroup.Chain.value {n : Nat} (c : Chain n) :
    c.Choice → Perm n

    Multiply the selected representatives in sifting order, with level zero on the left. No group elements are enumerated.

    Equations
    Instances For
      theorem Hex.PermGroup.Chain.fixed_generated {n : Nat} {S : Array (Perm n)} {base : Nat} (h : Fixed base S) {p : Perm n} (hp : Generated S p) (x : Fin n) (hx : ↑x < base) :
      p.get x = x

      Fixed-point conditions on generators extend to the whole generated subgroup.

      theorem Hex.PermGroup.Chain.value_generated {n : Nat} {c : Chain n} {base : Nat} (h : c.checkFrom base = true) (digits : c.Choice) :

      Every Cartesian choice is an element of the checked suffix group.

      theorem Hex.PermGroup.Chain.value_injective {n : Nat} {c : Chain n} {base : Nat} (h : c.checkFrom base = true) {u v : c.Choice} (he : c.value u = c.value v) :
      u = v

      Distinct orbit choices give distinct permutations. The first differing choice is detected at that level's base point.

      theorem Hex.PermGroup.Chain.value_surjective {n : Nat} {c : Chain n} {base : Nat} (h : c.checkFrom base = true) {p : Perm n} (hp : Generated c.generators p) :
      ∃ (digits : c.Choice), c.value digits = p

      Every member is a product of orbit representatives, obtained by sifting.

      theorem Hex.PermGroup.Chain.orbitProduct_pos {n : Nat} {c : Chain n} {base : Nat} (h : c.checkFrom base = true) :

      Each radix is positive in a checked chain, including the empty product one.