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)