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.
Remark #
Almost no monoid is actually present in this file: most assumptions have been generalized to
has_mul
or mul_one_class
.
Alias of mul_le_of_le_of_le_one
.
Alias of add_le_of_le_of_nonpos
.
Assumes left covariance. The lemma assuming right covariance is right.mul_lt_one
.
Assumes left covariance. The lemma assuming right covariance is right.add_neg
.
Assumes right covariance. The lemma assuming left covariance is left.add_neg
Assumes right covariance. The lemma assuming left covariance is left.mul_lt_one
.
Assumes left covariance.
Assumes left covariance.
Assumes left covariance.
Assumes left covariance.
Assumes left covariance.
Assumes left covariance.
Assumes right covariance.
Assumes right covariance.
Assumes right covariance.
Assumes right covariance.
Assumes right covariance.
Assumes right covariance.
A semigroup with a partial order and satisfying left_cancel_semigroup
(i.e. a * c < b * c → a < b
) is a left_cancel semigroup
.
Equations
- contravariant.to_left_cancel_semigroup = {mul := semigroup.mul _inst_1, mul_assoc := _, mul_left_cancel := _}
An additive semigroup with a partial order and satisfying left_cancel_add_semigroup
(i.e. c + a < c + b → a < b
) is a left_cancel add_semigroup
.
Equations
- contravariant.to_left_cancel_add_semigroup = {add := add_semigroup.add _inst_1, add_assoc := _, add_left_cancel := _}
An additive semigroup with a partial order and satisfying right_cancel_add_semigroup
(a + c < b + c → a < b
) is a right_cancel add_semigroup
.
Equations
- contravariant.to_right_cancel_add_semigroup = {add := add_semigroup.add _inst_1, add_assoc := _, add_right_cancel := _}
A semigroup with a partial order and satisfying right_cancel_semigroup
(i.e. a * c < b * c → a < b
) is a right_cancel semigroup
.
Equations
- contravariant.to_right_cancel_semigroup = {mul := semigroup.mul _inst_1, mul_assoc := _, mul_right_cancel := _}
Here we start using properties of one, on the left.
Here we start using properties of one, on the right.
Properties assuming partial_order
.
The product of two monotone functions is monotone.
The sum of two monotone functions is monotone.
The product of two strictly monotone functions is strictly monotone.
The sum of two strictly monotone functions is strictly monotone.
The product of a monotone function and a strictly monotone function is strictly monotone.
The sum of a monotone function and a strictly monotone function is strictly monotone.
The sum of a strictly monotone function and a monotone function is strictly monotone.
The product of a strictly monotone function and a monotone function is strictly monotone.
An element a : α
is add_le_cancellable
if x ↦ a + x
is order-reflecting.
We will make a separate version of many lemmas that require [contravariant_class α α (+) (≤)]
with
mul_le_cancellable
assumptions instead. These lemmas can then be instantiated to specific types,
like ennreal
, where we can replace the assumption add_le_cancellable x
by x ≠ ∞
.
An element a : α
is mul_le_cancellable
if x ↦ a * x
is order-reflecting.
We will make a separate version of many lemmas that require [contravariant_class α α (*) (≤)]
with
mul_le_cancellable
assumptions instead. These lemmas can then be instantiated to specific types,
like ennreal
, where we can replace the assumption add_le_cancellable x
by x ≠ ∞
.