Existence of W(k) and a ramified quadratic extension W(k)[√ p ]
ProvedWittVector.exists_isDiscreteValuationRing_charZero_residueField_ringEquiv_ringHom_and_sq_eq_of_isAlgClosedLet be a prime and let be an algebraically closed field of characteristic . The theorem asserts the existence of the following data. First, a type carrying a commutative ring structure making it a domain, a discrete valuation ring of characteristic zero, together with a -algebra structure such that: is adically complete (in Mathlib's IsAdicComplete sense, so complete and separated) for the ideal generated by the image of under , that ideal is maximal, and there is a ring isomorphism from the residue field onto ; moreover a ring homomorphism from the Witt vectors of the Galois field with elements, carried along as data with no compatibility required of it. Second, a type carrying a commutative ring structure making it a domain, a discrete valuation ring of characteristic zero, together with an -algebra structure such that is adically complete for its maximal ideal, an element of the maximal ideal of with the image of under , and a ring homomorphism which is surjective and satisfies .
This packages the absolutely unramified complete discrete valuation ring with residue field , a structural map from , and the ramified quadratic extension with its reduction map to , all delivered as an existence statement so that consumers may work with an abstract such pair. It is used in the Čerednik–Drinfeld part of the development, where special formal modules and fake elliptic curves are set up over such a base.
import Mathlib set_option maxHeartbeats 4000000 set_option synthInstance.maxHeartbeats 400000 set_option backward.isDefEq.respectTransparency.types false set_option autoImplicit false
theorem WittVector.exists_isDiscreteValuationRing_charZero_residueField_ringEquiv_ringHom_and_sq_eq_of_isAlgClosed
(p : ℕ) [Fact p.Prime] (k : Type) [Field k] [IsAlgClosed k] [CharP k p] :
∃ (Onr : Type) (_ : CommRing Onr) (_ : IsDomain Onr) (_ : IsDiscreteValuationRing Onr) (_ : CharZero Onr)
(_ : Algebra ℤ_[p] Onr)
(_ : IsAdicComplete (Ideal.span {algebraMap ℤ_[p] Onr (p : ℤ_[p])}) Onr)
(_ : (Ideal.span {algebraMap ℤ_[p] Onr (p : ℤ_[p])}).IsMaximal)
(e : IsLocalRing.ResidueField Onr ≃+* k) (ι : WittVector p (GaloisField p 2) →+* Onr)
(O' : Type) (_ : CommRing O') (_ : IsDomain O') (_ : IsDiscreteValuationRing O') (_ : CharZero O')
(_ : Algebra Onr O') (_ : IsAdicComplete (IsLocalRing.maximalIdeal O') O')
(ϖ' : O') (_ : ϖ' ∈ IsLocalRing.maximalIdeal O') (_ : ϖ' * ϖ' = algebraMap Onr O' ((p : ℕ) : Onr))
(φ' : O' →+* k),
Function.Surjective φ' ∧ φ'.comp (algebraMap Onr O') = (e : IsLocalRing.ResidueField Onr →+* k).comp (IsLocalRing.residue Onr) := by sorry