Documentation

Mathlib.RingTheory.NonZeroDivisors

Non-zero divisors #

In this file we define the submonoid nonZeroDivisors of a MonoidWithZero.

Notations #

This file declares the notation R⁰ for the submonoid of non-zero-divisors of R, in the locale nonZeroDivisors.

Use the statement open nonZeroDivisors to access this notation in your own code.

def nonZeroDivisors (R : Type u_1) [inst : MonoidWithZero R] :

The submonoid of non-zero-divisors of a MonoidWithZero R.

Equations
  • One or more equations did not get rendered due to their size.

The notation for the submonoid of non-zerodivisors.

Equations
theorem mem_nonZeroDivisors_iff {M : Type u_1} [inst : MonoidWithZero M] {r : M} :
r nonZeroDivisors M ∀ (x : M), x * r = 0x = 0
theorem mul_right_mem_nonZeroDivisors_eq_zero_iff {M : Type u_1} [inst : MonoidWithZero M] {x : M} {r : M} (hr : r nonZeroDivisors M) :
x * r = 0 x = 0
@[simp]
theorem mul_right_coe_nonZeroDivisors_eq_zero_iff {M : Type u_1} [inst : MonoidWithZero M] {x : M} {c : { x // x nonZeroDivisors M }} :
x * c = 0 x = 0
theorem mul_left_mem_nonZeroDivisors_eq_zero_iff {M₁ : Type u_1} [inst : CommMonoidWithZero M₁] {r : M₁} {x : M₁} (hr : r nonZeroDivisors M₁) :
r * x = 0 x = 0
@[simp]
theorem mul_left_coe_nonZeroDivisors_eq_zero_iff {M₁ : Type u_1} [inst : CommMonoidWithZero M₁] {c : { x // x nonZeroDivisors M₁ }} {x : M₁} :
c * x = 0 x = 0
theorem mul_cancel_right_mem_nonZeroDivisors {R : Type u_1} [inst : Ring R] {x : R} {y : R} {r : R} (hr : r nonZeroDivisors R) :
x * r = y * r x = y
theorem mul_cancel_right_coe_nonZeroDivisors {R : Type u_1} [inst : Ring R] {x : R} {y : R} {c : { x // x nonZeroDivisors R }} :
x * c = y * c x = y
@[simp]
theorem mul_cancel_left_mem_nonZeroDivisors {R' : Type u_1} [inst : CommRing R'] {x : R'} {y : R'} {r : R'} (hr : r nonZeroDivisors R') :
r * x = r * y x = y
theorem mul_cancel_left_coe_nonZeroDivisors {R' : Type u_1} [inst : CommRing R'] {x : R'} {y : R'} {c : { x // x nonZeroDivisors R' }} :
c * x = c * y x = y
theorem nonZeroDivisors.ne_zero {M : Type u_1} [inst : MonoidWithZero M] [inst : Nontrivial M] {x : M} (hx : x nonZeroDivisors M) :
x 0
theorem nonZeroDivisors.coe_ne_zero {M : Type u_1} [inst : MonoidWithZero M] [inst : Nontrivial M] (x : { x // x nonZeroDivisors M }) :
x 0
theorem mul_mem_nonZeroDivisors {M₁ : Type u_1} [inst : CommMonoidWithZero M₁] {a : M₁} {b : M₁} :
theorem isUnit_of_mem_nonZeroDivisors {G₀ : Type u_1} [inst : GroupWithZero G₀] {x : G₀} (hx : x nonZeroDivisors G₀) :
theorem eq_zero_of_ne_zero_of_mul_right_eq_zero {M : Type u_1} [inst : MonoidWithZero M] [inst : NoZeroDivisors M] {x : M} {y : M} (hnx : x 0) (hxy : y * x = 0) :
y = 0
theorem eq_zero_of_ne_zero_of_mul_left_eq_zero {M : Type u_1} [inst : MonoidWithZero M] [inst : NoZeroDivisors M] {x : M} {y : M} (hnx : x 0) (hxy : x * y = 0) :
y = 0
theorem mem_nonZeroDivisors_of_ne_zero {M : Type u_1} [inst : MonoidWithZero M] [inst : NoZeroDivisors M] {x : M} (hx : x 0) :
theorem mem_nonZeroDivisors_iff_ne_zero {M : Type u_1} [inst : MonoidWithZero M] [inst : NoZeroDivisors M] [inst : Nontrivial M] {x : M} :
theorem map_ne_zero_of_mem_nonZeroDivisors {M : Type u_1} {M' : Type u_3} {F : Type u_2} [inst : MonoidWithZero M] [inst : MonoidWithZero M'] [inst : Nontrivial M] [inst : ZeroHomClass F M M'] (g : F) (hg : Function.Injective g) {x : M} (h : x nonZeroDivisors M) :
g x 0
theorem map_mem_nonZeroDivisors {M : Type u_1} {M' : Type u_2} {F : Type u_3} [inst : MonoidWithZero M] [inst : MonoidWithZero M'] [inst : Nontrivial M] [inst : NoZeroDivisors M'] [inst : ZeroHomClass F M M'] (g : F) (hg : Function.Injective g) {x : M} (h : x nonZeroDivisors M) :
theorem map_le_nonZeroDivisors_of_injective {M : Type u_3} {M' : Type u_1} {F : Type u_2} [inst : MonoidWithZero M] [inst : MonoidWithZero M'] [inst : NoZeroDivisors M'] [inst : MonoidWithZeroHomClass F M M'] (f : F) (hf : Function.Injective f) {S : Submonoid M} (hS : S nonZeroDivisors M) :
theorem prod_zero_iff_exists_zero {M₁ : Type u_1} [inst : CommMonoidWithZero M₁] [inst : NoZeroDivisors M₁] [inst : Nontrivial M₁] {s : Multiset M₁} :
Multiset.prod s = 0 r x, r = 0