File: Mathlib/Algebra/Group/Ext.lean

full_name: Monoid.ext
code: @[to_additive (attr := ext)]
theorem Monoid.ext {M : Type u} ⦃m₁ m₂ : Monoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M)) :
    m₁ = m₂ 
goal: m₁ = m₂

full_name: AddMonoid.ext
code: @[to_additive (attr := ext)]
theorem Monoid.ext {M : Type u} ⦃m₁ m₂ : Monoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M)) :
    m₁ = m₂ 
goal: m₁ = m₂

full_name: AddCommMonoid.toAddMonoid_injective
code: @[to_additive]
theorem CommMonoid.toMonoid_injective {M : Type u} :
    Function.Injective (@CommMonoid.toMonoid M) 
goal: Function.Injective (@AddCommMonoid.toAddMonoid M)

full_name: CommMonoid.toMonoid_injective
code: @[to_additive]
theorem CommMonoid.toMonoid_injective {M : Type u} :
    Function.Injective (@CommMonoid.toMonoid M) 
goal: Function.Injective (@CommMonoid.toMonoid M)

full_name: CommMonoid.ext
code: @[to_additive (attr := ext)]
theorem CommMonoid.ext {M : Type*} ⦃m₁ m₂ : CommMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M)) : m₁ = m₂ 
goal: m₁ = m₂

full_name: AddCommMonoid.ext
code: @[to_additive (attr := ext)]
theorem CommMonoid.ext {M : Type*} ⦃m₁ m₂ : CommMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M)) : m₁ = m₂ 
goal: m₁ = m₂

full_name: AddLeftCancelMonoid.toAddMonoid_injective
code: @[to_additive]
theorem LeftCancelMonoid.toMonoid_injective {M : Type u} :
    Function.Injective (@LeftCancelMonoid.toMonoid M) 
goal: Function.Injective (@AddLeftCancelMonoid.toAddMonoid M)

full_name: LeftCancelMonoid.toMonoid_injective
code: @[to_additive]
theorem LeftCancelMonoid.toMonoid_injective {M : Type u} :
    Function.Injective (@LeftCancelMonoid.toMonoid M) 
goal: Function.Injective (@LeftCancelMonoid.toMonoid M)

full_name: LeftCancelMonoid.ext
code: @[to_additive (attr := ext)]
theorem LeftCancelMonoid.ext {M : Type u} ⦃m₁ m₂ : LeftCancelMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M)) :
    m₁ = m₂ 
goal: m₁ = m₂

full_name: AddLeftCancelMonoid.ext
code: @[to_additive (attr := ext)]
theorem LeftCancelMonoid.ext {M : Type u} ⦃m₁ m₂ : LeftCancelMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M)) :
    m₁ = m₂ 
goal: m₁ = m₂

full_name: AddRightCancelMonoid.toAddMonoid_injective
code: @[to_additive]
theorem RightCancelMonoid.toMonoid_injective {M : Type u} :
    Function.Injective (@RightCancelMonoid.toMonoid M) 
goal: Function.Injective (@AddRightCancelMonoid.toAddMonoid M)

full_name: RightCancelMonoid.toMonoid_injective
code: @[to_additive]
theorem RightCancelMonoid.toMonoid_injective {M : Type u} :
    Function.Injective (@RightCancelMonoid.toMonoid M) 
goal: Function.Injective (@RightCancelMonoid.toMonoid M)

full_name: RightCancelMonoid.ext
code: @[to_additive (attr := ext)]
theorem RightCancelMonoid.ext {M : Type u} ⦃m₁ m₂ : RightCancelMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M))  :
    m₁ = m₂ 
goal: m₁ = m₂

full_name: AddRightCancelMonoid.ext
code: @[to_additive (attr := ext)]
theorem RightCancelMonoid.ext {M : Type u} ⦃m₁ m₂ : RightCancelMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M))  :
    m₁ = m₂ 
goal: m₁ = m₂

full_name: AddCancelMonoid.toAddLeftCancelMonoid_injective
code: @[to_additive]
theorem CancelMonoid.toLeftCancelMonoid_injective {M : Type u} :
    Function.Injective (@CancelMonoid.toLeftCancelMonoid M) 
goal: Function.Injective (@AddCancelMonoid.toAddLeftCancelMonoid M)

full_name: CancelMonoid.toLeftCancelMonoid_injective
code: @[to_additive]
theorem CancelMonoid.toLeftCancelMonoid_injective {M : Type u} :
    Function.Injective (@CancelMonoid.toLeftCancelMonoid M) 
goal: Function.Injective (@CancelMonoid.toLeftCancelMonoid M)

