Adjoining a zero element to an ordered monoid. #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
@[instance]
    
def
linear_ordered_comm_monoid_with_zero.to_comm_monoid_with_zero
    (α : Type u_1)
    [self : linear_ordered_comm_monoid_with_zero α] :
@[class]
    - le : α → α → Prop
 - lt : α → α → Prop
 - le_refl : ∀ (a : α), a ≤ a
 - le_trans : ∀ (a b c : α), a ≤ b → b ≤ c → a ≤ c
 - lt_iff_le_not_le : (∀ (a b : α), a < b ↔ a ≤ b ∧ ¬b ≤ a) . "order_laws_tac"
 - le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
 - le_total : ∀ (a b : α), a ≤ b ∨ b ≤ a
 - decidable_le : decidable_rel has_le.le
 - decidable_eq : decidable_eq α
 - decidable_lt : decidable_rel has_lt.lt
 - max : α → α → α
 - max_def : linear_ordered_comm_monoid_with_zero.max = max_default . "reflexivity"
 - min : α → α → α
 - min_def : linear_ordered_comm_monoid_with_zero.min = min_default . "reflexivity"
 - mul : α → α → α
 - mul_assoc : ∀ (a b c : α), a * b * c = a * (b * c)
 - one : α
 - one_mul : ∀ (a : α), 1 * a = a
 - mul_one : ∀ (a : α), a * 1 = a
 - npow : ℕ → α → α
 - npow_zero' : (∀ (x : α), linear_ordered_comm_monoid_with_zero.npow 0 x = 1) . "try_refl_tac"
 - npow_succ' : (∀ (n : ℕ) (x : α), linear_ordered_comm_monoid_with_zero.npow n.succ x = x * linear_ordered_comm_monoid_with_zero.npow n x) . "try_refl_tac"
 - mul_comm : ∀ (a b : α), a * b = b * a
 - mul_le_mul_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c * a ≤ c * b
 - zero : α
 - zero_mul : ∀ (a : α), 0 * a = 0
 - mul_zero : ∀ (a : α), a * 0 = 0
 - zero_le_one : 0 ≤ 1
 
A linearly ordered commutative monoid with a zero element.
Instances of this typeclass
- linear_ordered_comm_group_with_zero.to_linear_ordered_comm_monoid_with_zero
 - nat.linear_ordered_comm_monoid_with_zero
 - multiplicative.linear_ordered_comm_monoid_with_zero
 - with_zero.linear_ordered_comm_monoid_with_zero
 - nonneg.linear_ordered_comm_monoid_with_zero
 - ennreal.linear_ordered_comm_monoid_with_zero
 - cardinal.linear_ordered_comm_monoid_with_zero
 
Instances of other typeclasses for linear_ordered_comm_monoid_with_zero
        
        - linear_ordered_comm_monoid_with_zero.has_sizeof_inst
 
@[instance]
    
def
linear_ordered_comm_monoid_with_zero.to_linear_ordered_comm_monoid
    (α : Type u_1)
    [self : linear_ordered_comm_monoid_with_zero α] :
@[protected, instance]
    
def
linear_ordered_comm_monoid_with_zero.to_zero_le_one_class
    {α : Type u}
    [linear_ordered_comm_monoid_with_zero α] :
    Equations
@[protected, instance]
    
def
canonically_ordered_add_monoid.to_zero_le_one_class
    {α : Type u}
    [canonically_ordered_add_monoid α]
    [has_one α] :
    Equations
@[protected, instance]
    Equations
@[protected, instance]
    Equations
@[protected, instance]
    Equations
@[protected, instance]
    Equations
@[protected, instance]
    Equations
@[protected, instance]
    
def
with_zero.covariant_class_mul_le
    {α : Type u}
    [has_mul α]
    [preorder α]
    [covariant_class α α has_mul.mul has_le.le] :
@[simp]
    
theorem
with_zero.le_max_iff
    {α : Type u}
    [linear_order α]
    {a b c : α} :
↑a ≤ linear_order.max ↑b ↑c ↔ a ≤ linear_order.max b c
@[simp]
    
