Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 64b3576

Browse files
feat(ring_theory/valuation/extend_to_localization): Extending valuations to localizations. (#13610)
Co-authored-by: Junyan Xu <junyanxumath@gmail.com>
1 parent fe2917a commit 64b3576

2 files changed

Lines changed: 53 additions & 0 deletions

File tree

src/ring_theory/valuation/basic.lean

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,10 @@ def comap {S : Type*} [ring S] (f : S →+* R) (v : valuation R Γ₀) :
181181
map_add_le_max' := λ x y, by simp only [comp_app, map_add, f.map_add],
182182
.. v.to_monoid_with_zero_hom.comp f.to_monoid_with_zero_hom, }
183183

184+
@[simp]
185+
lemma comap_apply {S : Type*} [ring S] (f : S →+* R) (v : valuation R Γ₀) (s : S) :
186+
v.comap f s = v (f s) := rfl
187+
184188
@[simp] lemma comap_id : v.comap (ring_hom.id R) = v := ext $ λ r, rfl
185189

186190
lemma comap_comp {S₁ : Type*} {S₂ : Type*} [ring S₁] [ring S₂] (f : S₁ →+* S₂) (g : S₂ →+* R) :
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
/-
2+
Copyright (c) 2022 Adam Topaz. All rights reserved.
3+
Released under Apache 2.0 license as described in the file LICENSE.
4+
Authors: Adam Topaz
5+
-/
6+
import ring_theory.localization.at_prime
7+
import ring_theory.valuation.basic
8+
9+
/-!
10+
11+
# Extending valuations to a localization
12+
13+
We show that, given a valuation `v` taking values in a linearly ordered commutative *group*
14+
with zero `Γ`, and a submonoid `S` of `v.supp.prime_compl`, the valuation `v` can be naturally
15+
extended to the localization `S⁻¹A`.
16+
17+
-/
18+
19+
variables
20+
{A : Type*} [comm_ring A]
21+
{Γ : Type*} [linear_ordered_comm_group_with_zero Γ] (v : valuation A Γ)
22+
{S : submonoid A} (hS : S ≤ v.supp.prime_compl)
23+
(B : Type*) [comm_ring B] [algebra A B] [is_localization S B]
24+
25+
/-- We can extend a valuation `v` on a ring to a localization at a submonoid of
26+
the complement of `v.supp`. -/
27+
noncomputable
28+
def valuation.extend_to_localization : valuation B Γ :=
29+
let f := is_localization.to_localization_map S B,
30+
h : ∀ s : S, is_unit (v.1.to_monoid_hom s) := λ s, is_unit_iff_ne_zero.2 (hS s.2) in
31+
{ map_zero' := by convert f.lift_eq _ 0; simp,
32+
map_add_le_max' := λ x y, begin
33+
obtain ⟨a,b,s,rfl,rfl⟩ : ∃ (a b : A) (s : S), f.mk' a s = x ∧ f.mk' b s = y,
34+
{ obtain ⟨a,s,rfl⟩ := f.mk'_surjective x,
35+
obtain ⟨b,t,rfl⟩ := f.mk'_surjective y,
36+
use [a * t, b * s, s * t], split;
37+
{ rw [f.mk'_eq_iff_eq, submonoid.coe_mul], ring_nf } },
38+
convert_to f.lift h (f.mk' (a+b) s) ≤ max (f.lift h _) (f.lift h _),
39+
{ refine congr_arg (f.lift h) (is_localization.eq_mk'_iff_mul_eq.2 _),
40+
rw [add_mul, map_add], iterate 2 { erw is_localization.mk'_spec } },
41+
iterate 3 { rw f.lift_mk' }, rw max_mul_mul_right,
42+
apply mul_le_mul_right' (v.map_add a b),
43+
end,
44+
..f.lift h }
45+
46+
@[simp]
47+
lemma valuation.extend_to_localization_apply_map_apply (a : A) :
48+
v.extend_to_localization hS B (algebra_map A B a) = v a :=
49+
submonoid.localization_map.lift_eq _ _ a

0 commit comments

Comments
 (0)