Documentation

Mathlib.Algebra.Order.Hom.Monoid

Ordered monoid and group homomorphisms #

This file defines morphisms between (additive) ordered monoids.

Types of morphisms #

• OrderAddMonoidHom: Ordered additive monoid homomorphisms.
• OrderMonoidHom: Ordered monoid homomorphisms.
• OrderMonoidWithZeroHom: Ordered monoid with zero homomorphisms.

Typeclasses #

• OrderAddMonoidHomClass
• OrderMonoidHomClass
• OrderMonoidWithZeroHomClass

Notation #

• →+o→+o: Bundled ordered additive monoid homs. Also use for additive groups homs.
• →*o→*o: Bundled ordered monoid homs. Also use for groups homs.
• →*₀o→*₀o: Bundled ordered monoid with zero homs. Also use for groups with zero homs.

Implementation notes #

There's a coercion from bundled homs to fun, and the canonical notation is to use the bundled hom as a function via this coercion.

There is no OrderGroupHom -- the idea is that OrderMonoidHom is used. The constructor for OrderMonoidHom needs a proof of map_one as well as map_mul; a separate constructor OrderMonoidHom.mk' will construct ordered group homs (i.e. ordered monoid homs between ordered groups) given only a proof that multiplication is preserved,

Implicit {} brackets are often used instead of type class [] brackets. This is done when the instances can be inferred because they are implicit arguments to the type OrderMonoidHom. When they can be inferred from the type it is faster to use this method than to use type class inference.

Tags #

ordered monoid, ordered group, monoid with zero

structure OrderAddMonoidHom (α : Type u_1) (β : Type u_2) [inst : ] [inst : ] [inst : ] [inst : ] extends :
Type (maxu_1u_2)
• An OrderAddMonoidHom is a monotone function.

α →+o β→+o β is the type of monotone functions α → β→ β that preserve the OrderedAddCommMonoid structure.

OrderAddMonoidHom is also used for ordered group homomorphisms.

When possible, instead of parametrizing results over (f : α →+o β)→+o β), you should parametrize over (F : Type _) [OrderAddMonoidHomClass F α β] (f : F).

When you extend this structure, make sure to extend OrderAddMonoidHomClass.

Instances For

Infix notation for OrderAddMonoidHom.

Equations
class OrderAddMonoidHomClass (F : Type u_1) (α : outParam (Type u_2)) (β : outParam (Type u_3)) [inst : ] [inst : ] [inst : ] [inst : ] extends :
Type (max(maxu_1u_2)u_3)
• An OrderAddMonoidHom is a monotone function.

monotone : ∀ (f : F), Monotone f

OrderAddMonoidHomClass F α β states that F is a type of ordered monoid homomorphisms.

You should also extend this typeclass when you extend OrderAddMonoidHom.

Instances
structure OrderMonoidHom (α : Type u_1) (β : Type u_2) [inst : ] [inst : ] [inst : ] [inst : ] extends :
Type (maxu_1u_2)
• An OrderMonoidHom is a monotone function.

monotone' : Monotone (toMonoidHom).toFun

α →*o β→*o β is the type of functions α → β→ β that preserve the OrderedCommMonoid structure.

OrderMonoidHom is also used for ordered group homomorphisms.

When possible, instead of parametrizing results over (f : α →*o β)→*o β), you should parametrize over (F : Type _) [OrderMonoidHomClass F α β] (f : F).

When you extend this structure, make sure to extend OrderMonoidHomClass.

Instances For

Infix notation for OrderMonoidHom.

Equations
class OrderMonoidHomClass (F : Type u_1) (α : outParam (Type u_2)) (β : outParam (Type u_3)) [inst : ] [inst : ] [inst : ] [inst : ] extends :
Type (max(maxu_1u_2)u_3)
• An OrderMonoidHom is a monotone function.

monotone : ∀ (f : F), Monotone f

OrderMonoidHomClass F α β states that F is a type of ordered monoid homomorphisms.

You should also extend this typeclass when you extend OrderMonoidHom.

Instances
def OrderAddMonoidHomClass.toOrderAddMonoidHom {F : Type u_1} {α : Type u_2} {β : Type u_3} :
{x : } → {x_1 : } → {x_2 : } → {x_3 : } → [inst : ] → Fα →+o β

