Ring Perfection and Tilt #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file we define the perfection of a ring of characteristic p, and the tilt of a field
given a valuation to ℝ≥0
.
TODO #
Define the valuation on the tilt, and define a characteristic predicate for the tilt.
The perfection of a monoid M
, defined to be the projective limit of M
using the p
-th power maps M → M
indexed by the natural numbers, implemented as
{ f : ℕ → M | ∀ n, f (n + 1) ^ p = f n }
.
The perfection of a ring R
with characteristic p
, as a subsemiring,
defined to be the projective limit of R
using the Frobenius maps R → R
indexed by the natural numbers, implemented as { f : ℕ → R | ∀ n, f (n + 1) ^ p = f n }
.
Equations
- ring.perfection_subsemiring R p = {carrier := (monoid.perfection R p).carrier, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _}
The perfection of a ring R
with characteristic p
, as a subring,
defined to be the projective limit of R
using the Frobenius maps R → R
indexed by the natural numbers, implemented as { f : ℕ → R | ∀ n, f (n + 1) ^ p = f n }
.
Equations
The perfection of a ring R
with characteristic p
,
defined to be the projective limit of R
using the Frobenius maps R → R
indexed by the natural numbers, implemented as {f : ℕ → R // ∀ n, f (n + 1) ^ p = f n}
.
Equations
Equations
- perfection.ring p R = (ring.perfection_subring R p).to_ring
Equations
Equations
- perfection.ring.perfection.inhabited R p = {default := 0}
The n
-th coefficient of an element of the perfection.
Equations
- perfection.coeff R p n = {to_fun := λ (f : ring.perfection R p), f.val n, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}
The p
-th root of an element of the perfection.
Equations
- perfection.pth_root R p = {to_fun := λ (f : ring.perfection R p), ⟨λ (n : ℕ), ⇑(perfection.coeff R p (n + 1)) f, _⟩, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}
Equations
- perfection.perfect_ring R p = {pth_root' := ⇑(perfection.pth_root R p), frobenius_pth_root' := _, pth_root_frobenius' := _}
Given rings R
and S
of characteristic p
, with R
being perfect,
any homomorphism R →+* S
can be lifted to a homomorphism R →+* perfection S p
.
A ring homomorphism R →+* S
induces perfection R p →+* perfection S p
Equations
- perfection.map p φ = {to_fun := λ (f : ring.perfection R p), ⟨λ (n : ℕ), ⇑φ (⇑(perfection.coeff R p n) f), _⟩, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _}
- injective : ∀ ⦃x y : P⦄, (∀ (n : ℕ), ⇑π (⇑(pth_root P p)^[n] x) = ⇑π (⇑(pth_root P p)^[n] y)) → x = y
- surjective : ∀ (f : ℕ → R), (∀ (n : ℕ), f (n + 1) ^ p = f n) → (∃ (x : P), ∀ (n : ℕ), ⇑π (⇑(pth_root P p)^[n] x) = f n)
A perfection map to a ring of characteristic p
is a map that is isomorphic
to its perfection.
Create a perfection_map
from an isomorphism to the perfection.
The canonical perfection map from the perfection of a ring.
For a perfect ring, it itself is the perfection.
A perfection map induces an isomorphism to the prefection.
Equations
- m.equiv = ring_equiv.of_bijective (⇑(perfection.lift p P R) π) _
Given rings R
and S
of characteristic p
, with R
being perfect,
any homomorphism R →+* S
can be lifted to a homomorphism R →+* P
,
where P
is any perfection of S
.
A ring homomorphism R →+* S
induces P →+* Q
, a map of the respective perfections.
Equations
- perfection_map.map p m n φ = ⇑(perfection_map.lift p P S Q σ n) (φ.comp π)
Equations
- mod_p.comm_ring K v O hv p = ideal.quotient.comm_ring (ideal.span {↑p})
For a field K
with valuation v : K → ℝ≥0
and ring of integers O
,
a function O/(p) → ℝ≥0
that sends 0
to 0
and x + (p)
to v(x)
as long as x ∉ (p)
.
Equations
- mod_p.pre_val K v O hv p x = ite (x = 0) 0 (⇑v (⇑(algebra_map O K) (quotient.out' x)))
Perfection of O/(p)
where O
is the ring of integers of K
.
Equations
- pre_tilt K v O hv p = ring.perfection (mod_p K v O hv p) p
Instances for pre_tilt
Equations
- pre_tilt.comm_ring K v O hv p = perfection.comm_ring p (mod_p K v O hv p)
The valuation Perfection(O/(p)) → ℝ≥0
as a function.
Given f ∈ Perfection(O/(p))
, if f = 0
then output 0
;
otherwise output pre_val(f(n))^(p^n)
for any n
such that f(n) ≠ 0
.
Equations
- pre_tilt.val_aux K v O hv p f = dite (∃ (n : ℕ), ⇑(perfection.coeff (mod_p K v O hv p) p n) f ≠ 0) (λ (h : ∃ (n : ℕ), ⇑(perfection.coeff (mod_p K v O hv p) p n) f ≠ 0), mod_p.pre_val K v O hv p (⇑(perfection.coeff (mod_p K v O hv p) p (nat.find h)) f) ^ p ^ nat.find h) (λ (h : ¬∃ (n : ℕ), ⇑(perfection.coeff (mod_p K v O hv p) p n) f ≠ 0), 0)
The valuation Perfection(O/(p)) → ℝ≥0
.
Given f ∈ Perfection(O/(p))
, if f = 0
then output 0
;
otherwise output pre_val(f(n))^(p^n)
for any n
such that f(n) ≠ 0
.
Equations
- pre_tilt.val K v O hv p = {to_monoid_with_zero_hom := {to_fun := pre_tilt.val_aux K v O hv p hvp, map_zero' := _, map_one' := _, map_mul' := _}, map_add_le_max' := _}
The tilt of a field, as defined in Perfectoid Spaces by Peter Scholze, as in
[Sch11]. Given a field K
with valuation K → ℝ≥0
and ring of integers O
,
this is implemented as the fraction field of the perfection of O/(p)
.
Equations
- tilt K v O hv p = fraction_ring (pre_tilt K v O hv p)