Ordered monoids #
This file develops the basics of ordered monoids.
Implementation details #
Unfortunately, the number of '
appended to lemmas in this file
may differ between the multiplicative and the additive version of a lemma.
The reason is that we did not want to change existing names in the library.
- 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 : α), ordered_comm_monoid.npow 0 x = 1) . "try_refl_tac"
- npow_succ' : (∀ (n : ℕ) (x : α), ordered_comm_monoid.npow n.succ x = x * ordered_comm_monoid.npow n x) . "try_refl_tac"
- mul_comm : ∀ (a b : α), a * b = b * a
- 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
- mul_le_mul_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c * a ≤ c * b
An ordered commutative monoid is a commutative monoid
with a partial order such that a ≤ b → c * a ≤ c * b
(multiplication is monotone)
Instances
- submonoid_class.to_ordered_comm_monoid
- linear_ordered_comm_monoid.to_ordered_comm_monoid
- canonically_ordered_monoid.to_ordered_comm_monoid
- ordered_cancel_comm_monoid.to_ordered_comm_monoid
- with_zero.ordered_comm_monoid
- order_dual.ordered_comm_monoid
- multiplicative.ordered_comm_monoid
- associates.ordered_comm_monoid
- submonoid.to_ordered_comm_monoid
- add : α → α → α
- add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
- zero : α
- zero_add : ∀ (a : α), 0 + a = a
- add_zero : ∀ (a : α), a + 0 = a
- nsmul : ℕ → α → α
- nsmul_zero' : (∀ (x : α), ordered_add_comm_monoid.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), ordered_add_comm_monoid.nsmul n.succ x = x + ordered_add_comm_monoid.nsmul n x) . "try_refl_tac"
- add_comm : ∀ (a b : α), a + b = b + a
- 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
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
An ordered (additive) commutative monoid is a commutative monoid
with a partial order such that a ≤ b → c + a ≤ c + b
(addition is monotone)
Instances
- add_submonoid_class.to_ordered_add_comm_monoid
- linear_ordered_add_comm_monoid.to_ordered_add_comm_monoid
- canonically_ordered_add_monoid.to_ordered_add_comm_monoid
- ordered_cancel_add_comm_monoid.to_ordered_add_comm_monoid
- order_dual.ordered_add_comm_monoid
- with_top.ordered_add_comm_monoid
- with_bot.ordered_add_comm_monoid
- additive.ordered_add_comm_monoid
- rat.ordered_add_comm_monoid
- add_submonoid.to_ordered_add_comm_monoid
- submodule.to_ordered_add_comm_monoid
- enat.ordered_add_comm_monoid
- finsupp.ordered_add_comm_monoid
- real.ordered_add_comm_monoid
- nonneg.ordered_add_comm_monoid
An ordered_comm_monoid
with one-sided 'division' in the sense that
if a ≤ b
, there is some c
for which a * c = b
. This is a weaker version
of the condition on canonical orderings defined by canonically_ordered_monoid
.
An ordered_add_comm_monoid
with one-sided 'subtraction' in the sense that
if a ≤ b
, then there is some c
for which a + c = b
. This is a weaker version
of the condition on canonical orderings defined by canonically_ordered_add_monoid
.
- 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_add_comm_monoid.max = max_default . "reflexivity"
- min : α → α → α
- min_def : linear_ordered_add_comm_monoid.min = min_default . "reflexivity"
- add : α → α → α
- add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
- zero : α
- zero_add : ∀ (a : α), 0 + a = a
- add_zero : ∀ (a : α), a + 0 = a
- nsmul : ℕ → α → α
- nsmul_zero' : (∀ (x : α), linear_ordered_add_comm_monoid.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), linear_ordered_add_comm_monoid.nsmul n.succ x = x + linear_ordered_add_comm_monoid.nsmul n x) . "try_refl_tac"
- add_comm : ∀ (a b : α), a + b = b + a
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
A linearly ordered additive commutative monoid.
Instances
- add_submonoid_class.to_linear_ordered_add_comm_monoid
- linear_ordered_add_comm_monoid_with_top.to_linear_ordered_add_comm_monoid
- linear_ordered_cancel_add_comm_monoid.to_linear_ordered_add_comm_monoid
- linear_ordered_semiring.to_linear_ordered_add_comm_monoid
- order_dual.linear_ordered_add_comm_monoid
- with_bot.linear_ordered_add_comm_monoid
- additive.linear_ordered_add_comm_monoid
- add_submonoid.to_linear_ordered_add_comm_monoid
- submodule.to_linear_ordered_add_comm_monoid
- nonneg.linear_ordered_add_comm_monoid
- 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.max = max_default . "reflexivity"
- min : α → α → α
- min_def : linear_ordered_comm_monoid.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.npow 0 x = 1) . "try_refl_tac"
- npow_succ' : (∀ (n : ℕ) (x : α), linear_ordered_comm_monoid.npow n.succ x = x * linear_ordered_comm_monoid.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
A linearly ordered commutative monoid.
Instances
- 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.
- 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_add_comm_monoid_with_top.max = max_default . "reflexivity"
- min : α → α → α
- min_def : linear_ordered_add_comm_monoid_with_top.min = min_default . "reflexivity"
- add : α → α → α
- add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
- zero : α
- zero_add : ∀ (a : α), 0 + a = a
- add_zero : ∀ (a : α), a + 0 = a
- nsmul : ℕ → α → α
- nsmul_zero' : (∀ (x : α), linear_ordered_add_comm_monoid_with_top.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), linear_ordered_add_comm_monoid_with_top.nsmul n.succ x = x + linear_ordered_add_comm_monoid_with_top.nsmul n x) . "try_refl_tac"
- add_comm : ∀ (a b : α), a + b = b + a
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- top : α
- le_top : ∀ (x : α), x ≤ ⊤
- top_add' : ∀ (x : α), ⊤ + x = ⊤
A linearly ordered commutative monoid with an additively absorbing ⊤
element.
Instances should include number systems with an infinite element adjoined.`
Equations
Pullback an ordered_comm_monoid
under an injective map.
See note [reducible non-instances].
Equations
- function.injective.ordered_comm_monoid f hf one mul npow = {mul := comm_monoid.mul (function.injective.comm_monoid f hf one mul npow), mul_assoc := _, one := comm_monoid.one (function.injective.comm_monoid f hf one mul npow), one_mul := _, mul_one := _, npow := comm_monoid.npow (function.injective.comm_monoid f hf one mul npow), npow_zero' := _, npow_succ' := _, mul_comm := _, le := partial_order.le (partial_order.lift f hf), lt := partial_order.lt (partial_order.lift f hf), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _}
Pullback an ordered_add_comm_monoid
under an injective map.
Equations
- function.injective.ordered_add_comm_monoid f hf one mul npow = {add := add_comm_monoid.add (function.injective.add_comm_monoid f hf one mul npow), add_assoc := _, zero := add_comm_monoid.zero (function.injective.add_comm_monoid f hf one mul npow), zero_add := _, add_zero := _, nsmul := add_comm_monoid.nsmul (function.injective.add_comm_monoid f hf one mul npow), nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := partial_order.le (partial_order.lift f hf), lt := partial_order.lt (partial_order.lift f hf), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _}
Pullback a linear_ordered_comm_monoid
under an injective map.
See note [reducible non-instances].
Equations
- function.injective.linear_ordered_comm_monoid f hf one mul npow = {le := ordered_comm_monoid.le (function.injective.ordered_comm_monoid f hf one mul npow), lt := ordered_comm_monoid.lt (function.injective.ordered_comm_monoid f hf one mul npow), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := linear_order.decidable_le (linear_order.lift f hf), decidable_eq := linear_order.decidable_eq (linear_order.lift f hf), decidable_lt := linear_order.decidable_lt (linear_order.lift f hf), max := max (linear_order.lift f hf), max_def := _, min := min (linear_order.lift f hf), min_def := _, mul := ordered_comm_monoid.mul (function.injective.ordered_comm_monoid f hf one mul npow), mul_assoc := _, one := ordered_comm_monoid.one (function.injective.ordered_comm_monoid f hf one mul npow), one_mul := _, mul_one := _, npow := ordered_comm_monoid.npow (function.injective.ordered_comm_monoid f hf one mul npow), npow_zero' := _, npow_succ' := _, mul_comm := _, mul_le_mul_left := _}
Pullback an ordered_add_comm_monoid
under an injective map.
Equations
- function.injective.linear_ordered_add_comm_monoid f hf one mul npow = {le := ordered_add_comm_monoid.le (function.injective.ordered_add_comm_monoid f hf one mul npow), lt := ordered_add_comm_monoid.lt (function.injective.ordered_add_comm_monoid f hf one mul npow), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := linear_order.decidable_le (linear_order.lift f hf), decidable_eq := linear_order.decidable_eq (linear_order.lift f hf), decidable_lt := linear_order.decidable_lt (linear_order.lift f hf), max := max (linear_order.lift f hf), max_def := _, min := min (linear_order.lift f hf), min_def := _, add := ordered_add_comm_monoid.add (function.injective.ordered_add_comm_monoid f hf one mul npow), add_assoc := _, zero := ordered_add_comm_monoid.zero (function.injective.ordered_add_comm_monoid f hf one mul npow), zero_add := _, add_zero := _, nsmul := ordered_add_comm_monoid.nsmul (function.injective.ordered_add_comm_monoid f hf one mul npow), nsmul_zero' := _, nsmul_succ' := _, add_comm := _, add_le_add_left := _}
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
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 := _}
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 := _}
- add : α → α → α
- add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
- zero : α
- zero_add : ∀ (a : α), 0 + a = a
- add_zero : ∀ (a : α), a + 0 = a
- nsmul : ℕ → α → α
- nsmul_zero' : (∀ (x : α), canonically_ordered_add_monoid.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), canonically_ordered_add_monoid.nsmul n.succ x = x + canonically_ordered_add_monoid.nsmul n x) . "try_refl_tac"
- add_comm : ∀ (a b : α), a + b = b + a
- 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
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- bot : α
- bot_le : ∀ (x : α), ⊥ ≤ x
- le_iff_exists_add : ∀ (a b : α), a ≤ b ↔ ∃ (c : α), b = a + c
A canonically ordered additive monoid is an ordered commutative additive monoid
in which the ordering coincides with the subtractibility relation,
which is to say, a ≤ b
iff there exists c
with b = a + c
.
This is satisfied by the natural numbers, for example, but not
the integers or other nontrivial ordered_add_comm_group
s.
Instances
- canonically_linear_ordered_add_monoid.to_canonically_ordered_add_monoid
- canonically_ordered_comm_semiring.to_canonically_ordered_add_monoid
- with_zero.canonically_ordered_add_monoid
- with_top.canonically_ordered_add_monoid
- multiset.canonically_ordered_add_monoid
- punit.canonically_ordered_add_monoid
- enat.canonically_ordered_add_monoid
- finsupp.canonically_ordered_add_monoid
- nonneg.canonically_ordered_add_monoid
Equations
- 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 : α), canonically_ordered_monoid.npow 0 x = 1) . "try_refl_tac"
- npow_succ' : (∀ (n : ℕ) (x : α), canonically_ordered_monoid.npow n.succ x = x * canonically_ordered_monoid.npow n x) . "try_refl_tac"
- mul_comm : ∀ (a b : α), a * b = b * a
- 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
- mul_le_mul_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c * a ≤ c * b
- bot : α
- bot_le : ∀ (x : α), ⊥ ≤ x
- le_iff_exists_mul : ∀ (a b : α), a ≤ b ↔ ∃ (c : α), b = a * c
A canonically ordered monoid is an ordered commutative monoid
in which the ordering coincides with the divisibility relation,
which is to say, a ≤ b
iff there exists c
with b = a * c
.
Examples seem rare; it seems more likely that the order_dual
of a naturally-occurring lattice satisfies this than the lattice
itself (for example, dual of the lattice of ideals of a PID or
Dedekind domain satisfy this; collections of all things ≤ 1 seem to
be more natural that collections of all things ≥ 1).
Equations
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 := _, le_iff_exists_add := _}
- add : α → α → α
- add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
- zero : α
- zero_add : ∀ (a : α), 0 + a = a
- add_zero : ∀ (a : α), a + 0 = a
- nsmul : ℕ → α → α
- nsmul_zero' : (∀ (x : α), canonically_linear_ordered_add_monoid.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), canonically_linear_ordered_add_monoid.nsmul n.succ x = x + canonically_linear_ordered_add_monoid.nsmul n x) . "try_refl_tac"
- add_comm : ∀ (a b : α), a + b = b + a
- 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
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- bot : α
- bot_le : ∀ (x : α), ⊥ ≤ x
- le_iff_exists_add : ∀ (a b : α), a ≤ b ↔ ∃ (c : α), b = a + c
- 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 : canonically_linear_ordered_add_monoid.max = max_default . "reflexivity"
- min : α → α → α
- min_def : canonically_linear_ordered_add_monoid.min = min_default . "reflexivity"
A canonically linear-ordered additive monoid is a canonically ordered additive monoid whose ordering is a linear order.
Instances
- with_zero.canonically_linear_ordered_add_monoid
- with_top.canonically_linear_ordered_add_monoid
- nat.canonically_linear_ordered_add_monoid
- cardinal.canonically_linear_ordered_add_monoid
- nonneg.canonically_linear_ordered_add_monoid
- nnreal.canonically_linear_ordered_add_monoid
- ennreal.canonically_linear_ordered_add_monoid
- 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 : α), canonically_linear_ordered_monoid.npow 0 x = 1) . "try_refl_tac"
- npow_succ' : (∀ (n : ℕ) (x : α), canonically_linear_ordered_monoid.npow n.succ x = x * canonically_linear_ordered_monoid.npow n x) . "try_refl_tac"
- mul_comm : ∀ (a b : α), a * b = b * a
- 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
- mul_le_mul_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c * a ≤ c * b
- bot : α
- bot_le : ∀ (x : α), ⊥ ≤ x
- le_iff_exists_mul : ∀ (a b : α), a ≤ b ↔ ∃ (c : α), b = a * c
- 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 : canonically_linear_ordered_monoid.max = max_default . "reflexivity"
- min : α → α → α
- min_def : canonically_linear_ordered_monoid.min = min_default . "reflexivity"
A canonically linear-ordered monoid is a canonically ordered monoid whose ordering is a linear order.
Equations
- canonically_linear_ordered_add_monoid.semilattice_sup = {sup := lattice.sup linear_order.to_lattice, le := lattice.le linear_order.to_lattice, lt := lattice.lt linear_order.to_lattice, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _}
Equations
- canonically_linear_ordered_monoid.semilattice_sup = {sup := lattice.sup linear_order.to_lattice, le := lattice.le linear_order.to_lattice, lt := lattice.lt linear_order.to_lattice, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_sup_left := _, le_sup_right := _, sup_le := _}
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 := _, le_iff_exists_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 := max with_zero.linear_order, max_def := _, min := min with_zero.linear_order, min_def := _}
- add : α → α → α
- add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
- add_left_cancel : ∀ (a b c : α), a + b = a + c → b = c
- zero : α
- zero_add : ∀ (a : α), 0 + a = a
- add_zero : ∀ (a : α), a + 0 = a
- nsmul : ℕ → α → α
- nsmul_zero' : (∀ (x : α), ordered_cancel_add_comm_monoid.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), ordered_cancel_add_comm_monoid.nsmul n.succ x = x + ordered_cancel_add_comm_monoid.nsmul n x) . "try_refl_tac"
- add_comm : ∀ (a b : α), a + b = b + a
- 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
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- le_of_add_le_add_left : ∀ (a b c : α), a + b ≤ a + c → b ≤ c
An ordered cancellative additive commutative monoid is an additive commutative monoid with a partial order, in which addition is cancellative and monotone.
Instances
- add_submonoid_class.to_ordered_cancel_add_comm_monoid
- linear_ordered_cancel_add_comm_monoid.to_ordered_cancel_add_comm_monoid
- ordered_add_comm_group.to_ordered_cancel_add_comm_monoid
- ordered_semiring.to_ordered_cancel_add_comm_monoid
- order_dual.ordered_cancel_add_comm_monoid
- prod.ordered_cancel_add_comm_monoid
- additive.ordered_cancel_add_comm_monoid
- multiset.ordered_cancel_add_comm_monoid
- rat.ordered_cancel_add_comm_monoid
- add_submonoid.to_ordered_cancel_add_comm_monoid
- submodule.to_ordered_cancel_add_comm_monoid
- finsupp.ordered_cancel_add_comm_monoid
- real.ordered_cancel_add_comm_monoid
- nonneg.ordered_cancel_add_comm_monoid
- mul : α → α → α
- mul_assoc : ∀ (a b c : α), (a * b) * c = a * b * c
- mul_left_cancel : ∀ (a b c : α), a * b = a * c → b = c
- one : α
- one_mul : ∀ (a : α), 1 * a = a
- mul_one : ∀ (a : α), a * 1 = a
- npow : ℕ → α → α
- npow_zero' : (∀ (x : α), ordered_cancel_comm_monoid.npow 0 x = 1) . "try_refl_tac"
- npow_succ' : (∀ (n : ℕ) (x : α), ordered_cancel_comm_monoid.npow n.succ x = x * ordered_cancel_comm_monoid.npow n x) . "try_refl_tac"
- mul_comm : ∀ (a b : α), a * b = b * a
- 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
- mul_le_mul_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c * a ≤ c * b
- le_of_mul_le_mul_left : ∀ (a b c : α), a * b ≤ a * c → b ≤ c
An ordered cancellative commutative monoid is a commutative monoid with a partial order, in which multiplication is cancellative and monotone.
Instances
- submonoid_class.to_ordered_cancel_comm_monoid
- linear_ordered_cancel_comm_monoid.to_ordered_cancel_comm_monoid
- ordered_comm_group.to_ordered_cancel_comm_monoid
- order_dual.ordered_cancel_comm_monoid
- prod.ordered_cancel_comm_monoid
- multiplicative.ordered_cancel_comm_monoid
- pnat.ordered_cancel_comm_monoid
- submonoid.to_ordered_cancel_comm_monoid
Equations
- ordered_cancel_add_comm_monoid.to_ordered_add_comm_monoid = {add := ordered_cancel_add_comm_monoid.add _inst_1, add_assoc := _, zero := ordered_cancel_add_comm_monoid.zero _inst_1, zero_add := _, add_zero := _, nsmul := ordered_cancel_add_comm_monoid.nsmul _inst_1, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := ordered_cancel_add_comm_monoid.le _inst_1, lt := ordered_cancel_add_comm_monoid.lt _inst_1, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _}
Equations
- ordered_cancel_comm_monoid.to_ordered_comm_monoid = {mul := ordered_cancel_comm_monoid.mul _inst_1, mul_assoc := _, one := ordered_cancel_comm_monoid.one _inst_1, one_mul := _, mul_one := _, npow := ordered_cancel_comm_monoid.npow _inst_1, npow_zero' := _, npow_succ' := _, mul_comm := _, le := ordered_cancel_comm_monoid.le _inst_1, lt := ordered_cancel_comm_monoid.lt _inst_1, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _}
Pullback an ordered_cancel_add_comm_monoid
under an injective map.
Equations
- function.injective.ordered_cancel_add_comm_monoid f hf one mul npow = {add := add_left_cancel_semigroup.add (function.injective.add_left_cancel_semigroup f hf mul), add_assoc := _, add_left_cancel := _, zero := ordered_add_comm_monoid.zero (function.injective.ordered_add_comm_monoid f hf one mul npow), zero_add := _, add_zero := _, nsmul := ordered_add_comm_monoid.nsmul (function.injective.ordered_add_comm_monoid f hf one mul npow), nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := ordered_add_comm_monoid.le (function.injective.ordered_add_comm_monoid f hf one mul npow), lt := ordered_add_comm_monoid.lt (function.injective.ordered_add_comm_monoid f hf one mul npow), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, le_of_add_le_add_left := _}
Pullback an ordered_cancel_comm_monoid
under an injective map.
See note [reducible non-instances].
Equations
- function.injective.ordered_cancel_comm_monoid f hf one mul npow = {mul := left_cancel_semigroup.mul (function.injective.left_cancel_semigroup f hf mul), mul_assoc := _, mul_left_cancel := _, one := ordered_comm_monoid.one (function.injective.ordered_comm_monoid f hf one mul npow), one_mul := _, mul_one := _, npow := ordered_comm_monoid.npow (function.injective.ordered_comm_monoid f hf one mul npow), npow_zero' := _, npow_succ' := _, mul_comm := _, le := ordered_comm_monoid.le (function.injective.ordered_comm_monoid f hf one mul npow), lt := ordered_comm_monoid.lt (function.injective.ordered_comm_monoid f hf one mul npow), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _, le_of_mul_le_mul_left := _}
Some lemmas about types that have an ordering and a binary operation, with no rules relating them.
- add : α → α → α
- add_assoc : ∀ (a b c : α), a + b + c = a + (b + c)
- add_left_cancel : ∀ (a b c : α), a + b = a + c → b = c
- zero : α
- zero_add : ∀ (a : α), 0 + a = a
- add_zero : ∀ (a : α), a + 0 = a
- nsmul : ℕ → α → α
- nsmul_zero' : (∀ (x : α), linear_ordered_cancel_add_comm_monoid.nsmul 0 x = 0) . "try_refl_tac"
- nsmul_succ' : (∀ (n : ℕ) (x : α), linear_ordered_cancel_add_comm_monoid.nsmul n.succ x = x + linear_ordered_cancel_add_comm_monoid.nsmul n x) . "try_refl_tac"
- add_comm : ∀ (a b : α), a + b = b + a
- 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
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- le_of_add_le_add_left : ∀ (a b c : α), a + b ≤ a + c → b ≤ c
- 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_cancel_add_comm_monoid.max = max_default . "reflexivity"
- min : α → α → α
- min_def : linear_ordered_cancel_add_comm_monoid.min = min_default . "reflexivity"
A linearly ordered cancellative additive commutative monoid is an additive commutative monoid with a decidable linear order in which addition is cancellative and monotone.
Instances
- add_submonoid_class.to_linear_ordered_cancel_add_comm_monoid
- linear_ordered_add_comm_group.to_linear_ordered_cancel_add_comm_monoid
- order_dual.linear_ordered_cancel_add_comm_monoid
- nat.linear_ordered_cancel_add_comm_monoid
- add_submonoid.to_linear_ordered_cancel_add_comm_monoid
- punit.linear_ordered_cancel_add_comm_monoid
- submodule.to_linear_ordered_cancel_add_comm_monoid
- nonneg.linear_ordered_cancel_add_comm_monoid
- mul : α → α → α
- mul_assoc : ∀ (a b c : α), (a * b) * c = a * b * c
- mul_left_cancel : ∀ (a b c : α), a * b = a * c → b = c
- one : α
- one_mul : ∀ (a : α), 1 * a = a
- mul_one : ∀ (a : α), a * 1 = a
- npow : ℕ → α → α
- npow_zero' : (∀ (x : α), linear_ordered_cancel_comm_monoid.npow 0 x = 1) . "try_refl_tac"
- npow_succ' : (∀ (n : ℕ) (x : α), linear_ordered_cancel_comm_monoid.npow n.succ x = x * linear_ordered_cancel_comm_monoid.npow n x) . "try_refl_tac"
- mul_comm : ∀ (a b : α), a * b = b * a
- 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
- mul_le_mul_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c * a ≤ c * b
- le_of_mul_le_mul_left : ∀ (a b c : α), a * b ≤ a * c → b ≤ c
- 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_cancel_comm_monoid.max = max_default . "reflexivity"
- min : α → α → α
- min_def : linear_ordered_cancel_comm_monoid.min = min_default . "reflexivity"
A linearly ordered cancellative commutative monoid is a commutative monoid with a linear order in which multiplication is cancellative and monotone.
Pullback a linear_ordered_cancel_comm_monoid
under an injective map.
See note [reducible non-instances].
Equations
- function.injective.linear_ordered_cancel_comm_monoid f hf one mul npow = {mul := linear_ordered_comm_monoid.mul (function.injective.linear_ordered_comm_monoid f hf one mul npow), mul_assoc := _, mul_left_cancel := _, one := linear_ordered_comm_monoid.one (function.injective.linear_ordered_comm_monoid f hf one mul npow), one_mul := _, mul_one := _, npow := linear_ordered_comm_monoid.npow (function.injective.linear_ordered_comm_monoid f hf one mul npow), npow_zero' := _, npow_succ' := _, mul_comm := _, le := linear_ordered_comm_monoid.le (function.injective.linear_ordered_comm_monoid f hf one mul npow), lt := linear_ordered_comm_monoid.lt (function.injective.linear_ordered_comm_monoid f hf one mul npow), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _, le_of_mul_le_mul_left := _, le_total := _, decidable_le := linear_ordered_comm_monoid.decidable_le (function.injective.linear_ordered_comm_monoid f hf one mul npow), decidable_eq := linear_ordered_comm_monoid.decidable_eq (function.injective.linear_ordered_comm_monoid f hf one mul npow), decidable_lt := linear_ordered_comm_monoid.decidable_lt (function.injective.linear_ordered_comm_monoid f hf one mul npow), max := linear_ordered_comm_monoid.max (function.injective.linear_ordered_comm_monoid f hf one mul npow), max_def := _, min := linear_ordered_comm_monoid.min (function.injective.linear_ordered_comm_monoid f hf one mul npow), min_def := _}
Pullback a linear_ordered_cancel_add_comm_monoid
under an injective map.
Equations
- function.injective.linear_ordered_cancel_add_comm_monoid f hf one mul npow = {add := linear_ordered_add_comm_monoid.add (function.injective.linear_ordered_add_comm_monoid f hf one mul npow), add_assoc := _, add_left_cancel := _, zero := linear_ordered_add_comm_monoid.zero (function.injective.linear_ordered_add_comm_monoid f hf one mul npow), zero_add := _, add_zero := _, nsmul := linear_ordered_add_comm_monoid.nsmul (function.injective.linear_ordered_add_comm_monoid f hf one mul npow), nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := linear_ordered_add_comm_monoid.le (function.injective.linear_ordered_add_comm_monoid f hf one mul npow), lt := linear_ordered_add_comm_monoid.lt (function.injective.linear_ordered_add_comm_monoid f hf one mul npow), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, le_of_add_le_add_left := _, le_total := _, decidable_le := linear_ordered_add_comm_monoid.decidable_le (function.injective.linear_ordered_add_comm_monoid f hf one mul npow), decidable_eq := linear_ordered_add_comm_monoid.decidable_eq (function.injective.linear_ordered_add_comm_monoid f hf one mul npow), decidable_lt := linear_ordered_add_comm_monoid.decidable_lt (function.injective.linear_ordered_add_comm_monoid f hf one mul npow), max := linear_ordered_add_comm_monoid.max (function.injective.linear_ordered_add_comm_monoid f hf one mul npow), max_def := _, min := linear_ordered_add_comm_monoid.min (function.injective.linear_ordered_add_comm_monoid f hf one mul npow), min_def := _}
Order dual #
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
- order_dual.ordered_add_comm_monoid = {add := add_comm_monoid.add order_dual.add_comm_monoid, add_assoc := _, zero := add_comm_monoid.zero order_dual.add_comm_monoid, zero_add := _, add_zero := _, nsmul := add_comm_monoid.nsmul order_dual.add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := partial_order.le (order_dual.partial_order α), lt := partial_order.lt (order_dual.partial_order α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _}
Equations
- order_dual.ordered_comm_monoid = {mul := comm_monoid.mul order_dual.comm_monoid, mul_assoc := _, one := comm_monoid.one order_dual.comm_monoid, one_mul := _, mul_one := _, npow := comm_monoid.npow order_dual.comm_monoid, npow_zero' := _, npow_succ' := _, mul_comm := _, le := partial_order.le (order_dual.partial_order α), lt := partial_order.lt (order_dual.partial_order α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _}
Equations
- order_dual.ordered_cancel_comm_monoid = {mul := ordered_comm_monoid.mul order_dual.ordered_comm_monoid, mul_assoc := _, mul_left_cancel := _, one := ordered_comm_monoid.one order_dual.ordered_comm_monoid, one_mul := _, mul_one := _, npow := ordered_comm_monoid.npow order_dual.ordered_comm_monoid, npow_zero' := _, npow_succ' := _, mul_comm := _, le := ordered_comm_monoid.le order_dual.ordered_comm_monoid, lt := ordered_comm_monoid.lt order_dual.ordered_comm_monoid, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _, le_of_mul_le_mul_left := _}
Equations
- order_dual.ordered_cancel_add_comm_monoid = {add := ordered_add_comm_monoid.add order_dual.ordered_add_comm_monoid, add_assoc := _, add_left_cancel := _, zero := ordered_add_comm_monoid.zero order_dual.ordered_add_comm_monoid, zero_add := _, add_zero := _, nsmul := ordered_add_comm_monoid.nsmul order_dual.ordered_add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := ordered_add_comm_monoid.le order_dual.ordered_add_comm_monoid, lt := ordered_add_comm_monoid.lt order_dual.ordered_add_comm_monoid, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, le_of_add_le_add_left := _}
Equations
- order_dual.linear_ordered_cancel_comm_monoid = {mul := ordered_cancel_comm_monoid.mul order_dual.ordered_cancel_comm_monoid, mul_assoc := _, mul_left_cancel := _, one := ordered_cancel_comm_monoid.one order_dual.ordered_cancel_comm_monoid, one_mul := _, mul_one := _, npow := ordered_cancel_comm_monoid.npow order_dual.ordered_cancel_comm_monoid, npow_zero' := _, npow_succ' := _, mul_comm := _, le := linear_order.le (order_dual.linear_order α), lt := linear_order.lt (order_dual.linear_order α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _, le_of_mul_le_mul_left := _, le_total := _, decidable_le := linear_order.decidable_le (order_dual.linear_order α), decidable_eq := linear_order.decidable_eq (order_dual.linear_order α), decidable_lt := linear_order.decidable_lt (order_dual.linear_order α), max := max (order_dual.linear_order α), max_def := _, min := min (order_dual.linear_order α), min_def := _}
Equations
- order_dual.linear_ordered_cancel_add_comm_monoid = {add := ordered_cancel_add_comm_monoid.add order_dual.ordered_cancel_add_comm_monoid, add_assoc := _, add_left_cancel := _, zero := ordered_cancel_add_comm_monoid.zero order_dual.ordered_cancel_add_comm_monoid, zero_add := _, add_zero := _, nsmul := ordered_cancel_add_comm_monoid.nsmul order_dual.ordered_cancel_add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := linear_order.le (order_dual.linear_order α), lt := linear_order.lt (order_dual.linear_order α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, le_of_add_le_add_left := _, le_total := _, decidable_le := linear_order.decidable_le (order_dual.linear_order α), decidable_eq := linear_order.decidable_eq (order_dual.linear_order α), decidable_lt := linear_order.decidable_lt (order_dual.linear_order α), max := max (order_dual.linear_order α), max_def := _, min := min (order_dual.linear_order α), min_def := _}
Equations
- order_dual.linear_ordered_add_comm_monoid = {le := linear_order.le (order_dual.linear_order α), lt := linear_order.lt (order_dual.linear_order α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := linear_order.decidable_le (order_dual.linear_order α), decidable_eq := linear_order.decidable_eq (order_dual.linear_order α), decidable_lt := linear_order.decidable_lt (order_dual.linear_order α), max := max (order_dual.linear_order α), max_def := _, min := min (order_dual.linear_order α), min_def := _, add := ordered_add_comm_monoid.add order_dual.ordered_add_comm_monoid, add_assoc := _, zero := ordered_add_comm_monoid.zero order_dual.ordered_add_comm_monoid, zero_add := _, add_zero := _, nsmul := ordered_add_comm_monoid.nsmul order_dual.ordered_add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, add_le_add_left := _}
Equations
- order_dual.linear_ordered_comm_monoid = {le := linear_order.le (order_dual.linear_order α), lt := linear_order.lt (order_dual.linear_order α), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := linear_order.decidable_le (order_dual.linear_order α), decidable_eq := linear_order.decidable_eq (order_dual.linear_order α), decidable_lt := linear_order.decidable_lt (order_dual.linear_order α), max := max (order_dual.linear_order α), max_def := _, min := min (order_dual.linear_order α), min_def := _, mul := ordered_comm_monoid.mul order_dual.ordered_comm_monoid, mul_assoc := _, one := ordered_comm_monoid.one order_dual.ordered_comm_monoid, one_mul := _, mul_one := _, npow := ordered_comm_monoid.npow order_dual.ordered_comm_monoid, npow_zero' := _, npow_succ' := _, mul_comm := _, mul_le_mul_left := _}
Equations
- prod.ordered_cancel_comm_monoid = {mul := cancel_comm_monoid.mul prod.cancel_comm_monoid, mul_assoc := _, mul_left_cancel := _, one := cancel_comm_monoid.one prod.cancel_comm_monoid, one_mul := _, mul_one := _, npow := cancel_comm_monoid.npow prod.cancel_comm_monoid, npow_zero' := _, npow_succ' := _, mul_comm := _, le := partial_order.le (prod.partial_order M N), lt := partial_order.lt (prod.partial_order M N), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _, le_of_mul_le_mul_left := _}
Equations
- prod.ordered_cancel_add_comm_monoid = {add := add_cancel_comm_monoid.add prod.cancel_add_comm_monoid, add_assoc := _, add_left_cancel := _, zero := add_cancel_comm_monoid.zero prod.cancel_add_comm_monoid, zero_add := _, add_zero := _, nsmul := add_cancel_comm_monoid.nsmul prod.cancel_add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := partial_order.le (prod.partial_order M N), lt := partial_order.lt (prod.partial_order M N), le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, le_of_add_le_add_left := _}
Equations
- with_top.has_one = {one := ↑1}
Equations
- with_top.has_zero = {zero := ↑0}
Equations
- with_top.has_add = {add := λ (o₁ o₂ : with_top α), option.bind o₁ (λ (a : α), option.map (has_add.add a) o₂)}
Equations
Equations
- with_top.add_comm_semigroup = {add := add_semigroup.add with_top.add_semigroup, add_assoc := _, add_comm := _}
Equations
- with_top.add_zero_class = {zero := 0, add := has_add.add with_top.has_add, zero_add := _, add_zero := _}
Equations
- with_top.add_monoid = {add := add_zero_class.add with_top.add_zero_class, add_assoc := _, zero := add_zero_class.zero with_top.add_zero_class, zero_add := _, add_zero := _, nsmul := nsmul_rec (add_zero_class.to_has_add (with_top α)), nsmul_zero' := _, nsmul_succ' := _}
Equations
- with_top.add_comm_monoid = {add := add_monoid.add with_top.add_monoid, add_assoc := _, zero := add_monoid.zero with_top.add_monoid, zero_add := _, add_zero := _, nsmul := add_monoid.nsmul with_top.add_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _}
Equations
- with_top.ordered_add_comm_monoid = {add := add_comm_monoid.add with_top.add_comm_monoid, add_assoc := _, zero := add_comm_monoid.zero with_top.add_comm_monoid, zero_add := _, add_zero := _, nsmul := add_comm_monoid.nsmul with_top.add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := partial_order.le with_top.partial_order, lt := partial_order.lt with_top.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _}
Equations
- with_top.linear_ordered_add_comm_monoid_with_top = {le := linear_order.le with_top.linear_order, lt := linear_order.lt with_top.linear_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := linear_order.decidable_le with_top.linear_order, decidable_eq := linear_order.decidable_eq with_top.linear_order, decidable_lt := linear_order.decidable_lt with_top.linear_order, max := max with_top.linear_order, max_def := _, min := min with_top.linear_order, min_def := _, add := ordered_add_comm_monoid.add with_top.ordered_add_comm_monoid, add_assoc := _, zero := ordered_add_comm_monoid.zero with_top.ordered_add_comm_monoid, zero_add := _, add_zero := _, nsmul := ordered_add_comm_monoid.nsmul with_top.ordered_add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, add_le_add_left := _, top := order_top.top with_top.order_top, le_top := _, top_add' := _}
Equations
- with_top.canonically_ordered_add_monoid = {add := ordered_add_comm_monoid.add with_top.ordered_add_comm_monoid, add_assoc := _, zero := ordered_add_comm_monoid.zero with_top.ordered_add_comm_monoid, zero_add := _, add_zero := _, nsmul := ordered_add_comm_monoid.nsmul with_top.ordered_add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := ordered_add_comm_monoid.le with_top.ordered_add_comm_monoid, lt := ordered_add_comm_monoid.lt with_top.ordered_add_comm_monoid, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, bot := order_bot.bot with_top.order_bot, bot_le := _, le_iff_exists_add := _}
Equations
- with_top.canonically_linear_ordered_add_monoid = {add := canonically_ordered_add_monoid.add with_top.canonically_ordered_add_monoid, add_assoc := _, zero := canonically_ordered_add_monoid.zero with_top.canonically_ordered_add_monoid, zero_add := _, add_zero := _, nsmul := canonically_ordered_add_monoid.nsmul with_top.canonically_ordered_add_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := canonically_ordered_add_monoid.le with_top.canonically_ordered_add_monoid, lt := canonically_ordered_add_monoid.lt with_top.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_top.canonically_ordered_add_monoid, bot_le := _, le_iff_exists_add := _, le_total := _, decidable_le := linear_order.decidable_le with_top.linear_order, decidable_eq := linear_order.decidable_eq with_top.linear_order, decidable_lt := linear_order.decidable_lt with_top.linear_order, max := max with_top.linear_order, max_def := _, min := min with_top.linear_order, min_def := _}
Coercion from α
to with_top α
as an add_monoid_hom
.
Equations
- with_top.coe_add_hom = {to_fun := coe coe_to_lift, map_zero' := _, map_add' := _}
Equations
Equations
Equations
Equations
Equations
Equations
Equations
- with_bot.ordered_add_comm_monoid = {add := add_comm_monoid.add with_bot.add_comm_monoid, add_assoc := _, zero := add_comm_monoid.zero with_bot.add_comm_monoid, zero_add := _, add_zero := _, nsmul := add_comm_monoid.nsmul with_bot.add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := partial_order.le with_bot.partial_order, lt := partial_order.lt with_bot.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _}
Equations
- with_bot.linear_ordered_add_comm_monoid = {le := linear_order.le with_bot.linear_order, lt := linear_order.lt with_bot.linear_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := linear_order.decidable_le with_bot.linear_order, decidable_eq := linear_order.decidable_eq with_bot.linear_order, decidable_lt := linear_order.decidable_lt with_bot.linear_order, max := max with_bot.linear_order, max_def := _, min := min with_bot.linear_order, min_def := _, add := ordered_add_comm_monoid.add with_bot.ordered_add_comm_monoid, add_assoc := _, zero := ordered_add_comm_monoid.zero with_bot.ordered_add_comm_monoid, zero_add := _, add_zero := _, nsmul := ordered_add_comm_monoid.nsmul with_bot.ordered_add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, add_le_add_left := _}
Equations
Equations
Equations
Equations
Equations
Equations
Equations
- multiplicative.ordered_comm_monoid = {mul := comm_monoid.mul multiplicative.comm_monoid, mul_assoc := _, one := comm_monoid.one multiplicative.comm_monoid, one_mul := _, mul_one := _, npow := comm_monoid.npow multiplicative.comm_monoid, npow_zero' := _, npow_succ' := _, mul_comm := _, le := partial_order.le multiplicative.partial_order, lt := partial_order.lt multiplicative.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _}
Equations
- additive.ordered_add_comm_monoid = {add := add_comm_monoid.add additive.add_comm_monoid, add_assoc := _, zero := add_comm_monoid.zero additive.add_comm_monoid, zero_add := _, add_zero := _, nsmul := add_comm_monoid.nsmul additive.add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := partial_order.le additive.partial_order, lt := partial_order.lt additive.partial_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _}
Equations
- multiplicative.ordered_cancel_comm_monoid = {mul := left_cancel_semigroup.mul multiplicative.left_cancel_semigroup, mul_assoc := _, mul_left_cancel := _, one := ordered_comm_monoid.one multiplicative.ordered_comm_monoid, one_mul := _, mul_one := _, npow := ordered_comm_monoid.npow multiplicative.ordered_comm_monoid, npow_zero' := _, npow_succ' := _, mul_comm := _, le := ordered_comm_monoid.le multiplicative.ordered_comm_monoid, lt := ordered_comm_monoid.lt multiplicative.ordered_comm_monoid, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, mul_le_mul_left := _, le_of_mul_le_mul_left := _}
Equations
- additive.ordered_cancel_add_comm_monoid = {add := add_left_cancel_semigroup.add additive.add_left_cancel_semigroup, add_assoc := _, add_left_cancel := _, zero := ordered_add_comm_monoid.zero additive.ordered_add_comm_monoid, zero_add := _, add_zero := _, nsmul := ordered_add_comm_monoid.nsmul additive.ordered_add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, le := ordered_add_comm_monoid.le additive.ordered_add_comm_monoid, lt := ordered_add_comm_monoid.lt additive.ordered_add_comm_monoid, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, add_le_add_left := _, le_of_add_le_add_left := _}
Equations
- multiplicative.linear_ordered_comm_monoid = {le := linear_order.le multiplicative.linear_order, lt := linear_order.lt multiplicative.linear_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := linear_order.decidable_le multiplicative.linear_order, decidable_eq := linear_order.decidable_eq multiplicative.linear_order, decidable_lt := linear_order.decidable_lt multiplicative.linear_order, max := max multiplicative.linear_order, max_def := _, min := min multiplicative.linear_order, min_def := _, mul := ordered_comm_monoid.mul multiplicative.ordered_comm_monoid, mul_assoc := _, one := ordered_comm_monoid.one multiplicative.ordered_comm_monoid, one_mul := _, mul_one := _, npow := ordered_comm_monoid.npow multiplicative.ordered_comm_monoid, npow_zero' := _, npow_succ' := _, mul_comm := _, mul_le_mul_left := _}
Equations
- additive.linear_ordered_add_comm_monoid = {le := linear_order.le additive.linear_order, lt := linear_order.lt additive.linear_order, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := linear_order.decidable_le additive.linear_order, decidable_eq := linear_order.decidable_eq additive.linear_order, decidable_lt := linear_order.decidable_lt additive.linear_order, max := max additive.linear_order, max_def := _, min := min additive.linear_order, min_def := _, add := ordered_add_comm_monoid.add additive.ordered_add_comm_monoid, add_assoc := _, zero := ordered_add_comm_monoid.zero additive.ordered_add_comm_monoid, zero_add := _, add_zero := _, nsmul := ordered_add_comm_monoid.nsmul additive.ordered_add_comm_monoid, nsmul_zero' := _, nsmul_succ' := _, add_comm := _, add_le_add_left := _}
Making an additive monoid multiplicative then adding a zero is the same as adding a bottom element then making it multiplicative.
Equations
The order embedding sending b
to a * b
, for some fixed a
.
See also order_iso.mul_left
when working in an ordered group.
Equations
- order_embedding.mul_left m = order_embedding.of_strict_mono (λ (n : α), m * n) _
The order embedding sending b
to a + b
, for some fixed a
.
See also order_iso.add_left
when working in an additive ordered group.
Equations
- order_embedding.add_left m = order_embedding.of_strict_mono (λ (n : α), m + n) _
The order embedding sending b
to b * a
, for some fixed a
.
See also order_iso.mul_right
when working in an ordered group.
Equations
- order_embedding.mul_right m = order_embedding.of_strict_mono (λ (n : α), n * m) _
The order embedding sending b
to b + a
, for some fixed a
.
See also order_iso.add_right
when working in an additive ordered group.
Equations
- order_embedding.add_right m = order_embedding.of_strict_mono (λ (n : α), n + m) _