# mathlibdocumentation

topology.algebra.valuation

# The topology on a valued ring #

In this file, we define the non archimedean topology induced by a valuation on a ring. The main definition is a valued type class which equips a ring with a valuation taking values in a group with zero. Other instances are then deduced from this.

theorem valuation.subgroups_basis {R : Type u} [ring R] {Γ₀ : Type v} (v : Γ₀) :
ring_subgroups_basis (λ (γ : Γ₀ˣ), v.lt_add_subgroup γ)

The basis of open subgroups for the topology on a ring determined by a valuation.

@[class]
structure valued (R : Type u) [ring R] (Γ₀ : out_param (Type v))  :
Type (max u v)
• to_uniform_space :
• v : Γ₀
• is_topological_valuation : ∀ (s : set R), s nhds 0 ∃ (γ : Γ₀ˣ), {x : R | < γ} s

A valued ring is a ring that comes equipped with a distinguished valuation. The class valued is designed for the situation that there is a canonical valuation on the ring.

TODO: show that there always exists an equivalent valuation taking values in a type belonging to the same universe as the ring.

See Note [forgetful inheritance] for why we extend uniform_space, uniform_add_group.

Instances of this typeclass
Instances of other typeclasses for valued
• valued.has_sizeof_inst
def valued.mk' {R : Type u} [ring R] {Γ₀ : Type v} (v : Γ₀) :
Γ₀

Alternative valued constructor for use when there is no preferred uniform_space structure.

Equations
theorem valued.has_basis_nhds_zero (R : Type u) [ring R] (Γ₀ : Type v) [ Γ₀] :
(nhds 0).has_basis (λ (_x : Γ₀ˣ), true) (λ (γ : Γ₀ˣ), {x : R | < γ})
theorem valued.has_basis_uniformity (R : Type u) [ring R] (Γ₀ : Type v) [ Γ₀] :
(uniformity R).has_basis (λ (_x : Γ₀ˣ), true) (λ (γ : Γ₀ˣ), {p : R × R | valued.v (p.snd - p.fst) < γ})
theorem valued.to_uniform_space_eq (R : Type u) [ring R] (Γ₀ : Type v) [ Γ₀] :
theorem valued.mem_nhds {R : Type u} [ring R] {Γ₀ : Type v} [ Γ₀] {s : set R} {x : R} :
s nhds x ∃ (γ : Γ₀ˣ), {y : R | valued.v (y - x) < γ} s
theorem valued.mem_nhds_zero {R : Type u} [ring R] {Γ₀ : Type v} [ Γ₀] {s : set R} :
s nhds 0 ∃ (γ : Γ₀ˣ), {x : R | < γ} s
theorem valued.loc_const {R : Type u} [ring R] {Γ₀ : Type v} [ Γ₀] {x : R} (h : 0) :
{y : R | = nhds x
@[protected, instance]
def valued.topological_ring {R : Type u} [ring R] {Γ₀ : Type v} [ Γ₀] :
theorem valued.cauchy_iff {R : Type u} [ring R] {Γ₀ : Type v} [ Γ₀] {F : filter R} :
F.ne_bot ∀ (γ : Γ₀ˣ), ∃ (M : set R) (H : M F), ∀ (x : R), x M∀ (y : R), y Mvalued.v (y - x) < γ