Turn an element of a type F satisfying OrderAddMonoidHomClass F α β into an actual OrderAddMonoidHom. This is declared as the default coercion from F to α →+o β→+o β.

Equations
• One or more equations did not get rendered due to their size.
def OrderMonoidHomClass.toOrderMonoidHom {F : Type u_1} {α : Type u_2} {β : Type u_3} :
{x : } → {x_1 : } → {x_2 : } → {x_3 : } → [inst : ] → Fα →*o β

Turn an element of a type F satisfying OrderMonoidHomClass F α β into an actual OrderMonoidHom. This is declared as the default coercion from F to α →*o β→*o β.

Equations
• One or more equations did not get rendered due to their size.
instance OrderAddMonoidHomClass.toOrderHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} :
{x : } → {x_1 : } → {x_2 : } → {x_3 : } → [inst : ] →
Equations
instance OrderMonoidHomClass.toOrderHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} :
{x : } → {x_1 : } → {x_2 : } → {x_3 : } → [inst : ] →
Equations
instance instCoeTCOrderAddMonoidHom {F : Type u_1} {α : Type u_2} {β : Type u_3} :
{x : } → {x_1 : } → {x_2 : } → {x_3 : } → [inst : ] → CoeTC F (α →+o β)

Any type satisfying OrderAddMonoidHomClass can be cast into OrderAddMonoidHom via OrderAddMonoidHomClass.toOrderAddMonoidHom

Equations
instance instCoeTCOrderMonoidHom {F : Type u_1} {α : Type u_2} {β : Type u_3} :
{x : } → {x_1 : } → {x_2 : } → {x_3 : } → [inst : ] → CoeTC F (α →*o β)

Any type satisfying OrderMonoidHomClass can be cast into OrderMonoidHom via OrderMonoidHomClass.toOrderMonoidHom.

Equations
• instCoeTCOrderMonoidHom = { coe := OrderMonoidHomClass.toOrderMonoidHom }
structure OrderMonoidWithZeroHom (α : Type u_1) (β : Type u_2) [inst : ] [inst : ] [inst : ] [inst : ] extends :
Type (maxu_1u_2)
• An OrderMonoidWithZeroHom is a monotone function.

monotone' : Monotone (toMonoidWithZeroHom).toFun

OrderMonoidWithZeroHom α β is the type of functions α → β→ β that preserve the MonoidWithZero structure.

OrderMonoidWithZeroHom is also used for group homomorphisms.

When possible, instead of parametrizing results over (f : α →+ β)→+ β), you should parametrize over (F : Type _) [OrderMonoidWithZeroHomClass F α β] (f : F).

When you extend this structure, make sure to extend OrderMonoidWithZeroHomClass.

Instances For

Infix notation for OrderMonoidWithZeroHom.

Equations
class OrderMonoidWithZeroHomClass (F : Type u_1) (α : outParam (Type u_2)) (β : outParam (Type u_3)) [inst : ] [inst : ] [inst : ] [inst : ] extends :
Type (max(maxu_1u_2)u_3)
• An OrderMonoidWithZeroHom is a monotone function.

monotone : ∀ (f : F), Monotone f

OrderMonoidWithZeroHomClass F α β states that F is a type of ordered monoid with zero homomorphisms.

You should also extend this typeclass when you extend OrderMonoidWithZeroHom.

Instances
def OrderMonoidWithZeroHomClass.toOrderMonoidWithZeroHom {F : Type u_1} {α : Type u_2} {β : Type u_3} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : F) :
α →*₀o β

Turn an element of a type F satisfying OrderMonoidWithZeroHomClass F α β into an actual OrderMonoidWithZeroHom. This is declared as the default coercion from F to α →+*₀o β→+*₀o β.

