Bézout rings #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
A Bézout ring (Bezout ring) is a ring whose finitely generated ideals are principal. Notible examples include principal ideal rings, valuation rings, and the ring of algebraic integers.
Main results #
is_bezout.iff_span_pair_is_principal
: It suffices to verify everyspan {x, y}
is principal.is_bezout.to_gcd_monoid
: Every Bézout domain is a GCD domain. This is not an instance.is_bezout.tfae
: For a Bézout domain, noetherian ↔ PID ↔ UFD ↔ ACCP
@[class]
- is_principal_of_fg : ∀ (I : ideal R), I.fg → submodule.is_principal I
A Bézout ring is a ring whose finitely generated ideals are principal.
Instances of this typeclass
@[protected, instance]
def
is_bezout.span_pair_is_principal
{R : Type u}
[comm_ring R]
[is_bezout R]
(x y : R) :
submodule.is_principal (ideal.span {x, y})
theorem
is_bezout.iff_span_pair_is_principal
{R : Type u}
[comm_ring R] :
is_bezout R ↔ ∀ (x y : R), submodule.is_principal (ideal.span {x, y})
The gcd of two elements in a bezout domain.
Equations
- is_bezout.gcd x y = submodule.is_principal.generator (ideal.span {x, y})
theorem
is_bezout.span_gcd
{R : Type u}
[comm_ring R]
[is_bezout R]
(x y : R) :
ideal.span {is_bezout.gcd x y} = ideal.span {x, y}
theorem
is_bezout.gcd_dvd_left
{R : Type u}
[comm_ring R]
[is_bezout R]
(x y : R) :
is_bezout.gcd x y ∣ x
theorem
is_bezout.gcd_dvd_right
{R : Type u}
[comm_ring R]
[is_bezout R]
(x y : R) :
is_bezout.gcd x y ∣ y
theorem
is_bezout.dvd_gcd
{R : Type u}
[comm_ring R]
[is_bezout R]
{x y z : R}
(hx : z ∣ x)
(hy : z ∣ y) :
z ∣ is_bezout.gcd x y
noncomputable
def
is_bezout.to_gcd_domain
(R : Type u)
[comm_ring R]
[is_bezout R]
[is_domain R]
[decidable_eq R] :
Any bezout domain is a GCD domain. This is not an instance since gcd_monoid
contains data,
and this might not be how we would like to construct it.
@[protected, instance]
@[protected, instance]