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 = 0x = 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