Valuative Relations #
In this file we introduce a class called ValuativeRel R
for a ring R
.
This bundles a relation rel : R → R → Prop
on R
which mimics a
preorder on R
arising from a valuation.
We introduce the notation x ≤ᵥ y
for this relation.
Recall that the equivalence class of a valuation is completely characterized by
such a preorder. Thus, we can think of ValuativeRel R
as a way of
saying that R
is endowed with an equivalence class of valuations.
Main Definitions #
ValuativeRel R
endows a commutative ringR
with a relation arising from a valuation. This is equivalent to fixing an equivalence class of valuations onR
. Use the notationx ≤ᵥ y
for this relation.ValuativeRel.Valuation R
is the "canonical" valuation associated toValuativeRel R
, taking values inValuativeRel.ValueGroupWithZero R
.- Given a valution
v
onR
and an instance[ValuativeRel R]
, writing[v.Compatible]
ensures that the relationx ≤ᵥ y
is equivalent tov x ≤ v y
. Note that it is possible to have[v.Compatible]
and[w.Compatible]
for two different valuations onR
. - If we have both
[ValuativeRel R]
and[TopologicalSpace R]
, then writing[ValuativeTopology R]
ensures that the topology onR
agrees with the one induced by the valuation. - Given
[ValuativeRel A]
,[ValuativeRel B]
and[Algebra A B]
, the class[ValuativeExtension A B]
ensures that the algebra mapA → B
is compatible with the valuations onA
andB
. For example, this can be used to talk about extensions of valued fields.
Remark #
The last two axioms in ValuativeRel
, namely rel_mul_cancel
and not_rel_one_zero
, are
used to ensure that we have a well-behaved valuation taking values in a value group (with zero).
In principle, it should be possible to drop these two axioms and obtain a value monoid,
however, such a value monoid would not necessarily embed into an ordered abelian group with zero.
Similarly, without these axioms, the support of the valuation need not be a prime ideal.
We have thus opted to include these two axioms and obtain a ValueGroupWithZero
associated to
a ValuativeRel
in order to best align with the literature about valuations on commutative rings.
Future work could refactor ValuativeRel
by dropping the rel_mul_cancel
and not_rel_one_zero
axioms, opting to make these mixins instead.
Projects #
The ValuativeRel
class should eventually replace the existing Valued
typeclass.
Once such a refactor happens, ValuativeRel
could be renamed to Valued
.
The class [ValuativeRel R]
class introduces an operator x ≤ᵥ y : Prop
for x y : R
which is the natural relation arising from (the equivalence class of) a valuation on R
.
More precisely, if v is a valuation on R then the associated relation is x ≤ᵥ y ↔ v x ≤ v y
.
Use this class to talk about the case where R
is equipped with an equivalence class
of valuations.
- rel : R → R → Prop
The relation operator arising from
ValuativeRel
.
Instances
The relation operator arising from ValuativeRel
.
Equations
- «term_≤ᵥ_» = Lean.ParserDescr.trailingNode `«term_≤ᵥ_» 50 51 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≤ᵥ ") (Lean.ParserDescr.cat `term 51))
Instances For
We say that a valuation v
is Compatible
if the relation x ≤ᵥ y
is equivalent to v x ≤ x y
.
Instances
A preorder on a ring is said to be "valuative" if it agrees with the valuative relation.
Instances
Alias of ValuativeRel.rel_refl
.
Alias of ValuativeRel.rel_rfl
.
Equations
- ValuativeRel.instTransRel = { trans := ⋯ }
The setoid used to construct ValueGroupWithZero R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The "canonical" value group-with-zero of a ring with a valuative relation.
Equations
Instances For
Construct an element of the value group-with-zero from an element r : R
and
y : posSubmonoid R
. This should be thought of as v r / v y
.
Instances For
Lifts a function R → posSubmonoid R → α
to the value group-with-zero of R
.
Equations
- ValuativeRel.ValueGroupWithZero.lift f hf t = Quotient.lift (fun (x : R × ↥(ValuativeRel.posSubmonoid R)) => match x with | (x, y) => f x y) ⋯ t
Instances For
Lifts a function R → posSubmonoid R → R → posSubmonoid R → α
to
the value group-with-zero of R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Equations
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- ValuativeRel.instBotValueGroupWithZero = { bot := 0 }
Equations
- ValuativeRel.instOrderBotValueGroupWithZero = { toBot := ValuativeRel.instBotValueGroupWithZero, bot_le := ⋯ }
Equations
- One or more equations did not get rendered due to their size.
The value group-with-zero is a linearly ordered commutative group with zero.
Equations
- One or more equations did not get rendered due to their size.
The "canonical" valuation associated to a valuative relation.
Equations
- ValuativeRel.valuation R = { toFun := fun (r : R) => ValuativeRel.ValueGroupWithZero.mk r 1, map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯, map_add_le_max' := ⋯ }
Instances For
Construct a valuative relation on a ring using a valuation.
Equations
- ValuativeRel.ofValuation v = { rel := fun (x y : S) => v x ≤ v y, rel_total := ⋯, rel_trans := ⋯, rel_add := ⋯, rel_mul_right := ⋯, rel_mul_cancel := ⋯, not_rel_one_zero := ⋯ }
Instances For
An alias for endowing a ring with a preorder defined as the valuative relation.
Equations
Instances For
The ring instance on WithPreorder R
arising from the ring structure on R
.
Equations
The preorder on WithPreorder R
arising from the valuative relation on R
.
Equations
- ValuativeRel.instPreorderWithPreorder = { le := fun (x y : R) => x ≤ᵥ y, le_refl := ⋯, le_trans := ⋯, lt_iff_le_not_ge := ⋯ }
The valutaive relation on WithPreorder R
arising from the valuative relation on R
.
This is defined as the preorder itself.
Equations
- One or more equations did not get rendered due to their size.
The support of the valuation on R
.
Equations
Instances For
An auxiliary structure used to define IsRankOne
.
The embedding of the value group-with-zero into the nonnegative reals.
- strictMono : StrictMono ⇑self.emb
Instances For
We say that a ring with a valuative relation is of rank one if
there exists a strictly monotone embedding of the "canonical" value group-with-zero into
the nonnegative reals, and the image of this embedding contains some element different
from 0
and 1
.
- nonempty : Nonempty (RankLeOneStruct R)
Instances
We say that a valuative relation on a ring is nontrivial if the value group-with-zero is nontrivial, meaning that it has an element which is different from 0 and 1.
- condition : ∃ (γ : ValueGroupWithZero R), γ ≠ 0 ∧ γ ≠ 1
Instances
A ring with a valuative relation is discrete if its value group-with-zero
has a maximal element < 1
.
- has_maximal_element : ∃ γ < 1, ∀ δ < 1, δ ≤ γ
Instances
We say that a topology on R
is valuative if the neighborhoods of 0
in R
are determined by the relation · ≤ᵥ ·
.
Instances
If B
is an A
algebra and both A
and B
have valuative relations,
we say that B|A
is a valuative extension if the valuative relation on A
is
induced by the one on B
.
Instances
The morphism of posSubmonoid
s associated to an algebra map.
This is used in constructing ValuativeExtension.mapValueGroupWithZero
.
Equations
- ValuativeExtension.mapPosSubmonoid A B = { toFun := fun (x : ↥(ValuativeRel.posSubmonoid A)) => match x with | ⟨a, ha⟩ => ⟨(algebraMap A B) a, ⋯⟩, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The map on value groups-with-zero associated to the structure morphism of an algebra.
Equations
- One or more equations did not get rendered due to their size.