Documentation

Mathlib.Algebra.Ring.Regular

Lemmas about regular elements in rings. #

theorem isLeftRegular_of_non_zero_divisor {α : Type u_1} [NonUnitalNonAssocRing α] (k : α) (h : ∀ (x : α), k * x = 0x = 0) :

Left Mul by a k : α over [Ring α] is injective, if k is not a zero divisor. The typeclass that restricts all terms of α to have this property is NoZeroDivisors.

theorem isRightRegular_of_non_zero_divisor {α : Type u_1} [NonUnitalNonAssocRing α] (k : α) (h : ∀ (x : α), x * k = 0x = 0) :

Right Mul by a k : α over [Ring α] is injective, if k is not a zero divisor. The typeclass that restricts all terms of α to have this property is NoZeroDivisors.

theorem IsRegular.of_ne_zero' {α : Type u_1} [NonUnitalNonAssocRing α] [NoZeroDivisors α] {k : α} (hk : k 0) :
@[deprecated IsRegular.of_ne_zero' (since := "2026-01-21")]
theorem isRegular_of_ne_zero' {α : Type u_1} [NonUnitalNonAssocRing α] [NoZeroDivisors α] {k : α} (hk : k 0) :

Alias of IsRegular.of_ne_zero'.

A ring with no zero divisors is a cancellative MonoidWithZero.

Note this is not an instance as it forms a typeclass loop.

theorem IsDedekindFiniteMonoid.iff_eq_of_mul_left_eq_one {α : Type u_1} [Ring α] :
IsDedekindFiniteMonoid α ∀ (x y z : α), x * y = 1x * z = 1y = z

A ring is Dedekind-finite if and only if every element has at most one right inverse.

theorem IsDedekindFiniteMonoid.iff_eq_of_mul_right_eq_one {α : Type u_1} [Ring α] :
IsDedekindFiniteMonoid α ∀ (x y z : α), x * z = 1y * z = 1x = y

A ring is Dedekind-finite if and only if every element has at most one left inverse.