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 α] :