full_name: AddCancelMonoid.ext
code: @[to_additive (attr := ext)]
theorem CancelMonoid.ext {M : Type*} ⦃m₁ m₂ : CancelMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M)) :
    m₁ = m₂ 
goal: m₁ = m₂

full_name: CancelMonoid.ext
code: @[to_additive (attr := ext)]
theorem CancelMonoid.ext {M : Type*} ⦃m₁ m₂ : CancelMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M)) :
    m₁ = m₂ 
goal: m₁ = m₂

full_name: CancelCommMonoid.toCommMonoid_injective
code: @[to_additive]
theorem CancelCommMonoid.toCommMonoid_injective {M : Type u} :
    Function.Injective (@CancelCommMonoid.toCommMonoid M) 
goal: Function.Injective (@CancelCommMonoid.toCommMonoid M)

full_name: AddCancelCommMonoid.toAddCommMonoid_injective
code: @[to_additive]
theorem CancelCommMonoid.toCommMonoid_injective {M : Type u} :
    Function.Injective (@CancelCommMonoid.toCommMonoid M) 
goal: Function.Injective (@AddCancelCommMonoid.toAddCommMonoid M)

full_name: CancelCommMonoid.ext
code: @[to_additive (attr := ext)]
theorem CancelCommMonoid.ext {M : Type*} ⦃m₁ m₂ : CancelCommMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M)) :
    m₁ = m₂ 
goal: m₁ = m₂

full_name: AddCancelCommMonoid.ext
code: @[to_additive (attr := ext)]
theorem CancelCommMonoid.ext {M : Type*} ⦃m₁ m₂ : CancelCommMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M)) :
    m₁ = m₂ 
goal: m₁ = m₂

full_name: DivInvMonoid.ext
code: @[to_additive (attr := ext)]
theorem DivInvMonoid.ext {M : Type*} ⦃m₁ m₂ : DivInvMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M))
    (h_inv : (letI := m₁; Inv.inv : M → M) = (letI := m₂; Inv.inv : M → M)) : m₁ = m₂ 
goal: m₁ = m₂

full_name: SubNegMonoid.ext
code: @[to_additive (attr := ext)]
theorem DivInvMonoid.ext {M : Type*} ⦃m₁ m₂ : DivInvMonoid M⦄
    (h_mul : (letI := m₁; HMul.hMul : M → M → M) = (letI := m₂; HMul.hMul : M → M → M))
    (h_inv : (letI := m₁; Inv.inv : M → M) = (letI := m₂; Inv.inv : M → M)) : m₁ = m₂ 
goal: m₁ = m₂

full_name: AddGroup.toSubNegAddMonoid_injective
code: @[to_additive]
lemma Group.toDivInvMonoid_injective {G : Type*} : Injective (@Group.toDivInvMonoid G) 
goal: Function.Injective (@AddGroup.toSubNegMonoid G)

full_name: Group.toDivInvMonoid_injective
code: @[to_additive]
lemma Group.toDivInvMonoid_injective {G : Type*} : Injective (@Group.toDivInvMonoid G) 
goal: Function.Injective (@Group.toDivInvMonoid G)

full_name: Group.ext
code: @[to_additive (attr := ext)]
theorem Group.ext {G : Type*} ⦃g₁ g₂ : Group G⦄ (h_mul : g₁.mul = g₂.mul) : g₁ = g₂ 
goal: g₁ = g₂

full_name: AddGroup.ext
code: @[to_additive (attr := ext)]
theorem Group.ext {G : Type*} ⦃g₁ g₂ : Group G⦄ (h_mul : g₁.mul = g₂.mul) : g₁ = g₂ 
goal: g₁ = g₂

full_name: AddCommGroup.toAddGroup_injective
code: @[to_additive]
lemma CommGroup.toGroup_injective {G : Type*} : Injective (@CommGroup.toGroup G) 
goal: Function.Injective (@AddCommGroup.toAddGroup G)

full_name: CommGroup.toGroup_injective
code: @[to_additive]
lemma CommGroup.toGroup_injective {G : Type*} : Injective (@CommGroup.toGroup G) 
goal: Function.Injective (@CommGroup.toGroup G)

full_name: AddCommGroup.ext
code: @[to_additive (attr := ext)]
theorem CommGroup.ext {G : Type*} ⦃g₁ g₂ : CommGroup G⦄ (h_mul : g₁.mul = g₂.mul) : g₁ = g₂ 
goal: g₁ = g₂

full_name: CommGroup.ext
code: @[to_additive (attr := ext)]
theorem CommGroup.ext {G : Type*} ⦃g₁ g₂ : CommGroup G⦄ (h_mul : g₁.mul = g₂.mul) : g₁ = g₂ 
goal: g₁ = g₂