Canonically ordered monoids #
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 OrderedAddCommGroup
s.
- add : α → α → α
- zero : α
- nsmul_zero : ∀ (x : α), AddMonoid.nsmul 0 x = 0
- nsmul_succ : ∀ (n : ℕ) (x : α), AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- bot : α
For
a ≤ b
, there is ac
sob = a + c
.For any
a
andb
,a ≤ a + b
Instances
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 OrderDual
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).
- mul : α → α → α
- one : α
- npow_zero : ∀ (x : α), Monoid.npow 0 x = 1
- npow_succ : ∀ (n : ℕ) (x : α), Monoid.npow (n + 1) x = Monoid.npow n x * x
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- mul_le_mul_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c * a ≤ c * b
- bot : α
For
a ≤ b
, there is ac
sob = a * c
.For any
a
andb
,a ≤ a * b
Instances
Equations
- CanonicallyOrderedCommMonoid.toUniqueUnits = { toInhabited := Units.instInhabited, uniq := ⋯ }
Equations
- CanonicallyOrderedAddCommMonoid.toUniqueAddUnits = { toInhabited := AddUnits.instInhabited, uniq := ⋯ }
Alias of mul_eq_one
.
Alias of add_eq_zero
.
A canonically linear-ordered additive monoid is a canonically ordered additive monoid whose ordering is a linear order.
- add : α → α → α
- zero : α
- nsmul_zero : ∀ (x : α), AddMonoid.nsmul 0 x = 0
- nsmul_succ : ∀ (n : ℕ) (x : α), AddMonoid.nsmul (n + 1) x = AddMonoid.nsmul n x + x
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- add_le_add_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c + a ≤ c + b
- bot : α
- exists_add_of_le : ∀ {a b : α}, a ≤ b → ∃ (c : α), b = a + c
- le_self_add : ∀ (a b : α), a ≤ a + b
- min : α → α → α
- max : α → α → α
- decidableLE : DecidableRel fun (x1 x2 : α) => x1 ≤ x2
- decidableLT : DecidableRel fun (x1 x2 : α) => x1 < x2
- compare_eq_compareOfLessAndEq : ∀ (a b : α), compare a b = compareOfLessAndEq a b
Instances
A canonically linear-ordered monoid is a canonically ordered monoid whose ordering is a linear order.
- mul : α → α → α
- one : α
- npow_zero : ∀ (x : α), Monoid.npow 0 x = 1
- npow_succ : ∀ (n : ℕ) (x : α), Monoid.npow (n + 1) x = Monoid.npow n x * x
- le_antisymm : ∀ (a b : α), a ≤ b → b ≤ a → a = b
- mul_le_mul_left : ∀ (a b : α), a ≤ b → ∀ (c : α), c * a ≤ c * b
- bot : α
- exists_mul_of_le : ∀ {a b : α}, a ≤ b → ∃ (c : α), b = a * c
- le_self_mul : ∀ (a b : α), a ≤ a * b
- min : α → α → α
- max : α → α → α
- decidableLE : DecidableRel fun (x1 x2 : α) => x1 ≤ x2
- decidableLT : DecidableRel fun (x1 x2 : α) => x1 < x2
- compare_eq_compareOfLessAndEq : ∀ (a b : α), compare a b = compareOfLessAndEq a b
Instances
Equations
- CanonicallyLinearOrderedCommMonoid.semilatticeSup = SemilatticeSup.mk SemilatticeSup.sup ⋯ ⋯ ⋯
Equations
- CanonicallyLinearOrderedAddCommMonoid.semilatticeSup = SemilatticeSup.mk SemilatticeSup.sup ⋯ ⋯ ⋯
In a linearly ordered monoid, we are happy for bot_eq_one
to be a @[simp]
lemma.
In a linearly ordered monoid, we are happy for bot_eq_zero
to be a @[simp]
lemma