mathlib documentation

algebra.group.opposite

Group structures on the multiplicative opposite #

@[protected, instance]
def mul_opposite.semigroup (α : Type u) [semigroup α] :
Equations
@[protected, instance]
Equations
@[protected, instance]
def mul_opposite.monoid (α : Type u) [monoid α] :
Equations
theorem mul_opposite.semiconj_by.op {α : Type u} [has_mul α] {a x y : α} (h : semiconj_by a x y) :
@[simp]
theorem mul_opposite.semiconj_by_op {α : Type u} [has_mul α] {a x y : α} :
theorem mul_opposite.commute.op {α : Type u} [has_mul α] {x y : α} (h : commute x y) :
theorem mul_opposite.commute.unop {α : Type u} [has_mul α] {x y : αᵐᵒᵖ} (h : commute x y) :
@[simp]
theorem mul_opposite.commute_op {α : Type u} [has_mul α] {x y : α} :
@[simp]
def mul_opposite.op_add_equiv {α : Type u} [has_add α] :

The function unop is an additive equivalence.

Equations
def mul_equiv.inv' (G : Type u_1) [group G] :

Inversion on a group is a mul_equiv to the opposite group. When G is commutative, there is mul_equiv.inv.

Equations
@[simp]
theorem monoid_hom.to_opposite_apply {R : Type u_1} {S : Type u_2} [mul_one_class R] [mul_one_class S] (f : R →* S) (hf : ∀ (x y : R), commute (f x) (f y)) :
def monoid_hom.to_opposite {R : Type u_1} {S : Type u_2} [mul_one_class R] [mul_one_class S] (f : R →* S) (hf : ∀ (x y : R), commute (f x) (f y)) :

A monoid homomorphism f : R →* S such that f x commutes with f y for all x, y defines a monoid homomorphism to Sᵐᵒᵖ.

Equations
def monoid_hom.from_opposite {R : Type u_1} {S : Type u_2} [mul_one_class R] [mul_one_class S] (f : R →* S) (hf : ∀ (x y : R), commute (f x) (f y)) :

A monoid homomorphism f : R →* S such that f x commutes with f y for all x, y defines a monoid homomorphism from Rᵐᵒᵖ.

Equations
@[simp]
theorem monoid_hom.from_opposite_apply {R : Type u_1} {S : Type u_2} [mul_one_class R] [mul_one_class S] (f : R →* S) (hf : ∀ (x y : R), commute (f x) (f y)) :
def units.op_equiv {R : Type u_1} [monoid R] :

The units of the opposites are equivalent to the opposites of the units.

Equations
def monoid_hom.op {α : Type u_1} {β : Type u_2} [mul_one_class α] [mul_one_class β] :

A hom α →* β can equivalently be viewed as a hom αᵐᵒᵖ →* βᵐᵒᵖ. This is the action of the (fully faithful) ᵐᵒᵖ-functor on morphisms.

Equations
@[simp]
theorem monoid_hom.op_apply_apply {α : Type u_1} {β : Type u_2} [mul_one_class α] [mul_one_class β] (f : α →* β) (ᾰ : αᵐᵒᵖ) :
@[simp]
theorem monoid_hom.op_symm_apply_apply {α : Type u_1} {β : Type u_2} [mul_one_class α] [mul_one_class β] (f : αᵐᵒᵖ →* βᵐᵒᵖ) (ᾰ : α) :
@[simp]
def monoid_hom.unop {α : Type u_1} {β : Type u_2} [mul_one_class α] [mul_one_class β] :

The 'unopposite' of a monoid hom αᵐᵒᵖ →* βᵐᵒᵖ. Inverse to monoid_hom.op.

Equations
def add_monoid_hom.op {α : Type u_1} {β : Type u_2} [add_zero_class α] [add_zero_class β] :

A hom α →+ β can equivalently be viewed as a hom αᵐᵒᵖ →+ βᵐᵒᵖ. This is the action of the (fully faithful) ᵐᵒᵖ-functor on morphisms.

Equations
@[simp]
theorem add_monoid_hom.op_apply_apply {α : Type u_1} {β : Type u_2} [add_zero_class α] [add_zero_class β] (f : α →+ β) (ᾰ : αᵐᵒᵖ) :
@[simp]
theorem add_monoid_hom.op_symm_apply_apply {α : Type u_1} {β : Type u_2} [add_zero_class α] [add_zero_class β] (f : αᵐᵒᵖ →+ βᵐᵒᵖ) (ᾰ : α) :
@[simp]
def add_monoid_hom.unop {α : Type u_1} {β : Type u_2} [add_zero_class α] [add_zero_class β] :

The 'unopposite' of an additive monoid hom αᵐᵒᵖ →+ βᵐᵒᵖ. Inverse to add_monoid_hom.op.

Equations
def add_equiv.op {α : Type u_1} {β : Type u_2} [has_add α] [has_add β] :

A iso α ≃+ β can equivalently be viewed as an iso αᵐᵒᵖ ≃+ βᵐᵒᵖ.

Equations
@[simp]
theorem add_equiv.op_apply {α : Type u_1} {β : Type u_2} [has_add α] [has_add β] (f : α ≃+ β) :
@[simp]
def add_equiv.unop {α : Type u_1} {β : Type u_2} [has_add α] [has_add β] :

The 'unopposite' of an iso αᵐᵒᵖ ≃+ βᵐᵒᵖ. Inverse to add_equiv.op.

Equations
@[simp]
theorem mul_equiv.op_symm_apply_apply {α : Type u_1} {β : Type u_2} [has_mul α] [has_mul β] (f : αᵐᵒᵖ ≃* βᵐᵒᵖ) (ᾰ : α) :
@[simp]
theorem mul_equiv.op_symm_apply_symm_apply {α : Type u_1} {β : Type u_2} [has_mul α] [has_mul β] (f : αᵐᵒᵖ ≃* βᵐᵒᵖ) (ᾰ : β) :
def mul_equiv.op {α : Type u_1} {β : Type u_2} [has_mul α] [has_mul β] :

A iso α ≃* β can equivalently be viewed as an iso αᵐᵒᵖ ≃+ βᵐᵒᵖ.

Equations
@[simp]
theorem mul_equiv.op_apply_symm_apply {α : Type u_1} {β : Type u_2} [has_mul α] [has_mul β] (f : α ≃* β) (ᾰ : βᵐᵒᵖ) :
@[simp]
theorem mul_equiv.op_apply_apply {α : Type u_1} {β : Type u_2} [has_mul α] [has_mul β] (f : α ≃* β) (ᾰ : αᵐᵒᵖ) :
@[simp]
def mul_equiv.unop {α : Type u_1} {β : Type u_2} [has_mul α] [has_mul β] :

The 'unopposite' of an iso αᵐᵒᵖ ≃* βᵐᵒᵖ. Inverse to mul_equiv.op.

Equations
@[ext]

This ext lemma change equalities on αᵐᵒᵖ →+ β to equalities on α →+ β. This is useful because there are often ext lemmas for specific αs that will apply to an equality of α →+ β such as finsupp.add_hom_ext'.