ClassFieldTower.Martinet.Shafarevich.log_character_difference_of_power_witness
Source context 3 commands
Surrounding namespaces, section variables, and local commands at this declaration.
namespace ClassFieldTower.Martinet.Shafarevich
open KummerTheory LocalFieldTheory.DiscreteValuationField
open LocalFieldTheory.DiscreteValuationField.MultiplicativeIntegerValuation
-- Keep the analytic correction over an abstract field. This prevents the
-- intermediate-field scalar tower from being searched in each log identity.Lean source · statement
theorem log_character_difference_of_power_witness
{F E : Type*} [Field F] [Field E] [Algebra F E] [CharZero E]
(vE : _root_.Valuation E (WithZero (Multiplicative ℤ)))
[ValuationTheory.DiscreteValuationField.Valuation.IsCompleteDiscrete vE]
(p : ℕ) [Fact p.Prime] [CharP (IsLocalRing.ResidueField vE.valuationSubring) p]
{ζ : E} (hζ : IsPrimitiveRoot ζ p)
(u : CompleteDVF.higherPrincipalUnitGroup (completeDVFOfWithZeroValuation vE) 1)
(υ : Gal(E/F)) (hval : ∀ x : E, vE (υ x) = vE x)
(a : ℕ) (ha : a < p) (hroot : υ ζ = ζ ^ a) (y : Eˣ)
(hy : Units.map υ.toRingEquiv.toMonoidHom
(CompleteDVF.valuationSubringUnitsToFieldUnits (completeDVFOfWithZeroValuation vE)
(u : (completeDVFOfWithZeroValuation vE).valuationSubringˣ)) /
(CompleteDVF.valuationSubringUnitsToFieldUnits (completeDVFOfWithZeroValuation vE)
(u : (completeDVFOfWithZeroValuation vE).valuationSubringˣ)) ^ a = y ^ (p ^ 1)) :
∃ z : CompleteDVF.higherPrincipalUnitGroup (completeDVFOfWithZeroValuation vE) 1,
υ (principalUnitLogOfMixedChar vE p u).toAdd -
padicIntToFieldOfMixedChar vE p
(primitiveRootTeichmullerCharacter F p hζ υ : ℤ_[p]) *
(principalUnitLogOfMixedChar vE p u).toAdd =
(p : E) * (principalUnitLogOfMixedChar vE p z).toAdd