theorem
with_zero.min_le_iff
    {α : Type u}
    [linear_order α]
    {a b c : α} :
linear_order.min ↑a ↑b ≤ ↑c ↔ linear_order.min a b ≤ c
@[protected, instance]
    Equations
- with_zero.ordered_comm_monoid = {mul := comm_monoid_with_zero.mul with_zero.comm_monoid_with_zero, mul_assoc := _, one := comm_monoid_with_zero.one with_zero.comm_monoid_with_zero, one_mul := _, mul_one := _, npow := comm_monoid_with_zero.npow with_zero.comm_monoid_with_zero, npow_zero' := _, npow_succ' := _, mul_comm := _, le := partial_order.le with_zero.partial_order, lt := partial_order.lt with_zero.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _}
 
@[protected]
    
theorem
with_zero.covariant_class_add_le
    {α : Type u}
    [add_zero_class α]
    [preorder α]
    [covariant_class α α has_add.add has_le.le]
    (h : ∀ (a : α), 0 ≤ a) :
@[protected, reducible]
    
def
with_zero.ordered_add_comm_monoid
    {α : Type u}
    [ordered_add_comm_monoid α]
    (zero_le : ∀ (a : α), 0 ≤ a) :
If 0 is the least element in α, then with_zero α is an ordered_add_comm_monoid.
See note [reducible non-instances].
Equations
- with_zero.ordered_add_comm_monoid zero_le = {add := add_comm_monoid.add with_zero.add_comm_monoid, add_assoc := _, zero := add_comm_monoid.zero with_zero.add_comm_monoid, zero_add := _, add_zero := _, nsmul := add_comm_monoid.nsmul with_zero.add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := partial_order.le with_zero.partial_order, lt := partial_order.lt with_zero.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _}
 
@[protected, instance]
    
def
with_zero.has_exists_add_of_le
    {α : Type u_1}
    [has_add α]
    [preorder α]
    [has_exists_add_of_le α] :
@[protected, instance]
Adding a new zero to a canonically ordered additive monoid produces another one.
Equations
- with_zero.canonically_ordered_add_monoid = {add := ordered_add_comm_monoid.add (with_zero.ordered_add_comm_monoid zero_le), add_assoc := _, zero := ordered_add_comm_monoid.zero (with_zero.ordered_add_comm_monoid zero_le), zero_add := _, add_zero := _, nsmul := ordered_add_comm_monoid.nsmul (with_zero.ordered_add_comm_monoid zero_le), nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := ordered_add_comm_monoid.le (with_zero.ordered_add_comm_monoid zero_le), lt := ordered_add_comm_monoid.lt (with_zero.ordered_add_comm_monoid zero_le), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, bot := order_bot.bot with_zero.order_bot, bot_le := _, exists_add_of_le := _, le_self_add := _}
 
@[protected, instance]
    
def
with_zero.canonically_linear_ordered_add_monoid
    (α : Type u_1)
    [canonically_linear_ordered_add_monoid α] :
    Equations
- with_zero.canonically_linear_ordered_add_monoid α = {add := canonically_ordered_add_monoid.add with_zero.canonically_ordered_add_monoid, add_assoc := _, zero := canonically_ordered_add_monoid.zero with_zero.canonically_ordered_add_monoid, zero_add := _, add_zero := _, nsmul := canonically_ordered_add_monoid.nsmul with_zero.canonically_ordered_add_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := canonically_ordered_add_monoid.le with_zero.canonically_ordered_add_monoid, lt := canonically_ordered_add_monoid.lt with_zero.canonically_ordered_add_monoid, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, bot := canonically_ordered_add_monoid.bot with_zero.canonically_ordered_add_monoid, bot_le := _, exists_add_of_le := _, le_self_add := _, le_total := _, decidable_le := linear_order.decidable_le with_zero.linear_order, decidable_eq := linear_order.decidable_eq with_zero.linear_order, decidable_lt := linear_order.decidable_lt with_zero.linear_order, max := linear_order.max with_zero.linear_order, max_def := _, min := linear_order.min with_zero.linear_order, min_def := _}