Unbundled and weaker forms of canonically ordered monoids #
This file provides a Prop-valued mixin for monoids satisfying a one-sided cancellativity property,
namely that there is some c such that b = a + c if a ≤ b. This is particularly useful for
generalising statements from groups/rings/fields that don't mention negation or subtraction to
monoids/semirings/semifields.
@[instance 100]
theorem
exists_one_le_mul_of_le
{α : Type u}
[MulOneClass α]
[Preorder α]
[ExistsMulOfLE α]
{a b : α}
[MulLeftReflectLE α]
(h : a ≤ b)
:
theorem
exists_nonneg_add_of_le
{α : Type u}
[AddZeroClass α]
[Preorder α]
[ExistsAddOfLE α]
{a b : α}
[AddLeftReflectLE α]
(h : a ≤ b)
:
theorem
exists_one_lt_mul_of_lt'
{α : Type u}
[MulOneClass α]
[Preorder α]
[ExistsMulOfLE α]
{a b : α}
[MulLeftReflectLT α]
(h : a < b)
:
theorem
exists_pos_add_of_lt'
{α : Type u}
[AddZeroClass α]
[Preorder α]
[ExistsAddOfLE α]
{a b : α}
[AddLeftReflectLT α]
(h : a < b)
:
theorem
le_iff_exists_one_le_mul
{α : Type u}
[MulOneClass α]
[Preorder α]
[ExistsMulOfLE α]
{a b : α}
[MulLeftMono α]
[MulLeftReflectLE α]
:
theorem
le_iff_exists_nonneg_add
{α : Type u}
[AddZeroClass α]
[Preorder α]
[ExistsAddOfLE α]
{a b : α}
[AddLeftMono α]
[AddLeftReflectLE α]
:
theorem
lt_iff_exists_one_lt_mul
{α : Type u}
[MulOneClass α]
[Preorder α]
[ExistsMulOfLE α]
{a b : α}
[MulLeftStrictMono α]
[MulLeftReflectLT α]
:
theorem
lt_iff_exists_pos_add
{α : Type u}
[AddZeroClass α]
[Preorder α]
[ExistsAddOfLE α]
{a b : α}
[AddLeftStrictMono α]
[AddLeftReflectLT α]
:
theorem
le_of_forall_one_lt_le_mul
{α : Type u}
[LinearOrder α]
[DenselyOrdered α]
[Monoid α]
[ExistsMulOfLE α]
[MulLeftReflectLT α]
{a b : α}
(h : ∀ (ε : α), 1 < ε → a ≤ b * ε)
:
theorem
le_of_forall_pos_le_add
{α : Type u}
[LinearOrder α]
[DenselyOrdered α]
[AddMonoid α]
[ExistsAddOfLE α]
[AddLeftReflectLT α]
{a b : α}
(h : ∀ (ε : α), 0 < ε → a ≤ b + ε)
:
theorem
le_of_forall_one_lt_lt_mul'
{α : Type u}
[LinearOrder α]
[DenselyOrdered α]
[Monoid α]
[ExistsMulOfLE α]
[MulLeftReflectLT α]
{a b : α}
(h : ∀ (ε : α), 1 < ε → a < b * ε)
:
theorem
le_of_forall_pos_lt_add'
{α : Type u}
[LinearOrder α]
[DenselyOrdered α]
[AddMonoid α]
[ExistsAddOfLE α]
[AddLeftReflectLT α]
{a b : α}
(h : ∀ (ε : α), 0 < ε → a < b + ε)
:
theorem
le_iff_forall_one_lt_lt_mul'
{α : Type u}
[LinearOrder α]
[DenselyOrdered α]
[Monoid α]
[ExistsMulOfLE α]
[MulLeftReflectLT α]
{a b : α}
[MulLeftStrictMono α]
:
theorem
le_iff_forall_pos_lt_add'
{α : Type u}
[LinearOrder α]
[DenselyOrdered α]
[AddMonoid α]
[ExistsAddOfLE α]
[AddLeftReflectLT α]
{a b : α}
[AddLeftStrictMono α]
:
theorem
le_iff_forall_one_lt_le_mul
{α : Type u}
[LinearOrder α]
[DenselyOrdered α]
[Monoid α]
[ExistsMulOfLE α]
[MulLeftReflectLT α]
{a b : α}
[MulLeftStrictMono α]
:
theorem
le_iff_forall_pos_le_add
{α : Type u}
[LinearOrder α]
[DenselyOrdered α]
[AddMonoid α]
[ExistsAddOfLE α]
[AddLeftReflectLT α]
{a b : α}
[AddLeftStrictMono α]
: