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.

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

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

    The notation for the submonoid of non-zerodivisors.

    Equations
    Instances For
      theorem mem_nonZeroDivisors_iff {M : Type u_1} [MonoidWithZero M] {r : M} :
      r ∈ nonZeroDivisors M ↔ ∀ (x : M), x * r = 0 → x = 0
      theorem mul_right_mem_nonZeroDivisors_eq_zero_iff {M : Type u_1} [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} [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_3} [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_3} [CommMonoidWithZero M₁] {c : { x // x ∈ nonZeroDivisors M₁ }} {x : M₁} :
      ↑c * x = 0 ↔ x = 0
      theorem mul_cancel_right_mem_nonZeroDivisors {R : Type u_4} [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_4} [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_5} [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_5} [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} [MonoidWithZero M] [Nontrivial M] {x : M} (hx : x ∈ nonZeroDivisors M) :
      x ≠ 0
      theorem nonZeroDivisors.coe_ne_zero {M : Type u_1} [MonoidWithZero M] [Nontrivial M] (x : { x // x ∈ nonZeroDivisors M }) :
      ↑x ≠ 0
      theorem mul_mem_nonZeroDivisors {M₁ : Type u_3} [CommMonoidWithZero M₁] {a : M₁} {b : M₁} :
      theorem isUnit_of_mem_nonZeroDivisors {G₀ : Type u_7} [GroupWithZero G₀] {x : G₀} (hx : x ∈ nonZeroDivisors G₀) :
      theorem eq_zero_of_ne_zero_of_mul_right_eq_zero {M : Type u_1} [MonoidWithZero M] [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} [MonoidWithZero M] [NoZeroDivisors M] {x : M} {y : M} (hnx : x ≠ 0) (hxy : x * y = 0) :
      y = 0
      theorem map_ne_zero_of_mem_nonZeroDivisors {M : Type u_1} {M' : Type u_2} {F : Type u_6} [MonoidWithZero M] [MonoidWithZero M'] [Nontrivial M] [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_6} [MonoidWithZero M] [MonoidWithZero M'] [Nontrivial M] [NoZeroDivisors M'] [ZeroHomClass F M M'] (g : F) (hg : Function.Injective ↑g) {x : M} (h : x ∈ nonZeroDivisors M) :
      theorem prod_zero_iff_exists_zero {M₁ : Type u_3} [CommMonoidWithZero M₁] [NoZeroDivisors M₁] [Nontrivial M₁] {s : Multiset M₁} :
      Multiset.prod s = 0 ↔ ∃ r x, r = 0