Equations
• One or more equations did not get rendered due to their size.
instance OrderMonoidWithZeroHomClass.toOrderMonoidHomClass {F : Type u_1} {α : Type u_2} {β : Type u_3} :
{x : } → {x_1 : } → {x_2 : } → {x_3 : } → [inst : ] →
Equations
instance instCoeTCOrderMonoidWithZeroHom {F : Type u_1} {α : Type u_2} {β : Type u_3} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] :
CoeTC F (α →*₀o β)
Equations
• instCoeTCOrderMonoidWithZeroHom = { coe := OrderMonoidWithZeroHomClass.toOrderMonoidWithZeroHom }
theorem map_nonneg {F : Type u_3} {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] (f : F) {a : α} (ha : 0 a) :
0 f a
theorem map_nonpos {F : Type u_3} {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] (f : F) {a : α} (ha : a 0) :
f a 0
theorem monotone_iff_map_nonneg {F : Type u_3} {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] (f : F) :
Monotone f ∀ (a : α), 0 a0 f a
theorem antitone_iff_map_nonpos {F : Type u_3} {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] (f : F) :
Antitone f ∀ (a : α), 0 af a 0
theorem monotone_iff_map_nonpos {F : Type u_3} {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] (f : F) :
Monotone f ∀ (a : α), a 0f a 0
theorem antitone_iff_map_nonneg {F : Type u_3} {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] (f : F) :
Antitone f ∀ (a : α), a 00 f a
theorem strictMono_iff_map_pos {F : Type u_3} {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] (f : F) [inst : CovariantClass β β (fun x x_1 => x + x_1) fun x x_1 => x < x_1] :
∀ (a : α), 0 < a0 < f a
theorem strictAnti_iff_map_neg {F : Type u_3} {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] (f : F) [inst : CovariantClass β β (fun x x_1 => x + x_1) fun x x_1 => x < x_1] :
∀ (a : α), 0 < af a < 0
theorem strictMono_iff_map_neg {F : Type u_3} {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] (f : F) [inst : CovariantClass β β (fun x x_1 => x + x_1) fun x x_1 => x < x_1] :
∀ (a : α), a < 0f a < 0
theorem strictAnti_iff_map_pos {F : Type u_3} {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] (f : F) [inst : CovariantClass β β (fun x x_1 => x + x_1) fun x x_1 => x < x_1] :
∀ (a : α), a < 00 < f a
def OrderAddMonoidHom.instOrderAddMonoidHomClassOrderAddMonoidHom.proof_2 {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) (x : α) (y : α) :
Equations
• One or more equations did not get rendered due to their size.
def OrderAddMonoidHom.instOrderAddMonoidHomClassOrderAddMonoidHom.proof_3 {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) :
Equations
instance OrderAddMonoidHom.instOrderAddMonoidHomClassOrderAddMonoidHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
Equations
def OrderAddMonoidHom.instOrderAddMonoidHomClassOrderAddMonoidHom.proof_4 {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) :
Equations
def OrderAddMonoidHom.instOrderAddMonoidHomClassOrderAddMonoidHom.proof_1 {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) (g : α →+o β) (h : (fun f => (f.toAddMonoidHom).toFun) f = (fun f => (f.toAddMonoidHom).toFun) g) :
f = g
Equations
• (_ : f = g) = (_ : f = g)
instance OrderMonoidHom.instOrderMonoidHomClassOrderMonoidHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
Equations
theorem OrderAddMonoidHom.ext {α : Type u_2} {β : Type u_1} [inst : ] [inst : ] [inst : ] [inst : ] {f : α →+o β} {g : α →+o β} (h : ∀ (a : α), f a = g a) :
f = g
theorem OrderMonoidHom.ext {α : Type u_2} {β : Type u_1} [inst : ] [inst : ] [inst : ] [inst : ] {f : α →*o β} {g : α →*o β} (h : ∀ (a : α), f a = g a) :
f = g
theorem OrderAddMonoidHom.toFun_eq_coe {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) :
theorem OrderMonoidHom.toFun_eq_coe {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) :
(f.toMonoidHom).toFun = f
@[simp]
theorem OrderAddMonoidHom.coe_mk {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+ β) (h : Monotone (f).toFun) :
{ toAddMonoidHom := f, monotone' := h } = f
@[simp]
theorem OrderMonoidHom.coe_mk {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →* β) (h : Monotone (f).toFun) :
{ toMonoidHom := f, monotone' := h } = f
@[simp]
theorem OrderAddMonoidHom.mk_coe {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) (h : Monotone (f).toFun) :
{ toAddMonoidHom := f, monotone' := h } = f
@[simp]
theorem OrderMonoidHom.mk_coe {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) (h : Monotone (f).toFun) :
{ toMonoidHom := f, monotone' := h } = f
def OrderAddMonoidHom.toOrderHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) :
α →o β

Reinterpret an ordered additive monoid homomorphism as an order homomorphism.

Equations
• = { toFun := (f.toAddMonoidHom).toFun, monotone' := (_ : Monotone (f.toAddMonoidHom).toFun) }
def OrderMonoidHom.toOrderHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) :
α →o β

Reinterpret an ordered monoid homomorphism as an order homomorphism.

Equations
• = { toFun := (f.toMonoidHom).toFun, monotone' := (_ : Monotone (f.toMonoidHom).toFun) }
@[simp]
theorem OrderAddMonoidHom.coe_addMonoidHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) :
f = f
@[simp]
theorem OrderMonoidHom.coe_monoidHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) :
f = f
@[simp]
theorem OrderAddMonoidHom.coe_orderHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) :
f = f
@[simp]
theorem OrderMonoidHom.coe_orderHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) :
f = f
theorem OrderAddMonoidHom.toAddMonoidHom_injective {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
theorem OrderMonoidHom.toMonoidHom_injective {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
Function.Injective OrderMonoidHom.toMonoidHom
theorem OrderAddMonoidHom.toOrderHom_injective {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
theorem OrderMonoidHom.toOrderHom_injective {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
Function.Injective OrderMonoidHom.toOrderHom
def OrderAddMonoidHom.copy.proof_1 {α : Type u_2} {β : Type u_1} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) (f' : αβ) (h : f' = f) :
Equations
def OrderAddMonoidHom.copy {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) (f' : αβ) (h : f' = f) :
α →+o β

Copy of an OrderAddMonoidHom with a new toFun equal to the old one. Useful to fix definitional equalities.

Equations
• One or more equations did not get rendered due to their size.
def OrderAddMonoidHom.copy.proof_2 {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) (f' : αβ) (h : f' = f) :
Equations
def OrderMonoidHom.copy {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) (f' : αβ) (h : f' = f) :
α →*o β

Copy of an OrderMonoidHom with a new toFun equal to the old one. Useful to fix definitional equalities.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem OrderAddMonoidHom.coe_copy {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) (f' : αβ) (h : f' = f) :
↑() = f'
@[simp]
theorem OrderMonoidHom.coe_copy {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) (f' : αβ) (h : f' = f) :
↑() = f'
theorem OrderAddMonoidHom.copy_eq {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) (f' : αβ) (h : f' = f) :
= f
theorem OrderMonoidHom.copy_eq {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) (f' : αβ) (h : f' = f) :
= f
def OrderAddMonoidHom.id (α : Type u_1) [inst : ] [inst : ] :
α →+o α

The identity map as an ordered additive monoid homomorphism.

Equations
• One or more equations did not get rendered due to their size.
def OrderMonoidHom.id (α : Type u_1) [inst : ] [inst : ] :
α →*o α

The identity map as an ordered monoid homomorphism.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem OrderAddMonoidHom.coe_id (α : Type u_1) [inst : ] [inst : ] :
↑() = id
@[simp]
theorem OrderMonoidHom.coe_id (α : Type u_1) [inst : ] [inst : ] :
↑() = id
instance OrderAddMonoidHom.instInhabitedOrderAddMonoidHom (α : Type u_1) [inst : ] [inst : ] :
Equations
• = { default := }
instance OrderMonoidHom.instInhabitedOrderMonoidHom (α : Type u_1) [inst : ] [inst : ] :
Equations
• = { default := }
def OrderAddMonoidHom.comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →+o γ) (g : α →+o β) :
α →+o γ

Composition of OrderAddMonoidHoms as an OrderAddMonoidHom

Equations
• One or more equations did not get rendered due to their size.
def OrderMonoidHom.comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*o γ) (g : α →*o β) :
α →*o γ

Composition of OrderMonoidHoms as an OrderMonoidHom.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem OrderAddMonoidHom.coe_comp {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →+o γ) (g : α →+o β) :
↑() = f g
@[simp]
theorem OrderMonoidHom.coe_comp {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*o γ) (g : α →*o β) :
↑() = f g
@[simp]
theorem OrderAddMonoidHom.comp_apply {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →+o γ) (g : α →+o β) (a : α) :
↑() a = f (g a)
@[simp]
theorem OrderMonoidHom.comp_apply {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*o γ) (g : α →*o β) (a : α) :
↑() a = f (g a)
theorem OrderAddMonoidHom.coe_comp_addMonoidHom {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →+o γ) (g : α →+o β) :
↑() =
theorem OrderMonoidHom.coe_comp_monoidHom {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*o γ) (g : α →*o β) :
↑() = MonoidHom.comp f g
theorem OrderAddMonoidHom.coe_comp_orderHom {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →+o γ) (g : α →+o β) :
↑() = OrderHom.comp f g
theorem OrderMonoidHom.coe_comp_orderHom {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*o γ) (g : α →*o β) :
↑() = OrderHom.comp f g
@[simp]
theorem OrderAddMonoidHom.comp_assoc {α : Type u_4} {β : Type u_3} {γ : Type u_1} {δ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : γ →+o δ) (g : β →+o γ) (h : α →+o β) :
@[simp]
theorem OrderMonoidHom.comp_assoc {α : Type u_4} {β : Type u_3} {γ : Type u_1} {δ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : γ →*o δ) (g : β →*o γ) (h : α →*o β) :
@[simp]
theorem OrderAddMonoidHom.comp_id {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) :
@[simp]
theorem OrderMonoidHom.comp_id {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) :
@[simp]
theorem OrderAddMonoidHom.id_comp {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) :
@[simp]
theorem OrderMonoidHom.id_comp {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) :
theorem OrderAddMonoidHom.cancel_right {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] {g₁ : β →+o γ} {g₂ : β →+o γ} {f : α →+o β} (hf : ) :
g₁ = g₂
theorem OrderMonoidHom.cancel_right {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] {g₁ : β →*o γ} {g₂ : β →*o γ} {f : α →*o β} (hf : ) :
= g₁ = g₂
theorem OrderAddMonoidHom.cancel_left {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] {g : β →+o γ} {f₁ : α →+o β} {f₂ : α →+o β} (hg : ) :
f₁ = f₂
theorem OrderMonoidHom.cancel_left {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] {g : β →*o γ} {f₁ : α →*o β} {f₂ : α →*o β} (hg : ) :
= f₁ = f₂
def OrderAddMonoidHom.instZeroOrderAddMonoidHom.proof_1 {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] :
Equations
• (_ : Monotone fun x => AddZeroClass.toZero.1) = (_ : Monotone fun x => AddZeroClass.toZero.1)
instance OrderAddMonoidHom.instZeroOrderAddMonoidHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
Zero (α →+o β)

0 is the homomorphism sending all elements to 0.

Equations
• One or more equations did not get rendered due to their size.
instance OrderMonoidHom.instOneOrderMonoidHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
One (α →*o β)

1 is the homomorphism sending all elements to 1.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem OrderAddMonoidHom.coe_zero {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
0 = 0
@[simp]
theorem OrderMonoidHom.coe_one {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
1 = 1
@[simp]
theorem OrderAddMonoidHom.zero_apply {α : Type u_2} {β : Type u_1} [inst : ] [inst : ] [inst : ] [inst : ] (a : α) :
0 a = 0
@[simp]
theorem OrderMonoidHom.one_apply {α : Type u_2} {β : Type u_1} [inst : ] [inst : ] [inst : ] [inst : ] (a : α) :
1 a = 1
@[simp]
theorem OrderAddMonoidHom.zero_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : α →+o β) :
@[simp]
theorem OrderMonoidHom.one_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*o β) :
= 1
@[simp]
theorem OrderAddMonoidHom.comp_zero {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →+o γ) :
@[simp]
theorem OrderMonoidHom.comp_one {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*o γ) :
= 1
ZeroHom.toFun (↑(f + g)) (x + y) = ZeroHom.toFun (↑(f + g)) x + ZeroHom.toFun (↑(f + g)) y
Equations
• One or more equations did not get rendered due to their size.

For two ordered additive monoid morphisms f and g, their product is the ordered additive monoid morphism sending a to f a + g a.

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

For two ordered monoid morphisms f and g, their product is the ordered monoid morphism sending a to f a * g a.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem OrderAddMonoidHom.coe_add {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] (f : α →+o β) (g : α →+o β) :
↑(f + g) = f + g
@[simp]
theorem OrderMonoidHom.coe_mul {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] (f : α →*o β) (g : α →*o β) :
↑(f * g) = f * g
@[simp]
theorem OrderAddMonoidHom.add_apply {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] (f : α →+o β) (g : α →+o β) (a : α) :
↑(f + g) a = f a + g a
@[simp]
theorem OrderMonoidHom.mul_apply {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] (f : α →*o β) (g : α →*o β) (a : α) :
↑(f * g) a = f a * g a
theorem OrderAddMonoidHom.add_comp {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] (g₁ : β →+o γ) (g₂ : β →+o γ) (f : α →+o β) :
OrderAddMonoidHom.comp (g₁ + g₂) f =
theorem OrderMonoidHom.mul_comp {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] (g₁ : β →*o γ) (g₂ : β →*o γ) (f : α →*o β) :
OrderMonoidHom.comp (g₁ * g₂) f = *
theorem OrderAddMonoidHom.comp_add {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] (g : β →+o γ) (f₁ : α →+o β) (f₂ : α →+o β) :
OrderAddMonoidHom.comp g (f₁ + f₂) =
theorem OrderMonoidHom.comp_mul {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] (g : β →*o γ) (f₁ : α →*o β) (f₂ : α →*o β) :
OrderMonoidHom.comp g (f₁ * f₂) = *
@[simp]
theorem OrderAddMonoidHom.toAddMonoidHom_eq_coe {α : Type u_1} {β : Type u_2} {hα : } {hβ : } (f : α →+o β) :
@[simp]
theorem OrderMonoidHom.toMonoidHom_eq_coe {α : Type u_1} {β : Type u_2} {hα : } {hβ : } (f : α →*o β) :
f.toMonoidHom = f
@[simp]
theorem OrderAddMonoidHom.toOrderHom_eq_coe {α : Type u_1} {β : Type u_2} {hα : } {hβ : } (f : α →+o β) :
@[simp]
theorem OrderMonoidHom.toOrderHom_eq_coe {α : Type u_1} {β : Type u_2} {hα : } {hβ : } (f : α →*o β) :
def OrderAddMonoidHom.mk' {α : Type u_1} {β : Type u_2} {hα : } {hβ : } (f : αβ) (hf : ) (map_mul : ∀ (a b : α), f (a + b) = f a + f b) :
α →+o β

Makes an ordered additive group homomorphism from a proof that the map preserves addition.

Equations
• One or more equations did not get rendered due to their size.
def OrderAddMonoidHom.mk'.proof_1 {α : Type u_2} {β : Type u_1} {hα : } {hβ : } (f : αβ) (map_mul : ∀ (a b : α), f (a + b) = f a + f b) (x : α) (y : α) :
ZeroHom.toFun (↑(AddMonoidHom.mk' f map_mul)) (x + y) = ZeroHom.toFun (↑(AddMonoidHom.mk' f map_mul)) x + ZeroHom.toFun (↑(AddMonoidHom.mk' f map_mul)) y
Equations
• One or more equations did not get rendered due to their size.
def OrderMonoidHom.mk' {α : Type u_1} {β : Type u_2} {hα : } {hβ : } (f : αβ) (hf : ) (map_mul : ∀ (a b : α), f (a * b) = f a * f b) :
α →*o β

Makes an ordered group homomorphism from a proof that the map preserves multiplication.

Equations
• One or more equations did not get rendered due to their size.
instance OrderMonoidWithZeroHom.instOrderMonoidWithZeroHomClassOrderMonoidWithZeroHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
Equations
theorem OrderMonoidWithZeroHom.ext {α : Type u_2} {β : Type u_1} [inst : ] [inst : ] [inst : ] [inst : ] {f : α →*₀o β} {g : α →*₀o β} (h : ∀ (a : α), f a = g a) :
f = g
theorem OrderMonoidWithZeroHom.toFun_eq_coe {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀o β) :
(f.toMonoidWithZeroHom).toFun = f
@[simp]
theorem OrderMonoidWithZeroHom.coe_mk {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀ β) (h : Monotone (f).toFun) :
{ toMonoidWithZeroHom := f, monotone' := h } = f
@[simp]
theorem OrderMonoidWithZeroHom.mk_coe {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀o β) (h : Monotone (f).toFun) :
{ toMonoidWithZeroHom := f, monotone' := h } = f
def OrderMonoidWithZeroHom.toOrderMonoidHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀o β) :
α →*o β

Reinterpret an ordered monoid with zero homomorphism as an order monoid homomorphism.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem OrderMonoidWithZeroHom.coe_monoidWithZeroHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀o β) :
f = f
@[simp]
theorem OrderMonoidWithZeroHom.coe_orderMonoidHom {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀o β) :
f = f
theorem OrderMonoidWithZeroHom.toOrderMonoidHom_injective {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
Function.Injective OrderMonoidWithZeroHom.toOrderMonoidHom
theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_injective {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] :
Function.Injective OrderMonoidWithZeroHom.toMonoidWithZeroHom
def OrderMonoidWithZeroHom.copy {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀o β) (f' : αβ) (h : f' = f) :
α →*o β

Copy of an OrderMonoidWithZeroHom with a new toFun equal to the old one. Useful to fix definitional equalities.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem OrderMonoidWithZeroHom.coe_copy {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀o β) (f' : αβ) (h : f' = f) :
↑() = f'
theorem OrderMonoidWithZeroHom.copy_eq {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀o β) (f' : αβ) (h : f' = f) :
= f
def OrderMonoidWithZeroHom.id (α : Type u_1) [inst : ] [inst : ] :
α →*₀o α

The identity map as an ordered monoid with zero homomorphism.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem OrderMonoidWithZeroHom.coe_id (α : Type u_1) [inst : ] [inst : ] :
= id
Equations
def OrderMonoidWithZeroHom.comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*₀o γ) (g : α →*₀o β) :
α →*₀o γ

Composition of OrderMonoidWithZeroHoms as an OrderMonoidWithZeroHom.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem OrderMonoidWithZeroHom.coe_comp {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*₀o γ) (g : α →*₀o β) :
↑() = f g
@[simp]
theorem OrderMonoidWithZeroHom.comp_apply {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*₀o γ) (g : α →*₀o β) (a : α) :
↑() a = f (g a)
theorem OrderMonoidWithZeroHom.coe_comp_monoidWithZeroHom {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*₀o γ) (g : α →*₀o β) :
↑() =
theorem OrderMonoidWithZeroHom.coe_comp_orderMonoidHom {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : β →*₀o γ) (g : α →*₀o β) :
↑() =
@[simp]
theorem OrderMonoidWithZeroHom.comp_assoc {α : Type u_4} {β : Type u_3} {γ : Type u_1} {δ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] (f : γ →*₀o δ) (g : β →*₀o γ) (h : α →*₀o β) :
@[simp]
theorem OrderMonoidWithZeroHom.comp_id {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀o β) :
@[simp]
theorem OrderMonoidWithZeroHom.id_comp {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] (f : α →*₀o β) :
theorem OrderMonoidWithZeroHom.cancel_right {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] {g₁ : β →*₀o γ} {g₂ : β →*₀o γ} {f : α →*₀o β} (hf : ) :
g₁ = g₂
theorem OrderMonoidWithZeroHom.cancel_left {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] [inst : ] {g : β →*₀o γ} {f₁ : α →*₀o β} {f₂ : α →*₀o β} (hg : ) :
f₁ = f₂

For two ordered monoid morphisms f and g, their product is the ordered monoid morphism sending a to f a * g a.

Equations
• One or more equations did not get rendered due to their size.
@[simp]
theorem OrderMonoidWithZeroHom.coe_mul {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] (f : α →*₀o β) (g : α →*₀o β) :
↑(f * g) = f * g
@[simp]
theorem OrderMonoidWithZeroHom.mul_apply {α : Type u_1} {β : Type u_2} [inst : ] [inst : ] (f : α →*₀o β) (g : α →*₀o β) (a : α) :
↑(f * g) a = f a * g a
theorem OrderMonoidWithZeroHom.mul_comp {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] (g₁ : β →*₀o γ) (g₂ : β →*₀o γ) (f : α →*₀o β) :
theorem OrderMonoidWithZeroHom.comp_mul {α : Type u_3} {β : Type u_1} {γ : Type u_2} [inst : ] [inst : ] [inst : ] (g : β →*₀o γ) (f₁ : α →*₀o β) (f₂ : α →*₀o β) :
@[simp]
theorem OrderMonoidWithZeroHom.toMonoidWithZeroHom_eq_coe {α : Type u_1} {β : Type u_2} {hα : } {hα' : } {hβ : } {hβ' : } (f : α →*₀o β) :
f.toMonoidWithZeroHom = f
@[simp]
theorem OrderMonoidWithZeroHom.toOrderMonoidHom_eq_coe {α : Type u_1} {β : Type u_2} {hα : } {hα' : } {hβ : } {hβ' : } (f : α →*₀o β) :