Ordered ring homomorphisms #
Homomorphisms between ordered (semi)rings that respect the ordering.
Main definitions #
OrderRingHom
: Monotone semiring homomorphisms.OrderRingIso
: Monotone semiring isomorphisms.
Notation #
→+*o
: Ordered ring homomorphisms.≃+*o
: Ordered ring isomorphisms.
Implementation notes #
This file used to define typeclasses for order-preserving ring homomorphisms and isomorphisms.
In #10544, we migrated from assumptions like [FunLike F R S] [OrderRingHomClass F R S]
to assumptions like [FunLike F R S] [OrderHomClass F R S] [RingHomClass F R S]
,
making some typeclasses and instances irrelevant.
Tags #
ordered ring homomorphism, order homomorphism
OrderRingHom α β
is the type of monotone semiring homomorphisms from α
to β
.
When possible, instead of parametrizing results over (f : OrderRingHom α β)
,
you should parametrize over (F : Type*) [OrderRingHomClass F α β] (f : F)
.
When you extend this structure, make sure to extend OrderRingHomClass
.
- toFun : α → β
- map_one' : (↑↑self.toRingHom).toFun 1 = 1
- map_zero' : (↑↑self.toRingHom).toFun 0 = 0
- monotone' : Monotone (↑↑self.toRingHom).toFun
The proposition that the function preserves the order.
Instances For
The proposition that the function preserves the order.
OrderRingHom α β
is the type of monotone semiring homomorphisms from α
to β
.
When possible, instead of parametrizing results over (f : OrderRingHom α β)
,
you should parametrize over (F : Type*) [OrderRingHomClass F α β] (f : F)
.
When you extend this structure, make sure to extend OrderRingHomClass
.
Equations
- «term_→+*o_» = Lean.ParserDescr.trailingNode `term_→+*o_ 25 25 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " →+*o ") (Lean.ParserDescr.cat `term 26))
Instances For
OrderRingHom α β
is the type of order-preserving semiring isomorphisms between α
and β
.
When possible, instead of parametrizing results over (f : OrderRingIso α β)
,
you should parametrize over (F : Type*) [OrderRingIsoClass F α β] (f : F)
.
When you extend this structure, make sure to extend OrderRingIsoClass
.
- toFun : α → β
- invFun : β → α
- left_inv : Function.LeftInverse self.invFun self.toFun
- right_inv : Function.RightInverse self.invFun self.toFun
The proposition that the function preserves the order bijectively.
Instances For
OrderRingHom α β
is the type of order-preserving semiring isomorphisms between α
and β
.
When possible, instead of parametrizing results over (f : OrderRingIso α β)
,
you should parametrize over (F : Type*) [OrderRingIsoClass F α β] (f : F)
.
When you extend this structure, make sure to extend OrderRingIsoClass
.
Equations
- «term_≃+*o_» = Lean.ParserDescr.trailingNode `term_≃+*o_ 25 25 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≃+*o ") (Lean.ParserDescr.cat `term 26))
Instances For
Turn an element of a type F
satisfying OrderHomClass F α β
and RingHomClass F α β
into an actual OrderRingHom
.
This is declared as the default coercion from F
to α →+*o β
.
Equations
- ↑f = { toRingHom := ↑f, monotone' := ⋯ }
Instances For
Any type satisfying OrderRingHomClass
can be cast into OrderRingHom
via
OrderRingHomClass.toOrderRingHom
.
Equations
- instCoeTCOrderRingHomOfOrderHomClassOfRingHomClass = { coe := OrderRingHomClass.toOrderRingHom }
Turn an element of a type F
satisfying OrderIsoClass F α β
and RingEquivClass F α β
into an actual OrderRingIso
.
This is declared as the default coercion from F
to α ≃+*o β
.
Equations
- ↑f = { toRingEquiv := ↑f, map_le_map_iff' := ⋯ }
Instances For
Any type satisfying OrderRingIsoClass
can be cast into OrderRingIso
via
OrderRingIsoClass.toOrderRingIso
.
Equations
- instCoeTCOrderRingIsoOfOrderIsoClassOfRingEquivClass = { coe := OrderRingIsoClass.toOrderRingIso }
Ordered ring homomorphisms #
Reinterpret an ordered ring homomorphism as an ordered additive monoid homomorphism.
Equations
- f.toOrderAddMonoidHom = { toFun := (↑↑f.toRingHom).toFun, map_zero' := ⋯, map_add' := ⋯, monotone' := ⋯ }
Instances For
Reinterpret an ordered ring homomorphism as an order homomorphism.
Equations
- f.toOrderMonoidWithZeroHom = { toFun := (↑↑f.toRingHom).toFun, map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯, monotone' := ⋯ }
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Copy of an OrderRingHom
with a new toFun
equal to the old one. Useful to fix definitional
equalities.
Equations
- f.copy f' h = { toRingHom := f.copy f' h, monotone' := ⋯ }
Instances For
The identity as an ordered ring homomorphism.
Equations
- OrderRingHom.id α = { toRingHom := RingHom.id α, monotone' := ⋯ }
Instances For
Equations
- OrderRingHom.instInhabited α = { default := OrderRingHom.id α }
Composition of two OrderRingHom
s as an OrderRingHom
.
Equations
- f.comp g = { toRingHom := f.comp g.toRingHom, monotone' := ⋯ }
Instances For
Equations
- OrderRingHom.instPreorder = Preorder.lift DFunLike.coe
Equations
- OrderRingHom.instPartialOrder = PartialOrder.lift (fun (f : α →+*o β) => ⇑f) ⋯
Ordered ring isomorphisms #
The identity map as an ordered ring isomorphism.
Equations
- OrderRingIso.refl α = { toRingEquiv := RingEquiv.refl α, map_le_map_iff' := ⋯ }
Instances For
Equations
- OrderRingIso.instInhabited α = { default := OrderRingIso.refl α }
Composition of OrderRingIso
s as an OrderRingIso
.
Equations
- f.trans g = { toRingEquiv := f.trans g.toRingEquiv, map_le_map_iff' := ⋯ }
Instances For
Reinterpret an ordered ring isomorphism as an ordered ring homomorphism.
Equations
- f.toOrderRingHom = { toRingHom := f.toRingHom, monotone' := ⋯ }