ClassFieldTower.Martinet.Shafarevich.absoluteLocalArtin_semilinear_finite_action
Source context 5 commands
Surrounding namespaces, section variables, and local commands at this declaration.
noncomputable section
namespace ClassFieldTower.Martinet.Shafarevich
open LocalClassFieldTheory
open scoped IsMulCommutative
variable (K K' : Type) [Field K] [ValuativeRel K] [TopologicalSpace K]
[IsNonarchimedeanLocalField K]
[Field K'] [ValuativeRel K'] [TopologicalSpace K'] [IsNonarchimedeanLocalField K']Lean source · full declaration
theorem absoluteLocalArtin_semilinear_finite_action
(c : K ≃+* K') (e : AlgebraicClosure K ≃+* AlgebraicClosure K')
(he : ∀ x : K, e (algebraMap K (AlgebraicClosure K) x) =
algebraMap K' (AlgebraicClosure K') (c x))
(hc : SemilinearValuationCompatible K K' c)
(a : Kˣ) (sigma : Gal(AlgebraicClosure K / K))
(hsigma : (QuotientGroup.mk (show Field.absoluteGaloisGroup K from sigma) :
Field.absoluteGaloisGroupAbelianization K) = absoluteLocalArtinMap K a)
(L : Type) [Field L] [Algebra K' L]
[FiniteDimensional K' L] [IsAbelianGalois K' L]
(i : L →ₐ[K'] AlgebraicClosure K') (z : L) :
e (sigma (e.symm (i z))) =
i (abelianLocalArtinMonoidHom K' L (Units.map c.toMonoidHom a) z) := by
let _ : Algebra K K' := c.toRingHom.toAlgebra
let _ : Algebra K L := ((algebraMap K' L).comp c.toRingHom).toAlgebra
let _ : IsScalarTower K K' L := IsScalarTower.of_algebraMap_eq' rfl
let _ : FiniteDimensional K K' :=
Module.Finite.of_surjective (Algebra.linearMap K K') c.surjective
let _ : FiniteDimensional K L := Module.Finite.trans K' L
let _ : IsGalois K L := IsGalois.of_equiv_equiv
(f := c.symm) (g := RingEquiv.refl L) (by
ext x
change algebraMap K' L (c (c.symm x)) = algebraMap K' L x
rw [c.apply_symm_apply])
let g := semilinearGaloisGroupCongr K K' L L c (RingEquiv.refl L) (fun _ ↦ rfl)
let _ : IsAbelianGalois K L :=
{ is_comm.comm := fun s t ↦ g.injective (by rw [map_mul, map_mul]; exact mul_comm _ _) }
let j : L →ₐ[K] AlgebraicClosure K :=
{ toRingHom := e.symm.toRingHom.comp i.toRingHom
commutes' := by
intro x
change e.symm (i (algebraMap K' L (c x))) = algebraMap K (AlgebraicClosure K) x
rw [i.commutes, ← he, e.symm_apply_apply] }
have h := congrArg e (absoluteLocalArtinMap_lift_action K L j a sigma hsigma z)
change e (sigma (e.symm (i z))) = e (e.symm (i (abelianLocalArtinMonoidHom K L a z))) at h
rw [e.apply_symm_apply] at h
have hArtin := abelianLocalArtinMonoidHom_semilinear_action K K' L L
c (RingEquiv.refl L) (fun _ ↦ rfl) hc a z
change abelianLocalArtinMonoidHom K L a z =
abelianLocalArtinMonoidHom K' L (Units.map c.toMonoidHom a) z at hArtin
exact h.trans (congrArg i hArtin)