Valuation Rings #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
A valuation ring is a domain such that for every pair of elements a b
, either a
divides
b
or vice-versa.
Any valuation ring induces a natural valuation on its fraction field, as we show in this file.
Namely, given the following instances:
[comm_ring A] [is_domain A] [valuation_ring A] [field K] [algebra A K] [is_fraction_ring A K]
,
there is a natural valuation valuation A K
on K
with values in value_group A K
where
the image of A
under algebra_map A K
agrees with (valuation A K).integer
.
We also provide the equivalence of the following notions for a domain R
in valuation_ring.tfae
.
R
is a valuation ring.- For each
x : fraction_ring K
, eitherx
orx⁻¹
is inR
. - "divides" is a total relation on the elements of
R
. - "contains" is a total relation on the ideals of
R
. R
is a local bezout domain.
Equations
- valuation_ring.value_group.has_le A K = {le := λ (x y : valuation_ring.value_group A K), quotient.lift_on₂' x y (λ (a b : K), ∃ (c : A), c • b = a) _}
Equations
- valuation_ring.value_group.has_one A K = {one := quotient.mk' 1}
Equations
- valuation_ring.value_group.has_mul A K = {mul := λ (x y : valuation_ring.value_group A K), quotient.lift_on₂' x y (λ (a b : K), quotient.mk' (a * b)) _}
Equations
- valuation_ring.value_group.has_inv A K = {inv := λ (x : valuation_ring.value_group A K), quotient.lift_on' x (λ (a : K), quotient.mk' a⁻¹) _}
Equations
- valuation_ring.value_group.linear_ordered_comm_group_with_zero A K = {le := has_le.le infer_instance, lt := linear_ordered_comm_monoid_with_zero.lt._default has_le.le, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := λ (a b : valuation_ring.value_group A K), quotient.lift_on₂'.decidable a b (λ (a₁ : K), (λ (a b : K), ∃ (c : A), c • b = a) a₁) _, decidable_eq := linear_ordered_comm_monoid_with_zero.decidable_eq._default has_le.le (linear_ordered_comm_monoid_with_zero.lt._default has_le.le) _ _ _ _ (λ (a b : valuation_ring.value_group A K), quotient.lift_on₂'.decidable a b (λ (a₁ : K), (λ (a b : K), ∃ (c : A), c • b = a) a₁) _), decidable_lt := linear_ordered_comm_monoid_with_zero.decidable_lt._default has_le.le (linear_ordered_comm_monoid_with_zero.lt._default has_le.le) _ _ _ _ (λ (a b : valuation_ring.value_group A K), quotient.lift_on₂'.decidable a b (λ (a₁ : K), (λ (a b : K), ∃ (c : A), c • b = a) a₁) _), max := linear_ordered_comm_monoid_with_zero.max._default has_le.le (linear_ordered_comm_monoid_with_zero.lt._default has_le.le) _ _ _ _ (λ (a b : valuation_ring.value_group A K), quotient.lift_on₂'.decidable a b (λ (a₁ : K), (λ (a b : K), ∃ (c : A), c • b = a) a₁) _), max_def := _, min := linear_ordered_comm_monoid_with_zero.min._default has_le.le (linear_ordered_comm_monoid_with_zero.lt._default has_le.le) _ _ _ _ (λ (a b : valuation_ring.value_group A K), quotient.lift_on₂'.decidable a b (λ (a₁ : K), (λ (a b : K), ∃ (c : A), c • b = a) a₁) _), min_def := _, mul := has_mul.mul infer_instance, mul_assoc := _, one := 1, one_mul := _, mul_one := _, npow := linear_ordered_comm_monoid_with_zero.npow._default 1 has_mul.mul _ _, npow_zero' := _, npow_succ' := _, mul_comm := _, mul_le_mul_left := _, zero := 0, zero_mul := _, mul_zero := _, zero_le_one := _, inv := has_inv.inv infer_instance, div := comm_group_with_zero.div._default has_mul.mul _ 1 _ _ (linear_ordered_comm_monoid_with_zero.npow._default 1 has_mul.mul _ _) _ _ has_inv.inv, div_eq_mul_inv := _, zpow := comm_group_with_zero.zpow._default has_mul.mul _ 1 _ _ (linear_ordered_comm_monoid_with_zero.npow._default 1 has_mul.mul _ _) _ _ has_inv.inv, zpow_zero' := _, zpow_succ' := _, zpow_neg' := _, exists_pair_ne := _, inv_zero := _, mul_inv_cancel := _}
Any valuation ring induces a valuation on its fraction field.
Equations
- valuation_ring.valuation A K = {to_monoid_with_zero_hom := {to_fun := quotient.mk' (mul_action.orbit_rel Aˣ K), map_zero' := _, map_one' := _, map_mul' := _}, map_add_le_max' := _}
The valuation ring A
is isomorphic to the ring of integers of its associated valuation.
Equations
- valuation_ring.equiv_integer A K = ring_equiv.of_bijective (show A →ₙ+* ↥((valuation_ring.valuation A K).integer), from {to_fun := λ (a : A), ⟨⇑(algebra_map A K) a, _⟩, map_mul' := _, map_zero' := _, map_add' := _}) _
Equations
- valuation_ring.ideal.linear_order A = {le := complete_lattice.le infer_instance, lt := complete_lattice.lt infer_instance, le_refl := _, le_trans := _, lt_iff_le_not_le := _, le_antisymm := _, le_total := _, decidable_le := infer_instance (λ (a b : ideal A), _inst_4 a b), decidable_eq := decidable_eq_of_decidable_le infer_instance, decidable_lt := decidable_lt_of_decidable_le infer_instance, max := max_default (λ (a b : ideal A), infer_instance a b), max_def := _, min := min_default (λ (a b : ideal A), infer_instance a b), min_def := _}
A field is a valuation ring.
A DVR is a valuation ring.