Documentation

LeanCourse.MIL.C06_Structures.S02_Algebraic_Structures

structure C06S02.Group₁ (α : Type u_1) :
Type u_1
  • mul : ααα
  • one : α
  • inv : αα
  • mul_assoc : ∀ (x y z : α), self.mul (self.mul x y) z = self.mul x (self.mul y z)
  • mul_one : ∀ (x : α), self.mul x self.one = x
  • one_mul : ∀ (x : α), self.mul self.one x = x
  • inv_mul_cancel : ∀ (x : α), self.mul (self.inv x) x = self.one
Instances For
    theorem C06S02.Group₁.mul_assoc {α : Type u_1} (self : C06S02.Group₁ α) (x : α) (y : α) (z : α) :
    self.mul (self.mul x y) z = self.mul x (self.mul y z)
    theorem C06S02.Group₁.mul_one {α : Type u_1} (self : C06S02.Group₁ α) (x : α) :
    self.mul x self.one = x
    theorem C06S02.Group₁.one_mul {α : Type u_1} (self : C06S02.Group₁ α) (x : α) :
    self.mul self.one x = x
    theorem C06S02.Group₁.inv_mul_cancel {α : Type u_1} (self : C06S02.Group₁ α) (x : α) :
    self.mul (self.inv x) x = self.one
    structure C06S02.Group₁Cat :
    Type (u_1 + 1)
    Instances For
      Equations
      • C06S02.permGroup = { mul := fun (f g : Equiv.Perm α) => Equiv.trans g f, one := Equiv.refl α, inv := Equiv.symm, mul_assoc := , mul_one := , one_mul := , inv_mul_cancel := }
      Instances For
        structure C06S02.AddGroup₁ (α : Type u_1) :
        Type u_1
        • add : ααα
        Instances For
          theorem C06S02.Point.ext {x : C06S02.Point} {y : C06S02.Point} (x : x✝.x = y✝.x) (y : x✝.y = y✝.y) (z : x✝.z = y✝.z) :
          x✝ = y✝
          theorem C06S02.Point.ext_iff {x : C06S02.Point} {y : C06S02.Point} :
          x = y x.x = y.x x.y = y.y x.z = y.z
          structure C06S02.Point :
          Instances For
            Equations
            • a.add b = { x := a.x + b.x, y := a.y + b.y, z := a.z + b.z }
            Instances For
              class C06S02.Group₂ (α : Type u_1) :
              Type u_1
              Instances
                theorem C06S02.Group₂.mul_one {α : Type u_1} [self : C06S02.Group₂ α] (x : α) :
                C06S02.Group₂.mul x C06S02.Group₂.one = x
                theorem C06S02.Group₂.one_mul {α : Type u_1} [self : C06S02.Group₂ α] (x : α) :
                C06S02.Group₂.mul C06S02.Group₂.one x = x
                theorem C06S02.Group₂.inv_mul_cancel {α : Type u_1} [self : C06S02.Group₂ α] (x : α) :
                C06S02.Group₂.mul (C06S02.Group₂.inv x) x = C06S02.Group₂.one
                Equations
                • C06S02.instGroup₂Perm = { mul := fun (f g : Equiv.Perm α) => Equiv.trans g f, one := Equiv.refl α, inv := Equiv.symm, mul_assoc := , mul_one := , one_mul := , inv_mul_cancel := }
                def C06S02.mySquare {α : Type u_1} [C06S02.Group₂ α] (x : α) :
                α
                Equations
                Instances For
                  Equations
                  instance C06S02.hasMulGroup₂ {α : Type u_1} [C06S02.Group₂ α] :
                  Mul α
                  Equations
                  • C06S02.hasMulGroup₂ = { mul := C06S02.Group₂.mul }
                  instance C06S02.hasOneGroup₂ {α : Type u_1} [C06S02.Group₂ α] :
                  One α
                  Equations
                  • C06S02.hasOneGroup₂ = { one := C06S02.Group₂.one }
                  instance C06S02.hasInvGroup₂ {α : Type u_1} [C06S02.Group₂ α] :
                  Inv α
                  Equations
                  • C06S02.hasInvGroup₂ = { inv := C06S02.Group₂.inv }
                  def C06S02.foo {α : Type u_1} (f : Equiv.Perm α) (g : Equiv.Perm α) :
                  f * 1 * g⁻¹ = (Equiv.symm g).trans ((Equiv.refl α).trans f)
                  Equations
                  • =
                  Instances For
                    class C06S02.AddGroup₂ (α : Type u_1) :
                    Type u_1
                    • add : ααα
                    Instances