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
- cardinal.linear_ordered_comm_monoid_with_zero
- nonneg.linear_ordered_comm_monoid_with_zero
- ennreal.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]
@[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 := _}