Prime elements #
In this file we define the predicate Prime p
saying that an element of a commutative monoid with zero is prime.
Namely, Prime p means that p isn't zero, it isn't a unit,
and p ∣ a * b → p ∣ a ∨ p ∣ b for all a, b;
In decomposition monoids (e.g., ℕ, ℤ), this predicate is equivalent to Irreducible
(see irreducible_iff_prime), however this is not true in general.
Main definitions #
Prime: a prime element of a commutative monoid with zero
Main results #
irreducible_iff_prime: the two definitions are equivalent in a decomposition monoid.
An element p of a commutative monoid with zero (e.g., a ring) is called prime,
if it's not zero, not a unit, and p ∣ a * b → p ∣ a ∨ p ∣ b for all a, b.
Instances For
@[deprecated Prime.not_isUnit (since := "2026-08-02")]
Alias of Prime.not_isUnit.
theorem Prime.dvd_or_dvd {M : Type u_1} [CommMonoidWithZero M] {p : M} (hp : Prime p) {a b : M} (h : p ∣ a * b) :
theorem Prime.dvd_of_dvd_pow {M : Type u_1} [CommMonoidWithZero M] {p : M} (hp : Prime p) {a : M} {n : ℕ} (h : p ∣ a ^ n) :
theorem Irreducible.not_dvd_isUnit {M : Type u_1} [CommMonoid M] {p u : M} (hp : Irreducible p) (hu : IsUnit u) :
theorem Irreducible.not_dvd_unit {M : Type u_1} [CommMonoid M] {p : M} (u : Mˣ) (hp : Irreducible p) :
theorem Irreducible.isUnit_of_mul_self_dvd {M : Type u_1} [CommMonoid M] {p a : M} (hp : Irreducible p) (ha : a * a ∣ p) :
IsUnit a
theorem Irreducible.dvd_symm {M : Type u_1} [Monoid M] {p q : M} (hp : Irreducible p) (hq : Irreducible q) :
If p and q are irreducible, then p ∣ q implies q ∣ p.
theorem Irreducible.dvd_comm {M : Type u_1} [Monoid M] {p q : M} (hp : Irreducible p) (hq : Irreducible q) :
theorem Irreducible.prime_of_isPrimal {M : Type u_1} [CommMonoidWithZero M] {a : M} (irr : Irreducible a) (primal : IsPrimal a) :
Prime a
theorem Irreducible.prime {M : Type u_1} [CommMonoidWithZero M] [DecompositionMonoid M] {a : M} (irr : Irreducible a) :
Prime a
theorem Prime.irreducible {M : Type u_1} [CommMonoidWithZero M] [IsCancelMulZero M] {p : M} (hp : Prime p) :
theorem irreducible_iff_prime {M : Type u_1} [CommMonoidWithZero M] [IsCancelMulZero M] [DecompositionMonoid M] {a : M} :