The basics of valuation theory. #
The basic theory of valuations (non-archimedean norms) on a commutative ring, following T. Wedhorn's unpublished notes “Adic Spaces” ([wedhorn_adic]).
The definition of a valuation we use here is Definition 1.22 of [wedhorn_adic].
A valuation on a ring R is a monoid homomorphism v to a linearly ordered
commutative monoid with zero, that in addition satisfies the following two axioms:
v 0 = 0∀ x y, v (x + y) ≤ max (v x) (v y)
Valuation R Γ₀ is the type of valuations R → Γ₀, with a coercion to the underlying
function. If v is a valuation from R to Γ₀ then the induced group
homomorphism Units(R) → Γ₀ is called unit_map v.
The equivalence "relation" IsEquiv v₁ v₂ : Prop defined in 1.27 of [wedhorn_adic] is not strictly
speaking a relation, because v₁ : Valuation R Γ₁ and v₂ : Valuation R Γ₂ might
not have the same type. This corresponds in ZFC to the set-theoretic difficulty
that the class of all valuations (as Γ₀ varies) on a ring R is not a set.
The "relation" is however reflexive, symmetric and transitive in the obvious
sense. Note that we use 1.27(iii) of [wedhorn_adic] as the definition of equivalence.
Main definitions #
Valuation R Γ₀, the type of valuations onRwith values inΓ₀Valuation.IsNontrivialis the class of non-trivial valuations, namely those for which there is an element in the ring whose valuation is≠ 0and≠ 1.Valuation.IsEquiv, the heterogeneous equivalence relation on valuationsValuation.supp, the support of a valuationAddValuation R Γ₀, the type of additive valuations onRwith values in a linearly ordered additive commutative group with a top element,Γ₀.
Implementation Details #
AddValuation R Γ₀ is implemented as Valuation R (Multiplicative Γ₀)ᵒᵈ.
Notation #
In the DiscreteValuation locale:
ℕₘ₀is a shorthand forWithZero (Multiplicative ℕ)ℤₘ₀is a shorthand forWithZero (Multiplicative ℤ)
TODO #
If ever someone extends Valuation, we should fully comply to the DFunLike by migrating the
boilerplate lemmas to ValuationClass.
The type of Γ₀-valued valuations on R.
When you extend this structure, make sure to extend ValuationClass.
- toFun : R → Γ₀
- map_mul' (x y : R) : (↑self.toMonoidWithZeroHom).toFun (x * y) = (↑self.toMonoidWithZeroHom).toFun x * (↑self.toMonoidWithZeroHom).toFun y
- map_add_le_max' (x y : R) : (↑self.toMonoidWithZeroHom).toFun (x + y) ≤ max ((↑self.toMonoidWithZeroHom).toFun x) ((↑self.toMonoidWithZeroHom).toFun y)
The valuation of a sum is less than or equal to the maximum of the valuations.
Instances For
ValuationClass F α β states that F is a type of valuations.
You should also extend this typeclass when you extend Valuation.
The valuation of a sum is less than or equal to the maximum of the valuations.
Instances
Equations
- Valuation.instFunLike = { coe := fun (f : Valuation R Γ₀) => (↑f.toMonoidWithZeroHom).toFun, coe_injective' := ⋯ }
A valuation gives a preorder on the underlying ring.
Equations
- v.toPreorder = Preorder.lift ⇑v
Instances For
If v is a valuation on a division ring then v(x) = 0 iff x = 0.
A ring homomorphism S → R induces a map Valuation R Γ₀ → Valuation S Γ₀.
Equations
- Valuation.comap f v = { toFun := ⇑v ∘ ⇑f, map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯, map_add_le_max' := ⋯ }
Instances For
A ≤-preserving group homomorphism Γ₀ → Γ'₀ induces a map Valuation R Γ₀ → Valuation R Γ'₀.
Equations
- Valuation.map f hf v = { toFun := ⇑f ∘ ⇑v, map_zero' := ⋯, map_one' := ⋯, map_mul' := ⋯, map_add_le_max' := ⋯ }
Instances For
Two valuations on R are defined to be equivalent if they induce the same preorder on R.
Instances For
An ordered monoid isomorphism Γ₀ ≃ Γ'₀ induces an equivalence
Valuation R Γ₀ ≃ Valuation R Γ'₀.
Equations
- Valuation.congr f = { toFun := Valuation.map ↑f ⋯, invFun := Valuation.map ↑f.symm ⋯, left_inv := ⋯, right_inv := ⋯ }
Instances For
This theorem is a weaker version of Valuation.val_le_one_or_val_inv_lt_one, but more symmetric
in x and x⁻¹.
The subgroup of elements whose valuation is less than a certain unit.
Equations
Instances For
For fields, being nontrivial is equivalent to the existence of a unit with valuation
not equal to 1.
comap preserves equivalence.
Alias of the forward direction of Valuation.isEquiv_iff_val_lt_val.
Alias of the forward direction of Valuation.isEquiv_iff_val_le_one.
Alias of the forward direction of Valuation.isEquiv_iff_val_eq_one.
Alias of the forward direction of Valuation.isEquiv_iff_val_lt_one.
Alias of the forward direction of Valuation.isEquiv_iff_val_sub_one_lt_one.
The support of a valuation v : R → Γ₀ is the ideal of R where v vanishes.
Instances For
The support of a valuation is a prime ideal.
The type of Γ₀-valued additive valuations on R.
Equations
- AddValuation R Γ₀ = Valuation R (Multiplicative Γ₀ᵒᵈ)
Instances For
A valuation is coerced to the underlying function R → Γ₀.
Equations
- AddValuation.instFunLike R Γ₀ = { coe := fun (v : AddValuation R Γ₀) => (↑v.toMonoidWithZeroHom).toFun, coe_injective' := ⋯ }
An alternate constructor of AddValuation, that doesn't reference Multiplicative Γ₀ᵒᵈ
Equations
- AddValuation.of f h0 h1 hadd hmul = { toFun := f, map_zero' := h0, map_one' := h1, map_mul' := hmul, map_add_le_max' := hadd }
Instances For
The Valuation associated to an AddValuation (useful if the latter is constructed using
AddValuation.of).
Equations
Instances For
Alias of AddValuation.toValuation.
The Valuation associated to an AddValuation (useful if the latter is constructed using
AddValuation.of).
Equations
Instances For
The AddValuation associated to a Valuation.
Equations
Instances For
Alias of AddValuation.toValuation_apply.
A helper function for Lean to inferring types correctly
Instances For
A valuation gives a preorder on the underlying ring.
Equations
- v.toPreorder = Preorder.lift ⇑v
Instances For
If v is an additive valuation on a division ring then v(x) = ⊤ iff x = 0.
A ring homomorphism S → R induces a map AddValuation R Γ₀ → AddValuation S Γ₀.
Equations
- AddValuation.comap f v = Valuation.comap f v
Instances For
A ≤-preserving, ⊤-preserving group homomorphism Γ₀ → Γ'₀ induces a map
AddValuation R Γ₀ → AddValuation R Γ'₀.
Equations
- AddValuation.map f ht hf v = Valuation.map { toFun := ⇑f, map_zero' := ht, map_one' := ⋯, map_mul' := ⋯ } ⋯ v
Instances For
Two additive valuations on R are defined to be equivalent if they induce the same
preorder on R.
Equations
- v₁.IsEquiv v₂ = Valuation.IsEquiv v₁ v₂
Instances For
comap preserves equivalence.
The support of an additive valuation v : R → Γ₀ is the ideal of R where v x = ⊤
Equations
- v.supp = Valuation.supp v
Instances For
The AddValuation associated to a Valuation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The Valuation associated to a AddValuation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- v.instCommMonoidWithZeroSubtypeMemSubmonoidMrange = { toCommMonoid := (MonoidHom.mrange v).toCommMonoid, zero := ⟨0, ⋯⟩, zero_mul := ⋯, mul_zero := ⋯ }
Equations
- One or more equations did not get rendered due to their size.