File: Mathlib/Algebra/Order/Ring/Canonical.lean

full_name: CanonicallyOrderedCommSemiring.eq_zero_or_eq_zero_of_mul_eq_zero
code: /-- A canonically ordered commutative semiring is an ordered, commutative semiring in which `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 ordered groups. -/
class CanonicallyOrderedCommSemiring (α : Type*) extends CanonicallyOrderedAddCommMonoid α,
    CommSemiring α where
  /-- No zero divisors. -/
  protected eq_zero_or_eq_zero_of_mul_eq_zero : ∀ {a b : α}, a * b = 0 → a = 0 ∨ b = 0
goal: a * b = 0 → a = 0 ∨ b = 0

full_name: CanonicallyOrderedCommSemiring
code: /-- A canonically ordered commutative semiring is an ordered, commutative semiring in which `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 ordered groups. -/
class CanonicallyOrderedCommSemiring (α : Type*) extends CanonicallyOrderedAddCommMonoid α,
    CommSemiring α where
  /-- No zero divisors. -/
  protected eq_zero_or_eq_zero_of_mul_eq_zero : ∀ {a b : α}, a * b = 0 → a = 0 ∨ b = 0
goal: Type u_2

full_name: Odd.pos
code: lemma Odd.pos [Nontrivial α] : Odd a → 0 < a 
goal: Odd a → 0 < a

full_name: CanonicallyOrderedCommSemiring.toNoZeroDivisors
code: instance (priority := 100) toNoZeroDivisors : NoZeroDivisors α 
goal: NoZeroDivisors α

full_name: CanonicallyOrderedCommSemiring.toCovariantClassMulLE
code: instance (priority := 100) toCovariantClassMulLE : CovariantClass α α (· * ·) (· ≤ ·) 
goal: CovariantClass α α (fun x x_1 => x * x_1) fun x x_1 => x ≤ x_1

full_name: CanonicallyOrderedCommSemiring.toOrderedCommMonoid
code: instance (priority := 100) toOrderedCommMonoid : OrderedCommMonoid α 
goal: OrderedCommMonoid α

full_name: CanonicallyOrderedCommSemiring.toOrderedCommSemiring
code: instance (priority := 100) toOrderedCommSemiring : OrderedCommSemiring α 
goal: OrderedCommSemiring α

full_name: CanonicallyOrderedCommSemiring.mul_pos
code: @[simp]
protected theorem mul_pos : 0 < a * b ↔ 0 < a ∧ 0 < b 
goal: 0 < a * b ↔ 0 < a ∧ 0 < b

full_name: CanonicallyOrderedCommSemiring.pow_pos
code: lemma pow_pos (ha : 0 < a) (n : ℕ) : 0 < a ^ n 
goal: 0 < a ^ n

full_name: CanonicallyOrderedCommSemiring.mul_lt_mul_of_lt_of_lt
code: protected lemma mul_lt_mul_of_lt_of_lt [PosMulStrictMono α] (hab : a < b) (hcd : c < d) :
    a * c < b * d 
goal: a * c < b * d

full_name: AddLECancellable.mul_tsub
code: protected theorem mul_tsub (h : AddLECancellable (a * c)) : a * (b - c) = a * b - a * c 
goal: a * (b - c) = a * b - a * c

full_name: AddLECancellable.tsub_mul
code: protected theorem tsub_mul (h : AddLECancellable (b * c)) : (a - b) * c = a * c - b * c 
goal: (a - b) * c = a * c - b * c

full_name: mul_tsub
code: theorem mul_tsub (a b c : α) : a * (b - c) = a * b - a * c 
goal: a * (b - c) = a * b - a * c

full_name: tsub_mul
code: theorem tsub_mul (a b c : α) : (a - b) * c = a * c - b * c 
goal: (a - b) * c = a * c - b * c

full_name: mul_tsub_one
code: lemma mul_tsub_one (a b : α) : a * (b - 1) = a * b - a 
goal: a * (b - 1) = a * b - a

full_name: tsub_one_mul
code: lemma tsub_one_mul (a b : α) : (a - 1) * b = a * b - b 
goal: (a - 1) * b = a * b - b