Documentation

Mathlib.Algebra.Order.Monoid.Canonical.Defs

Canonically ordered monoids #

class CanonicallyOrderedAdd (α : Type u_1) [Add α] [LE α] extends ExistsAddOfLE α :

An ordered additive monoid is CanonicallyOrderedAdd if 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 OrderedAddCommGroups.

  • exists_add_of_le {a b : α} : a b∃ (c : α), b = a + c
  • le_self_add (a b : α) : a a + b

    For any a and b, a ≤ a + b

Instances
    class CanonicallyOrderedMul (α : Type u_1) [Mul α] [LE α] extends ExistsMulOfLE α :

    An ordered monoid is CanonicallyOrderedMul if 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).

    • exists_mul_of_le {a b : α} : a b∃ (c : α), b = a * c
    • le_self_mul (a b : α) : a a * b

      For any a and b, a ≤ a * b

    Instances
      @[deprecated "Use `[OrderedAddCommMonoid α] [CanonicallyOrderedAdd α]` instead." (since := "2025-01-13")]
      structure CanonicallyOrderedAddCommMonoid (α : Type u_1) extends OrderedAddCommMonoid α, OrderBot α :
      Type u_1

      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 OrderedAddCommGroups.

      Instances For
        @[deprecated "Use `[OrderedCommMonoid α] [CanonicallyOrderedMul α]` instead." (since := "2025-01-13")]
        structure CanonicallyOrderedCommMonoid (α : Type u_1) extends OrderedCommMonoid α, OrderBot α :
        Type u_1

        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).

        Instances For
          theorem le_self_mul {α : Type u} [Mul α] [LE α] [CanonicallyOrderedMul α] {a b : α} :
          a a * b
          theorem le_self_add {α : Type u} [Add α] [LE α] [CanonicallyOrderedAdd α] {a b : α} :
          a a + b
          @[simp]
          theorem self_le_mul_right {α : Type u} [Mul α] [LE α] [CanonicallyOrderedMul α] (a b : α) :
          a a * b
          @[simp]
          theorem self_le_add_right {α : Type u} [Add α] [LE α] [CanonicallyOrderedAdd α] (a b : α) :
          a a + b
          theorem le_iff_exists_mul {α : Type u} [Mul α] [LE α] [CanonicallyOrderedMul α] {a b : α} :
          a b ∃ (c : α), b = a * c
          theorem le_iff_exists_add {α : Type u} [Add α] [LE α] [CanonicallyOrderedAdd α] {a b : α} :
          a b ∃ (c : α), b = a + c
          theorem le_of_mul_le_left {α : Type u} [Mul α] [Preorder α] [CanonicallyOrderedMul α] {a b c : α} :
          a * b ca c
          theorem le_of_add_le_left {α : Type u} [Add α] [Preorder α] [CanonicallyOrderedAdd α] {a b c : α} :
          a + b ca c
          theorem le_mul_of_le_left {α : Type u} [Mul α] [Preorder α] [CanonicallyOrderedMul α] {a b c : α} :
          a ba b * c
          theorem le_add_of_le_left {α : Type u} [Add α] [Preorder α] [CanonicallyOrderedAdd α] {a b c : α} :
          a ba b + c
          theorem le_mul_right {α : Type u} [Mul α] [Preorder α] [CanonicallyOrderedMul α] {a b c : α} :
          a ba b * c

          Alias of le_mul_of_le_left.

          theorem le_add_right {α : Type u} [Add α] [Preorder α] [CanonicallyOrderedAdd α] {a b c : α} :
          a ba b + c
          theorem le_mul_self {α : Type u} [CommMagma α] [LE α] [CanonicallyOrderedMul α] {a b : α} :
          a b * a
          theorem le_add_self {α : Type u} [AddCommMagma α] [LE α] [CanonicallyOrderedAdd α] {a b : α} :
          a b + a
          @[simp]
          theorem self_le_mul_left {α : Type u} [CommMagma α] [LE α] [CanonicallyOrderedMul α] (a b : α) :
          a b * a
          @[simp]
          theorem self_le_add_left {α : Type u} [AddCommMagma α] [LE α] [CanonicallyOrderedAdd α] (a b : α) :
          a b + a
          theorem le_of_mul_le_right {α : Type u} [CommMagma α] [Preorder α] [CanonicallyOrderedMul α] {a b c : α} :
          a * b cb c
          theorem le_of_add_le_right {α : Type u} [AddCommMagma α] [Preorder α] [CanonicallyOrderedAdd α] {a b c : α} :
          a + b cb c
          theorem le_mul_of_le_right {α : Type u} [CommMagma α] [Preorder α] [CanonicallyOrderedMul α] {a b c : α} :
          a ca b * c
          theorem le_add_of_le_right {α : Type u} [AddCommMagma α] [Preorder α] [CanonicallyOrderedAdd α] {a b c : α} :
          a ca b + c
          theorem le_mul_left {α : Type u} [CommMagma α] [Preorder α] [CanonicallyOrderedMul α] {a b c : α} :
          a ca b * c

          Alias of le_mul_of_le_right.

          theorem le_add_left {α : Type u} [AddCommMagma α] [Preorder α] [CanonicallyOrderedAdd α] {a b c : α} :
          a ca b + c
          theorem le_iff_exists_mul' {α : Type u} [CommMagma α] [Preorder α] [CanonicallyOrderedMul α] {a b : α} :
          a b ∃ (c : α), b = c * a
          theorem le_iff_exists_add' {α : Type u} [AddCommMagma α] [Preorder α] [CanonicallyOrderedAdd α] {a b : α} :
          a b ∃ (c : α), b = c + a
          @[simp]
          theorem one_le {α : Type u} [MulOneClass α] [LE α] [CanonicallyOrderedMul α] (a : α) :
          1 a
          @[simp]
          theorem zero_le {α : Type u} [AddZeroClass α] [LE α] [CanonicallyOrderedAdd α] (a : α) :
          0 a
          @[simp]
          theorem one_lt_of_gt {α : Type u} [MulOneClass α] [Preorder α] [CanonicallyOrderedMul α] {a b : α} (h : a < b) :
          1 < b
          @[simp]
          theorem pos_of_gt {α : Type u} [AddZeroClass α] [Preorder α] [CanonicallyOrderedAdd α] {a b : α} (h : a < b) :
          0 < b
          @[simp]
          theorem le_one_iff_eq_one {α : Type u} [MulOneClass α] [PartialOrder α] [CanonicallyOrderedMul α] {a : α} :
          a 1 a = 1
          @[simp]
          theorem nonpos_iff_eq_zero {α : Type u} [AddZeroClass α] [PartialOrder α] [CanonicallyOrderedAdd α] {a : α} :
          a 0 a = 0
          theorem one_lt_iff_ne_one {α : Type u} [MulOneClass α] [PartialOrder α] [CanonicallyOrderedMul α] {a : α} :
          1 < a a 1
          theorem pos_iff_ne_zero {α : Type u} [AddZeroClass α] [PartialOrder α] [CanonicallyOrderedAdd α] {a : α} :
          0 < a a 0
          theorem eq_one_or_one_lt {α : Type u} [MulOneClass α] [PartialOrder α] [CanonicallyOrderedMul α] (a : α) :
          a = 1 1 < a
          theorem eq_zero_or_pos {α : Type u} [AddZeroClass α] [PartialOrder α] [CanonicallyOrderedAdd α] (a : α) :
          a = 0 0 < a
          theorem one_not_mem_iff {α : Type u} [MulOneClass α] [PartialOrder α] [CanonicallyOrderedMul α] {s : Set α} :
          ¬1 s ∀ (x : α), x s1 < x
          theorem zero_not_mem_iff {α : Type u} [AddZeroClass α] [PartialOrder α] [CanonicallyOrderedAdd α] {s : Set α} :
          ¬0 s ∀ (x : α), x s0 < x
          theorem exists_one_lt_mul_of_lt {α : Type u} [MulOneClass α] [PartialOrder α] [CanonicallyOrderedMul α] {a b : α} (h : a < b) :
          ∃ (c : α), ∃ (x : 1 < c), a * c = b
          theorem exists_pos_add_of_lt {α : Type u} [AddZeroClass α] [PartialOrder α] [CanonicallyOrderedAdd α] {a b : α} (h : a < b) :
          ∃ (c : α), ∃ (x : 0 < c), a + c = b
          theorem lt_iff_exists_mul {α : Type u} [MulOneClass α] [PartialOrder α] [CanonicallyOrderedMul α] {a b : α} [MulLeftStrictMono α] :
          a < b ∃ (c : α), c > 1 b = a * c
          theorem lt_iff_exists_add {α : Type u} [AddZeroClass α] [PartialOrder α] [CanonicallyOrderedAdd α] {a b : α} [AddLeftStrictMono α] :
          a < b ∃ (c : α), c > 0 b = a + c
          @[simp]
          theorem one_lt_mul_iff {α : Type u} [CommMonoid α] [PartialOrder α] [CanonicallyOrderedMul α] {a b : α} :
          1 < a * b 1 < a 1 < b
          @[simp]
          theorem add_pos_iff {α : Type u} [AddCommMonoid α] [PartialOrder α] [CanonicallyOrderedAdd α] {a b : α} :
          0 < a + b 0 < a 0 < b
          @[deprecated mul_eq_one (since := "2024-07-24")]
          theorem mul_eq_one_iff {α : Type u} [CommMonoid α] [Subsingleton αˣ] {a b : α} :
          a * b = 1 a = 1 b = 1

          Alias of mul_eq_one.

          @[deprecated add_eq_zero (since := "2024-07-24")]
          theorem add_eq_zero_iff {α : Type u} [AddCommMonoid α] [Subsingleton (AddUnits α)] {a b : α} :
          a + b = 0 a = 0 b = 0

          Alias of add_eq_zero.

          theorem NeZero.pos {M : Type u_1} [AddZeroClass M] [PartialOrder M] [CanonicallyOrderedAdd M] (a : M) [NeZero a] :
          0 < a
          theorem NeZero.of_gt {M : Type u_1} [AddZeroClass M] [Preorder M] [CanonicallyOrderedAdd M] {x y : M} (h : x < y) :
          @[instance 10]
          instance NeZero.of_gt' {M : Type u_1} [AddZeroClass M] [Preorder M] [CanonicallyOrderedAdd M] [One M] {y : M} [Fact (1 < y)] :
          @[deprecated "Use `[LinearOrderedAddCommMonoid α] [CanonicallyOrderedAdd α]` instead." (since := "2025-01-13")]

          A canonically linear-ordered additive monoid is a canonically ordered additive monoid whose ordering is a linear order.

          Instances For
            @[deprecated "Use `[LinearOrderedCommMonoid α] [CanonicallyOrderedMul α]` instead." (since := "2025-01-13")]

            A canonically linear-ordered monoid is a canonically ordered monoid whose ordering is a linear order.

            Instances For
              theorem min_mul_distrib {α : Type u} [LinearOrderedCommMonoid α] [CanonicallyOrderedMul α] (a b c : α) :
              a b * c = a (a b) * (a c)
              theorem min_add_distrib {α : Type u} [LinearOrderedAddCommMonoid α] [CanonicallyOrderedAdd α] (a b c : α) :
              a (b + c) = a (a b + a c)
              theorem min_mul_distrib' {α : Type u} [LinearOrderedCommMonoid α] [CanonicallyOrderedMul α] (a b c : α) :
              a * b c = (a c) * (b c) c
              theorem min_add_distrib' {α : Type u} [LinearOrderedAddCommMonoid α] [CanonicallyOrderedAdd α] (a b c : α) :
              (a + b) c = (a c + b c) c
              theorem one_min {α : Type u} [LinearOrderedCommMonoid α] [CanonicallyOrderedMul α] (a : α) :
              1 a = 1
              theorem zero_min {α : Type u} [LinearOrderedAddCommMonoid α] [CanonicallyOrderedAdd α] (a : α) :
              0 a = 0
              theorem min_one {α : Type u} [LinearOrderedCommMonoid α] [CanonicallyOrderedMul α] (a : α) :
              a 1 = 1
              theorem min_zero {α : Type u} [LinearOrderedAddCommMonoid α] [CanonicallyOrderedAdd α] (a : α) :
              a 0 = 0
              @[simp]

              In a linearly ordered monoid, we are happy for bot_eq_one to be a @[simp] lemma.

              @[simp]

              In a linearly ordered monoid, we are happy for bot_eq_zero to be a @[simp] lemma