mathlib documentation

algebra.order.hom.ring

Ordered ring homomorphisms #

Homomorphisms between ordered (semi)rings that respect the ordering.

Main definitions #

Notation #

Tags #

ordered ring homomorphism, order homomorphism

structure order_ring_hom (α : Type u_6) (β : Type u_7) [ordered_semiring α] [ordered_semiring β] :
Type (max u_6 u_7)

order_ring_hom α β is the type of monotone semiring homomorphisms from α to β.

When possible, instead of parametrizing results over (f : order_ring_hom α β), you should parametrize over (F : Type*) [order_ring_hom_class F α β] (f : F). When you extend this structure, make sure to extend order_ring_hom_class.

@[class]
structure order_ring_hom_class (F : Type u_6) (α : out_param (Type u_7)) (β : out_param (Type u_8)) [ordered_semiring α] [ordered_semiring β] :
Type (max u_6 u_7 u_8)

order_ring_hom_class F α β states that F is a type of ordered semiring homomorphisms. You should extend this typeclass when you extend order_ring_hom.

Instances
@[protected, instance]
def order_ring_hom.has_coe_t {F : Type u_1} {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] [order_ring_hom_class F α β] :
has_coe_t F →+*o β)
Equations

Ordered ring homomorphisms #

def order_ring_hom.to_order_add_monoid_hom {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) :
α →+o β

Reinterpret an ordered ring homomorphism as an ordered additive monoid homomorphism.

Equations
def order_ring_hom.to_order_monoid_with_zero_hom {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) :
α →*₀o β

Reinterpret an ordered ring homomorphism as an order homomorphism.

Equations
@[protected, instance]
def order_ring_hom.order_ring_hom_class {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] :
Equations
@[protected, instance]
def order_ring_hom.has_coe_to_fun {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] :
has_coe_to_fun →+*o β) (λ (_x : α →+*o β), α → β)

Helper instance for when there's too many metavariables to apply fun_like.has_coe_to_fun directly.

Equations
theorem order_ring_hom.to_fun_eq_coe {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) :
@[ext]
theorem order_ring_hom.ext {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] {f g : α →+*o β} (h : ∀ (a : α), f a = g a) :
f = g
@[simp]
theorem order_ring_hom.to_ring_hom_eq_coe {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) :
@[simp]
theorem order_ring_hom.to_order_add_monoid_hom_eq_coe {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) :
@[simp]
theorem order_ring_hom.coe_coe_ring_hom {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) :
@[simp]
theorem order_ring_hom.coe_coe_order_add_monoid_hom {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) :
@[simp]
theorem order_ring_hom.coe_coe_order_monoid_with_zero_hom {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) :
@[norm_cast]
theorem order_ring_hom.coe_ring_hom_apply {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) (a : α) :
f a = f a
@[norm_cast]
theorem order_ring_hom.coe_order_add_monoid_hom_apply {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) (a : α) :
f a = f a
@[norm_cast]
theorem order_ring_hom.coe_order_monoid_with_zero_hom_apply {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) (a : α) :
f a = f a
@[protected]
def order_ring_hom.copy {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) (f' : α → β) (h : f' = f) :
α →+*o β

Copy of a order_ring_hom with a new to_fun equal to the old one. Useful to fix definitional equalities.

Equations
@[protected]
def order_ring_hom.id (α : Type u_2) [ordered_semiring α] :
α →+*o α

The identity as an ordered ring homomorphism.

Equations
@[protected, instance]
def order_ring_hom.inhabited (α : Type u_2) [ordered_semiring α] :
Equations
@[simp]
theorem order_ring_hom.coe_id (α : Type u_2) [ordered_semiring α] :
@[simp]
theorem order_ring_hom.id_apply {α : Type u_2} [ordered_semiring α] (a : α) :
@[protected]
def order_ring_hom.comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [ordered_semiring α] [ordered_semiring β] [ordered_semiring γ] (f : β →+*o γ) (g : α →+*o β) :
α →+*o γ

Composition of two order_ring_homs as an order_ring_hom.

Equations
@[simp]
theorem order_ring_hom.coe_comp {α : Type u_2} {β : Type u_3} {γ : Type u_4} [ordered_semiring α] [ordered_semiring β] [ordered_semiring γ] (f : β →+*o γ) (g : α →+*o β) :
(f.comp g) = f g
@[simp]
theorem order_ring_hom.comp_apply {α : Type u_2} {β : Type u_3} {γ : Type u_4} [ordered_semiring α] [ordered_semiring β] [ordered_semiring γ] (f : β →+*o γ) (g : α →+*o β) (a : α) :
(f.comp g) a = f (g a)
theorem order_ring_hom.comp_assoc {α : Type u_2} {β : Type u_3} {γ : Type u_4} {δ : Type u_5} [ordered_semiring α] [ordered_semiring β] [ordered_semiring γ] [ordered_semiring δ] (f : γ →+*o δ) (g : β →+*o γ) (h : α →+*o β) :
(f.comp g).comp h = f.comp (g.comp h)
@[simp]
theorem order_ring_hom.comp_id {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) :
@[simp]
theorem order_ring_hom.id_comp {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] (f : α →+*o β) :
theorem order_ring_hom.cancel_right {α : Type u_2} {β : Type u_3} {γ : Type u_4} [ordered_semiring α] [ordered_semiring β] [ordered_semiring γ] {f₁ f₂ : β →+*o γ} {g : α →+*o β} (hg : function.surjective g) :
f₁.comp g = f₂.comp g f₁ = f₂
theorem order_ring_hom.cancel_left {α : Type u_2} {β : Type u_3} {γ : Type u_4} [ordered_semiring α] [ordered_semiring β] [ordered_semiring γ] {f : β →+*o γ} {g₁ g₂ : α →+*o β} (hf : function.injective f) :
f.comp g₁ = f.comp g₂ g₁ = g₂
@[protected, instance]
def order_ring_hom.partial_order {α : Type u_2} {β : Type u_3} [ordered_semiring α] [ordered_semiring β] :
Equations