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.OrderAddMonoidIso: Ordered additive monoid isomorphisms.OrderMonoidIso: Ordered monoid isomorphisms.
Notation #
→+o: Bundled ordered additive monoid homs. Also use for additive group homs.→*o: Bundled ordered monoid homs. Also use for group homs.≃+o: Bundled ordered additive monoid isos. Also use for additive group isos.≃*o: Bundled ordered monoid isos. Also use for group isos.
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.
Removed typeclasses #
This file used to define typeclasses for order-preserving (additive) monoid homomorphisms:
OrderAddMonoidHomClass, OrderMonoidHomClass, and OrderMonoidWithZeroHomClass.
In https://github.com/leanprover-community/mathlib4/pull/10544 we migrated from these typeclasses
to assumptions like [FunLike F M N] [MonoidHomClass F M N] [OrderHomClass F M N],
making some definitions and lemmas irrelevant.
Tags #
ordered monoid, ordered group
α →+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 β),
you should parametrize over
(F : Type*) [FunLike F M N] [MonoidHomClass F M N] [OrderHomClass F M N] (f : F).
- toFun : α → β
- map_add' (x y : α) : (↑self.toAddMonoidHom).toFun (x + y) = (↑self.toAddMonoidHom).toFun x + (↑self.toAddMonoidHom).toFun y
- monotone' : Monotone (↑self.toAddMonoidHom).toFun
An
OrderAddMonoidHomis a monotone function.
Instances For
α ≃+o β is the type of monotone isomorphisms α ≃ β that preserve the OrderedAddCommMonoid
structure.
OrderAddMonoidIso is also used for ordered group isomorphisms.
When possible, instead of parametrizing results over (f : α ≃+o β),
you should parametrize over
(F : Type*) [FunLike F M N] [AddEquivClass F M N] [OrderIsoClass F M N] (f : F).
- toFun : α → β
- invFun : β → α
- left_inv : Function.LeftInverse self.invFun self.toFun
- right_inv : Function.RightInverse self.invFun self.toFun
An
OrderAddMonoidIsorespects≤.
Instances For
α →*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 β),
you should parametrize over
(F : Type*) [FunLike F M N] [MonoidHomClass F M N] [OrderHomClass F M N] (f : F).
- toFun : α → β
- map_mul' (x y : α) : (↑self.toMonoidHom).toFun (x * y) = (↑self.toMonoidHom).toFun x * (↑self.toMonoidHom).toFun y
- monotone' : Monotone (↑self.toMonoidHom).toFun
An
OrderMonoidHomis a monotone function.
Instances For
Turn an element of a type F satisfying OrderHomClass F α β and MonoidHomClass F α β
into an actual OrderMonoidHom. This is declared as the default coercion from F to α →*o β.
Equations
Instances For
Turn an element of a type F satisfying OrderHomClass F α β and AddMonoidHomClass F α β
into an actual OrderAddMonoidHom.
This is declared as the default coercion from F to α →+o β.
Equations
Instances For
Any type satisfying OrderMonoidHomClass can be cast into OrderMonoidHom via
OrderMonoidHomClass.toOrderMonoidHom.
Equations
Any type satisfying OrderAddMonoidHomClass can be cast into OrderAddMonoidHom
via OrderAddMonoidHomClass.toOrderAddMonoidHom.
Equations
α ≃*o β is the type of isomorphisms α ≃ β that preserve the OrderedCommMonoid structure.
OrderMonoidIso is also used for ordered group isomorphisms.
When possible, instead of parametrizing results over (f : α ≃*o β),
you should parametrize over
(F : Type*) [FunLike F M N] [MulEquivClass F M N] [OrderIsoClass F M N] (f : F).
- toFun : α → β
- invFun : β → α
- left_inv : Function.LeftInverse self.invFun self.toFun
- right_inv : Function.RightInverse self.invFun self.toFun
An
OrderMonoidIsorespects≤.
Instances For
Turn an element of a type F satisfying OrderIsoClass F α β and MulEquivClass F α β
into an actual OrderMonoidIso. This is declared as the default coercion from F to α ≃*o β.
Equations
Instances For
Turn an element of a type F satisfying OrderIsoClass F α β and AddEquivClass F α β
into an actual OrderAddMonoidIso.
This is declared as the default coercion from F to α ≃+o β.
Equations
Instances For
Any type satisfying OrderMonoidIsoClass can be cast into OrderMonoidIso via
OrderMonoidIsoClass.toOrderMonoidIso.
Equations
Any type satisfying OrderAddMonoidIsoClass can be cast into OrderAddMonoidIso
via OrderAddMonoidIsoClass.toOrderAddMonoidIso.
Equations
See also NonnegHomClass.apply_nonneg.
Equations
Equations
Reinterpret an ordered monoid homomorphism as an order homomorphism.
Equations
Instances For
Reinterpret an ordered additive monoid homomorphism as an order homomorphism.
Equations
Instances For
Copy of an OrderMonoidHom with a new toFun equal to the old one. Useful to fix
definitional equalities.
Equations
Instances For
Copy of an OrderAddMonoidHom with a new toFun equal to the old one. Useful to
fix definitional equalities.
Equations
Instances For
The identity map as an ordered monoid homomorphism.
Equations
Instances For
The identity map as an ordered additive monoid homomorphism.
Equations
Instances For
Equations
Equations
Composition of OrderMonoidHoms as an OrderMonoidHom.
Equations
Instances For
Composition of OrderAddMonoidHoms as an OrderAddMonoidHom
Equations
Instances For
1 is the homomorphism sending all elements to 1.
Equations
0 is the homomorphism sending all elements to 0.
Equations
For two ordered monoid morphisms f and g, their product is the ordered monoid morphism
sending a to f a * g a.
Equations
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
Makes an ordered group homomorphism from a proof that the map preserves multiplication.
Equations
Instances For
Makes an ordered additive group homomorphism from a proof that the map preserves addition.
Equations
Instances For
Makes an ordered group isomorphism from a proof that the map preserves multiplication.
Equations
Instances For
Makes an ordered additive group isomorphism from a proof that the map preserves addition.