Documentation

LeanPool.Polylean.UnitConjecture.MetabelianGroup

Metabelian groups #

Metabelian groups are group extensions 1 → K → G → Q → 1 with both the kernel and the quotient Abelian. Such an extension is determined by data:

We define the cocycle condition and construct a group structure on a structure extending K × Q. The main step is to show that the cocyle condition implies associativity.

@[reducible]
def LeanPool.Polylean.MetabelianGroup.mul {Q : Type u_1} {K : Type u_2} [AddGroup Q] [AddCommGroup K] (c : QQK) [ccl : Cocycle c] :
K × QK × QK × Q

The multiplication operation defined using the cocycle. The cocycle condition is crucially used in showing associativity and other properties.

Equations
Instances For
    @[reducible]

    The identity element of the Metabelian group, which is the ordered pair of the identities of the individual groups.

    Equations
    Instances For
      @[reducible]
      def LeanPool.Polylean.MetabelianGroup.inv {Q : Type u_1} {K : Type u_2} [AddGroup Q] [AddCommGroup K] (c : QQK) [ccl : Cocycle c] :
      K × QK × Q

      The inverse operation of the Metabelian group.

      Equations
      Instances For

        Some of the standard lemmas to show that K × Q has the structure of a group with the above operations.

        theorem LeanPool.Polylean.MetabelianGroup.left_id {Q : Type u_2} {K : Type u_1} [AddGroup Q] [AddCommGroup K] (c : QQK) [ccl : Cocycle c] (g : K × Q) :
        mul c e g = g
        theorem LeanPool.Polylean.MetabelianGroup.right_id {Q : Type u_2} {K : Type u_1} [AddGroup Q] [AddCommGroup K] (c : QQK) [ccl : Cocycle c] (g : K × Q) :
        mul c g e = g
        theorem LeanPool.Polylean.MetabelianGroup.left_inv {Q : Type u_2} {K : Type u_1} [AddGroup Q] [AddCommGroup K] (c : QQK) [ccl : Cocycle c] (g : K × Q) :
        mul c (inv c g) g = e
        theorem LeanPool.Polylean.MetabelianGroup.right_inv {Q : Type u_2} {K : Type u_1} [AddGroup Q] [AddCommGroup K] (c : QQK) [ccl : Cocycle c] (g : K × Q) :
        mul c g (inv c g) = e
        theorem LeanPool.Polylean.MetabelianGroup.mul_assoc {Q : Type u_2} {K : Type u_1} [AddGroup Q] [AddCommGroup K] (c : QQK) [ccl : Cocycle c] (g g' g'' : K × Q) :
        mul c (mul c g g') g'' = mul c g (mul c g' g'')
        @[reducible]
        def LeanPool.Polylean.MetabelianGroup.metabelianGroup {Q : Type u_1} {K : Type u_2} [AddGroup Q] [AddCommGroup K] (c : QQK) [ccl : Cocycle c] :
        Group (K × Q)

        A group structure on K × Q using the above multiplication operation.

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