Documentation

Mathlib.Algebra.Ring.NonZeroDivisors

Non-zero divisors in a ring #

theorem IsLeftRegular.pow_injective {R : Type u_1} [Monoid R] {r : R} [IsMulTorsionFree R] (hx : IsLeftRegular r) (hx' : r β‰  1) :
Function.Injective fun (n : β„•) => r ^ n
theorem IsRightRegular.pow_injective {M : Type u_2} [Monoid M] [IsMulTorsionFree M] {x : M} (hx : IsRightRegular x) (hx' : x β‰  1) :
Function.Injective fun (n : β„•) => x ^ n
@[simp]
theorem IsMulTorsionFree.pow_right_inj {M : Type u_2} [CancelMonoid M] [IsMulTorsionFree M] {x : M} (hx : x β‰  1) {n m : β„•} :
x ^ n = x ^ m ↔ n = m
@[simp]
theorem IsMulTorsionFree.pow_right_injβ‚€ {M : Type u_2} [MonoidWithZero M] [IsLeftCancelMulZero M] [IsMulTorsionFree M] {x : M} (hx : x β‰  1) (hx' : x β‰  0) {n m : β„•} :
x ^ n = x ^ m ↔ n = m
theorem le_nonZeroDivisors_iff_isRegular {R : Type u_1} [Ring R] {S : Submonoid R} :
S ≀ nonZeroDivisors R ↔ βˆ€ (s : β†₯S), IsRegular ↑s
@[simp]
theorem mul_cancel_left_mem_nonZeroDivisors {R : Type u_1} [Ring R] {x y r : R} (hr : r ∈ nonZeroDivisors R) :
r * x = r * y ↔ x = y
theorem mul_cancel_left_coe_nonZeroDivisors {R : Type u_1} [Ring R] {x y : R} {c : β†₯(nonZeroDivisors R)} :
↑c * x = ↑c * y ↔ x = y
theorem mul_cancel_right_mem_nonZeroDivisors {R : Type u_1} [Ring R] {x y r : R} (hr : r ∈ nonZeroDivisors R) :
x * r = y * r ↔ x = y
theorem mul_cancel_right_coe_nonZeroDivisors {R : Type u_1} [Ring R] {x y : R} {c : β†₯(nonZeroDivisors R)} :
x * ↑c = y * ↑c ↔ x = y

In a finite ring, an element is a unit iff it is a non-zero-divisor.

theorem dvd_cancel_left_coe_nonZeroDivisors {R : Type u_1} [Ring R] {x y : R} {c : β†₯(nonZeroDivisors R)} :
↑c * x ∣ ↑c * y ↔ x ∣ y
theorem dvd_cancel_right_coe_nonZeroDivisors {R : Type u_1} [CommRing R] {x y : R} {c : β†₯(nonZeroDivisors R)} :
x * ↑c ∣ y * ↑c ↔ x ∣ y