Module

FiniteNormExtension.lean

Nyll.ValuedFieldTheory.Valuation.AbsoluteValue.AlgebraicExtension.FiniteNormExtension
58 declarations indexed from sourceView source ↗

Finite-extension norm formula for complete valuations

The nonarchimedean branch uses mathlib's spectral norm. The archimedean branch uses the completed Ostrowski theorem, reducing the statement to the standard ℝ and ℂ absolute values.

Declarations

AlgebraicNumberTheory.Valuations.finiteStandardRealAbsoluteValue

the finite-degree norm construction, archimedean standard branch: the usual absolute value on ℝ, bundled in the same AbsoluteValue API as the rest of the absolute-value construction.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
abbrev finiteStandardRealAbsoluteValue : AbsoluteValue ℝ ℝ
AlgebraicNumberTheory.Valuations.finiteStandardComplexAbsoluteValue

the finite-degree norm construction, archimedean standard branch: the usual absolute value on ℂ.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
abbrev finiteStandardComplexAbsoluteValue : AbsoluteValue ℂ ℝ
AlgebraicNumberTheory.Valuations.finiteRpowUniformSpaceEq

Taking a positive s-power of an absolute value does not change its uniformity.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteRpowUniformSpaceEq
    {F : Type*} [Field F] (v : AbsoluteValue F ℝ)
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1) :
    (AbsoluteValue.rpow v s hs0 hs1).uniformSpace =
      v.uniformSpace
AlgebraicNumberTheory.Valuations.finiteRpowCompleteIff

Completeness is unchanged by taking a positive s-power of an absolute value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteRpowCompleteIff
    {F : Type*} [Field F] (v : AbsoluteValue F ℝ)
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1) :
    IsCompleteForAbsoluteValue
        (AbsoluteValue.rpow v s hs0 hs1) ↔
      IsCompleteForAbsoluteValue v
AlgebraicNumberTheory.Valuations.finiteStandardComplete

The absolute value underlying a complete normed field is complete.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteStandardComplete
    (F : Type*) [NormedField F] [CompleteSpace F] :
    IsCompleteForAbsoluteValue (NormedField.toAbsoluteValue F)
AlgebraicNumberTheory.Valuations.finiteStandardRealComplete

The standard real absolute value is complete.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteStandardRealComplete :
    IsCompleteForAbsoluteValue finiteStandardRealAbsoluteValue
AlgebraicNumberTheory.Valuations.finiteStandardComplexComplete

The standard complex absolute value is complete.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteStandardComplexComplete :
    IsCompleteForAbsoluteValue finiteStandardComplexAbsoluteValue
AlgebraicNumberTheory.Valuations.finiteStandardRealRpowComplete

The s-power of the standard real absolute value is complete.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteStandardRealRpowComplete
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1) :
    IsCompleteForAbsoluteValue
      (AbsoluteValue.rpow
        finiteStandardRealAbsoluteValue s hs0 hs1)
AlgebraicNumberTheory.Valuations.finiteStandardComplexRpowComplete

The s-power of the standard complex absolute value is complete.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteStandardComplexRpowComplete
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1) :
    IsCompleteForAbsoluteValue
      (AbsoluteValue.rpow
        finiteStandardComplexAbsoluteValue s hs0 hs1)
AlgebraicNumberTheory.Valuations.finiteStandardComplexExtendsReal

the finite-degree norm construction, archimedean standard branch: the usual complex absolute value extends the usual real absolute value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteStandardComplexExtendsReal
    (x : ℝ) :
    finiteStandardComplexAbsoluteValue (algebraMap ℝ ℂ x) =
      finiteStandardRealAbsoluteValue x
AlgebraicNumberTheory.Valuations.finiteCompAlgEquivComplete

Completeness is preserved when an absolute value is pulled back along an algebra equivalence.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteCompAlgEquivComplete
    {K L E : Type*} [Field K] [Field L] [Field E]
    [Algebra K L] [Algebra K E] (e : L ≃ₐ[K] E)
    (w : AbsoluteValue E ℝ)
    (hwcomplete : IsCompleteForAbsoluteValue w) :
    IsCompleteForAbsoluteValue
      (AbsoluteValue.compAlgEquiv e w)
AlgebraicNumberTheory.Valuations.finiteRealAlgEquivRealUniqueRpowExtension

In the ℝ branch, an absolute value extending the s-power of the standard real absolute value is the s-power of the transported standard absolute value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteRealAlgEquivRealUniqueRpowExtension
    {L : Type*} [Field L] [Algebra ℝ L] (e : L ≃ₐ[ℝ] ℝ)
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1)
    (w : AbsoluteValue L ℝ)
    (hw : ∀ x : ℝ, w (algebraMap ℝ L x) =
      finiteStandardRealAbsoluteValue x ^ s) :
    w = AbsoluteValue.rpow
      (AbsoluteValue.compAlgEquiv
        e finiteStandardRealAbsoluteValue)
      s hs0 hs1
AlgebraicNumberTheory.Valuations.finiteRealAlgEquivComplexUniqueRpowExtension

In the ℂ branch over ℝ, the s-power of the usual complex absolute value is the unique extension of the s-power of the usual real absolute value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteRealAlgEquivComplexUniqueRpowExtension
    {L : Type*} [Field L] [Algebra ℝ L] (e : L ≃ₐ[ℝ] ℂ)
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1)
    (w : AbsoluteValue L ℝ)
    (hw : ∀ x : ℝ, w (algebraMap ℝ L x) =
      finiteStandardRealAbsoluteValue x ^ s) :
    w = AbsoluteValue.rpow
      (AbsoluteValue.compAlgEquiv
        e finiteStandardComplexAbsoluteValue)
      s hs0 hs1
AlgebraicNumberTheory.Valuations.finiteComplexAlgEquivComplexUniqueRpowExtension

Over ℂ, an absolute value extending the s-power of the usual complex absolute value is the transported s-power.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteComplexAlgEquivComplexUniqueRpowExtension
    {L : Type*} [Field L] [Algebra ℂ L] (e : L ≃ₐ[ℂ] ℂ)
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1)
    (w : AbsoluteValue L ℝ)
    (hw : ∀ z : ℂ, w (algebraMap ℂ L z) =
      finiteStandardComplexAbsoluteValue z ^ s) :
    w = AbsoluteValue.rpow
      (AbsoluteValue.compAlgEquiv
        e finiteStandardComplexAbsoluteValue)
      s hs0 hs1
AlgebraicNumberTheory.Valuations.finiteNormExtension_real_self_normFormulaValue_eq_standard

the finite-degree norm construction, archimedean standard branch over ℝ | ℝ: the construction's finite norm formula in degree one is the usual real absolute value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_real_self_normFormulaValue_eq_standard
    (x : ℝ) :
    finiteExtensionNormFormulaValue (K := ℝ) (L := ℝ)
      finiteStandardRealAbsoluteValue x =
      finiteStandardRealAbsoluteValue x
AlgebraicNumberTheory.Valuations.finiteNormExtension_complex_self_normFormulaValue_eq_standard

the finite-degree norm construction, archimedean standard branch over ℂ | ℂ: the construction's finite norm formula in degree one is the usual complex absolute value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_complex_self_normFormulaValue_eq_standard
    (z : ℂ) :
    finiteExtensionNormFormulaValue (K := ℂ) (L := ℂ)
      finiteStandardComplexAbsoluteValue z =
      finiteStandardComplexAbsoluteValue z
AlgebraicNumberTheory.Valuations.finiteNormExtension_real_complex_normFormulaValue_eq_standard

the finite-degree norm construction, archimedean standard branch over ℂ | ℝ: the construction's finite norm formula |N_{ℂ/ℝ}(z)|^(1/2) is the usual complex absolute value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_real_complex_normFormulaValue_eq_standard
    (z : ℂ) :
    finiteExtensionNormFormulaValue (K := ℝ) (L := ℂ)
      finiteStandardRealAbsoluteValue z =
      finiteStandardComplexAbsoluteValue z
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_normFormulaValue_rpow

The finite norm formula commutes with taking an s-power of the base absolute value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_finite_normFormulaValue_rpow
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ) (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1)
    (x : L) :
    finiteExtensionNormFormulaValue
        (AbsoluteValue.rpow v s hs0 hs1) x =
      finiteExtensionNormFormulaValue v x ^ s
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_normFormulaValue_algEquiv

The finite norm formula is invariant under algebra equivalence of the top field.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_finite_normFormulaValue_algEquiv
    {K L E : Type*} [Field K] [Field L] [Field E]
    [Algebra K L] [Algebra K E]
    [FiniteDimensional K L] [FiniteDimensional K E]
    (v : AbsoluteValue K ℝ) (e : L ≃ₐ[K] E) (x : L) :
    finiteExtensionNormFormulaValue v x =
      finiteExtensionNormFormulaValue v (e x)
AlgebraicNumberTheory.Valuations.finiteNormExtension_real_self_normFormulaValue_eq_rpow

the finite-degree norm construction, archimedean s-power branch over ℝ | ℝ: the finite norm formula is |x|^s.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_real_self_normFormulaValue_eq_rpow
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1) (x : ℝ) :
    finiteExtensionNormFormulaValue (K := ℝ) (L := ℝ)
      (AbsoluteValue.rpow
        finiteStandardRealAbsoluteValue s hs0 hs1) x =
      finiteStandardRealAbsoluteValue x ^ s
AlgebraicNumberTheory.Valuations.finiteNormExtension_complex_self_normFormulaValue_eq_rpow

the finite-degree norm construction, archimedean s-power branch over ℂ | ℂ: the finite norm formula is |z|^s.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_complex_self_normFormulaValue_eq_rpow
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1) (z : ℂ) :
    finiteExtensionNormFormulaValue (K := ℂ) (L := ℂ)
      (AbsoluteValue.rpow
        finiteStandardComplexAbsoluteValue s hs0 hs1) z =
      finiteStandardComplexAbsoluteValue z ^ s
AlgebraicNumberTheory.Valuations.finiteNormExtension_real_complex_normFormulaValue_eq_rpow

the finite-degree norm construction, archimedean s-power branch over ℂ | ℝ: the finite norm formula is the s-power of the usual complex absolute value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_real_complex_normFormulaValue_eq_rpow
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1) (z : ℂ) :
    finiteExtensionNormFormulaValue (K := ℝ) (L := ℂ)
      (AbsoluteValue.rpow
        finiteStandardRealAbsoluteValue s hs0 hs1) z =
      finiteStandardComplexAbsoluteValue z ^ s
AlgebraicNumberTheory.Valuations.finiteWithAbsNontriviallyNormedField

The nontrivial-valuation convention excludes the trivial valuation in the nontrivial-valuation convention; for the nonarchimedean spectral branch this supplies the corresponding mathlib NontriviallyNormedField instance on WithAbs v.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
def finiteWithAbsNontriviallyNormedField
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ) (hv : v.IsNontrivial) :
    NontriviallyNormedField (WithAbs v)
AlgebraicNumberTheory.Valuations.finiteWithAbsAlgebraIsAlgebraic

WithAbs is only a type synonym, so algebraicity is transported from the original base field without adding data.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
instance finiteWithAbsAlgebraIsAlgebraic
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L] (v : AbsoluteValue K ℝ) :
    Algebra.IsAlgebraic (WithAbs v) L
AlgebraicNumberTheory.Valuations.finiteWithAbsIsUltrametricDist

the real absolute-value classification, translated to the WithAbs normed-field structure.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteWithAbsIsUltrametricDist
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) :
    IsUltrametricDist (WithAbs v)
AlgebraicNumberTheory.Valuations.finiteSpectralNormExtendsBase

the finite-degree norm construction, existence branch: the spectral extension restricts to the given chosen valuation on the base field.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteSpectralNormExtendsBase
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L]
    (v : AbsoluteValue K ℝ) (x : K) :
    _root_.spectralNorm (WithAbs v) L (algebraMap K L x) = v x
AlgebraicNumberTheory.Valuations.finiteSpectralNormStrongTriangle

the finite-degree norm construction, existence branch: the spectral extension satisfies the strong triangle inequality in the nonarchimedean case.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteSpectralNormStrongTriangle
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L]
    (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) (x y : L) :
    _root_.spectralNorm (WithAbs v) L (x + y) ≤
      max (_root_.spectralNorm (WithAbs v) L x)
        (_root_.spectralNorm (WithAbs v) L y)
AlgebraicNumberTheory.Valuations.finiteSpectralNormEqZeroIff

the finite-degree norm construction, existence branch: the spectral extension vanishes exactly at zero.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteSpectralNormEqZeroIff
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L]
    (v : AbsoluteValue K ℝ) (x : L) :
    _root_.spectralNorm (WithAbs v) L x = 0 ↔ x = 0
AlgebraicNumberTheory.Valuations.finiteSpectralNormMul

the finite-degree norm construction, existence branch: multiplicativity of the spectral extension over an algebraic extension.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteSpectralNormMul
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) (x y : L) :
    _root_.spectralNorm (WithAbs v) L (x * y) =
      _root_.spectralNorm (WithAbs v) L x *
        _root_.spectralNorm (WithAbs v) L y
AlgebraicNumberTheory.Valuations.finiteBaseIsNonarchimedean
Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteBaseIsNonarchimedean
    {K : Type*} [Field K] (v : AbsoluteValue K ℝ)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v) :
    IsNonarchimedean (v : K → ℝ)
AlgebraicNumberTheory.Valuations.finiteSpectralExtension
Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
def finiteSpectralExtension
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) : AbsoluteValue L ℝ
AlgebraicNumberTheory.Valuations.finiteSpectralExtension_extends_base
Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteSpectralExtension_extends_base
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) (x : K) :
    finiteSpectralExtension (K := K) (L := L)
      v hcomplete hnonarch hv (algebraMap K L x) = v x
AlgebraicNumberTheory.Valuations.finiteSpectralNormCompleteSpace

Finite-dimensional completeness for the spectral norm.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteSpectralNormCompleteSpace
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) :
    letI : NontriviallyNormedField (WithAbs v) :=
      finiteWithAbsNontriviallyNormedField v hv
    letI : Algebra (WithAbs v) L :=
      WithAbs.algebraLeft L v
    letI : CompleteSpace (WithAbs v) :=
      completeSpace_withAbs_of_isCompleteForAbsoluteValue v hcomplete
    letI : IsUltrametricDist (WithAbs v) :=
      finiteWithAbsIsUltrametricDist v hnonarch
    letI : Algebra.IsAlgebraic (WithAbs v) L :=
      finiteWithAbsAlgebraIsAlgebraic v
    @CompleteSpace L (_root_.spectralNorm.uniformSpace (WithAbs v) L) := by
  let : NontriviallyNormedField (WithAbs v) :=
    finiteWithAbsNontriviallyNormedField v hv
  let : Algebra (WithAbs v) L :=
    WithAbs.algebraLeft L v
  let : CompleteSpace (WithAbs v) :=
    completeSpace_withAbs_of_isCompleteForAbsoluteValue v hcomplete
  let : IsUltrametricDist (WithAbs v) :=
    finiteWithAbsIsUltrametricDist v hnonarch
  let : Algebra.IsAlgebraic (WithAbs v) L :=
    finiteWithAbsAlgebraIsAlgebraic v
  infer_instance
AlgebraicNumberTheory.Valuations.finiteSpectralExtensionComplete

the finite-degree norm construction, finite-extension completeness for the constructed absolute-value extension.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteSpectralExtensionComplete
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) :
    IsCompleteForAbsoluteValue
      (finiteSpectralExtension (K := K) (L := L)
        v hcomplete hnonarch hv)
AlgebraicNumberTheory.Valuations.finiteSpectralNormEqMinpolyCoeffZeroRpow

the finite-degree norm construction, finite norm-formula source: the spectral extension is computed from the constant coefficient of the minimal polynomial.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteSpectralNormEqMinpolyCoeffZeroRpow
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) (x : L) :
    _root_.spectralNorm (WithAbs v) L x =
      v ((minpoly K x).coeff 0) ^
        (1 / ((minpoly K x).natDegree : ℝ))
AlgebraicNumberTheory.Valuations.finiteSpectralExtensionEqMinpolyCoeffZeroRpow

the finite-degree norm construction, the same constant-term formula for the constructed absolute-value extension.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteSpectralExtensionEqMinpolyCoeffZeroRpow
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) (x : L) :
    finiteSpectralExtension (K := K) (L := L)
      v hcomplete hnonarch hv x =
      v ((minpoly K x).coeff 0) ^
        (1 / ((minpoly K x).natDegree : ℝ))
AlgebraicNumberTheory.Valuations.finiteNormExtension_abs_norm_eq_minpoly_coeff_zero_pow_relfinrank

the finite-degree norm construction, finite norm-formula source: the absolute value of the finite-extension norm is the corresponding power of the absolute value of the constant coefficient of the minimal polynomial.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_abs_norm_eq_minpoly_coeff_zero_pow_relfinrank
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ) (x : L) :
    v (Algebra.norm K x) =
      v ((minpoly K x).coeff 0) ^
        (Module.finrank (IntermediateField.adjoin K ({x} : Set L)) L)
AlgebraicNumberTheory.Valuations.finiteNatPowRpowInvMulCancel

For a nonnegative real number, taking an nth natural power and then the reciprocal m*n real power cancels the n factor.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNatPowRpowInvMulCancel
    {a : ℝ} (ha : 0 ≤ a) {m n : ℕ} (hm : 0 < m) (hn : 0 < n) :
    (a ^ n) ^ (1 / ((m * n : ℕ) : ℝ)) = a ^ (1 / (m : ℝ))
AlgebraicNumberTheory.Valuations.finiteNatPowRpowInvMulCancelLeft

Symmetric form of finiteNatPowRpowInvMulCancel, cancelling the left natural-power factor.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNatPowRpowInvMulCancelLeft
    {a : ℝ} (ha : 0 ≤ a) {m n : ℕ} (hm : 0 < m) (hn : 0 < n) :
    (a ^ m) ^ (1 / ((m * n : ℕ) : ℝ)) = a ^ (1 / (n : ℝ))
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_normFormulaValue_eq_spectralAbsoluteValue

the finite-degree norm construction, finite case: the norm formula agrees with the constructed spectral absolute-value extension.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_finite_normFormulaValue_eq_spectralAbsoluteValue
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) (x : L) :
    finiteExtensionNormFormulaValue v x =
      finiteSpectralExtension (K := K) (L := L)
        v hcomplete hnonarch hv x
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_normFormulaValue_strong_triangle

the finite-degree norm construction, finite case: the finite norm formula inherits the strong triangle inequality from the spectral extension.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_finite_normFormulaValue_strong_triangle
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) (x y : L) :
    finiteExtensionNormFormulaValue v (x + y) ≤
      max (finiteExtensionNormFormulaValue v x)
        (finiteExtensionNormFormulaValue v y)
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_normFormulaAbsoluteValue

the finite-degree norm construction, finite nonarchimedean branch: the norm formula, bundled as an absolute value on the finite extension.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
def finiteNormExtension_finite_normFormulaAbsoluteValue
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) : AbsoluteValue L ℝ where
  toFun := finiteExtensionNormFormulaValue v
  map_mul' x y := by
    rw [finiteNormExtension_finite_normFormulaValue_eq_spectralAbsoluteValue
        v hcomplete hnonarch hv (x * y),
      finiteNormExtension_finite_normFormulaValue_eq_spectralAbsoluteValue
        v hcomplete hnonarch hv x,
      finiteNormExtension_finite_normFormulaValue_eq_spectralAbsoluteValue
        v hcomplete hnonarch hv y]
    exact (finiteSpectralExtension (K := K) (L := L)
      v hcomplete hnonarch hv).map_mul x y
  nonneg' x := finiteExtensionNormFormulaValue_nonneg v x
  eq_zero' x := by
    rw [finiteNormExtension_finite_normFormulaValue_eq_spectralAbsoluteValue
      v hcomplete hnonarch hv x]
    exact (finiteSpectralExtension (K := K) (L := L)
      v hcomplete hnonarch hv).eq_zero' x
  add_le' x y := by
    have hstrong :=
      finiteNormExtension_finite_normFormulaValue_strong_triangle
        v hcomplete hnonarch hv x y
    have hx_nonneg : 0 ≤ finiteExtensionNormFormulaValue v x :=
      finiteExtensionNormFormulaValue_nonneg v x
    have hy_nonneg : 0 ≤ finiteExtensionNormFormulaValue v y :=
      finiteExtensionNormFormulaValue_nonneg v y
    exact hstrong.trans
      (max_le
        (le_add_of_nonneg_right hy_nonneg)
        (le_add_of_nonneg_left hx_nonneg))
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_normFormulaAbsoluteValue_apply

The bundled finite norm formula is pointwise the function x ↦ |N_{L/K}(x)|^(1/[L:K]).

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_finite_normFormulaAbsoluteValue_apply
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) (x : L) :
    finiteNormExtension_finite_normFormulaAbsoluteValue (K := K) (L := L)
      v hcomplete hnonarch hv x =
      finiteExtensionNormFormulaValue v x
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_normFormulaAbsoluteValue_eq_spectralAbsoluteValue

In the finite case, the norm-formula absolute value agrees with the spectral extension.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_finite_normFormulaAbsoluteValue_eq_spectralAbsoluteValue
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) :
    finiteNormExtension_finite_normFormulaAbsoluteValue (K := K) (L := L)
      v hcomplete hnonarch hv =
      finiteSpectralExtension (K := K) (L := L)
        v hcomplete hnonarch hv
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_normFormulaAbsoluteValue_extends_base

the finite-degree norm construction, finite case: the norm-formula absolute value restricts to the given base valuation.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_finite_normFormulaAbsoluteValue_extends_base
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) (x : K) :
    finiteNormExtension_finite_normFormulaAbsoluteValue (K := K) (L := L)
      v hcomplete hnonarch hv (algebraMap K L x) = v x
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_normFormulaAbsoluteValue_complete

the finite-degree norm construction, finite case: the finite extension is complete for the norm-formula absolute value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_finite_normFormulaAbsoluteValue_complete
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) :
    IsCompleteForAbsoluteValue
      (finiteNormExtension_finite_normFormulaAbsoluteValue (K := K) (L := L)
        v hcomplete hnonarch hv)
AlgebraicNumberTheory.Valuations.finiteNormExtension_unique_extension_finite_normFormulaAbsoluteValue

the finite-degree norm construction, finite case: the norm-formula absolute value is the unique absolute-value extension of the complete nonarchimedean base valuation.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_unique_extension_finite_normFormulaAbsoluteValue
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial)
    (w : AbsoluteValue L ℝ)
    (hw_ext : ∀ x : K, w (algebraMap K L x) = v x) :
    w = finiteNormExtension_finite_normFormulaAbsoluteValue (K := K) (L := L)
      v hcomplete hnonarch hv
AlgebraicNumberTheory.Valuations.FiniteNormExtensionFiniteExtensionResult

Explicit result package for the finite-degree norm construction, finite nonarchimedean case: the unique extension is the norm formula and the finite extension is complete.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
structure FiniteNormExtensionFiniteExtensionResult
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ) where
  /-- The distinguished absolute value on the finite extension. -/
  extension : AbsoluteValue L ℝ
  /-- The distinguished absolute value restricts to the given base absolute value. -/
  extends_base : ∀ x : K, extension (algebraMap K L x) = v x
  /-- Every extension of the base absolute value equals the distinguished extension. -/
  unique :
    ∀ w : AbsoluteValue L ℝ,
      (∀ x : K, w (algebraMap K L x) = v x) → w = extension
  /-- The distinguished extension is given by the finite-extension norm formula. -/
  norm_formula : ∀ x : L, extension x = finiteExtensionNormFormulaValue v x
  /-- The distinguished extension is complete. -/
  complete_extension : IsCompleteForAbsoluteValue extension
AlgebraicNumberTheory.Valuations.FiniteNormExtensionFiniteExtensionResult.ext_unique

Finite-extension result packages over the same base absolute value are unique. In particular, choosing a package does not affect its public value.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem FiniteNormExtensionFiniteExtensionResult.ext_unique
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    {v : AbsoluteValue K ℝ}
    (R S : FiniteNormExtensionFiniteExtensionResult (K := K) (L := L) v) :
    R = S
AlgebraicNumberTheory.Valuations.finiteNormExtension_real_finite_rpow_extension

the finite-degree norm construction, explicit archimedean finite theorem over ℝ: in finite degree, the unique extension is the norm formula and the extension is complete.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
def finiteNormExtension_real_finite_rpow_extension
    {L : Type*} [Field L] [Algebra ℝ L]
    [FiniteDimensional ℝ L]
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1) :
    FiniteNormExtensionFiniteExtensionResult (K := ℝ) (L := L)
      (AbsoluteValue.rpow
        finiteStandardRealAbsoluteValue s hs0 hs1)
AlgebraicNumberTheory.Valuations.finiteNormExtension_complex_finite_rpow_extension

the finite-degree norm construction, explicit archimedean finite theorem over ℂ: in finite degree, the unique extension is the norm formula and the extension is complete.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
def finiteNormExtension_complex_finite_rpow_extension
    {L : Type*} [Field L] [Algebra ℂ L]
    [FiniteDimensional ℂ L]
    (s : ℝ) (hs0 : 0 < s) (hs1 : s ≤ 1) :
    FiniteNormExtensionFiniteExtensionResult (K := ℂ) (L := L)
      (AbsoluteValue.rpow
        finiteStandardComplexAbsoluteValue s hs0 hs1)
AlgebraicNumberTheory.Valuations.finiteIsAlgebraicOfBaseRingEquiv

Algebraicity is preserved when the base field is replaced by a ring equivalent field and the top algebra structure is transported through the same equivalence.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteIsAlgebraicOfBaseRingEquiv
    {K E L : Type*} [Field K] [Field E] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L] (σ : K ≃+* E) :
    letI : Algebra E K := RingHom.toAlgebra σ.symm.toRingHom
    letI : Algebra E L :=
      RingHom.toAlgebra ((algebraMap K L).comp σ.symm.toRingHom)
    Algebra.IsAlgebraic E L := by
  let : Algebra E K := RingHom.toAlgebra σ.symm.toRingHom
  let : Algebra E L :=
    RingHom.toAlgebra ((algebraMap K L).comp σ.symm.toRingHom)
  have : IsScalarTower E K L :=
    IsScalarTower.of_algebraMap_eq (fun r => by
      simp [RingHom.algebraMap_toAlgebra])
  let e : K ≃ₐ[E] E := AlgEquiv.ofRingEquiv (f := σ) (by
    intro r
    simp [RingHom.algebraMap_toAlgebra])
  have : Algebra.IsAlgebraic E K := e.symm.isAlgebraic
  exact Algebra.IsAlgebraic.trans E K L
AlgebraicNumberTheory.Valuations.finiteNormExtension_finiteDimensional_of_base_ringEquiv

Finite-dimensionality is preserved when the base field is replaced by an equivalent field and the top algebra structure is transported along the same equivalence.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_finiteDimensional_of_base_ringEquiv
    {K E L : Type*} [Field K] [Field E] [Field L] [Algebra K L]
    [FiniteDimensional K L] (σ : K ≃+* E) :
    letI : Algebra E L :=
      RingHom.toAlgebra ((algebraMap K L).comp σ.symm.toRingHom)
    FiniteDimensional E L := by
  let : Algebra E K := RingHom.toAlgebra σ.symm.toRingHom
  let : Algebra E L :=
    RingHom.toAlgebra ((algebraMap K L).comp σ.symm.toRingHom)
  have : IsScalarTower E K L :=
    IsScalarTower.of_algebraMap_eq (fun r => by
      simp [RingHom.algebraMap_toAlgebra])
  let e : K ≃ₐ[E] E := AlgEquiv.ofRingEquiv (f := σ) (by
    intro r
    simp [RingHom.algebraMap_toAlgebra])
  have : Module.Finite E K := Module.Finite.equiv e.symm.toLinearEquiv
  exact FiniteDimensional.trans E K L
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_normFormulaValue_base_ringEquiv

The finite norm formula is preserved by replacing the base field by an equivalent field, provided the two base absolute values correspond under that equivalence.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
theorem finiteNormExtension_finite_normFormulaValue_base_ringEquiv
    {K E L : Type*} [Field K] [Field E] [Field L] [Algebra K L]
    [FiniteDimensional K L] (σ : K ≃+* E)
    (vK : AbsoluteValue K ℝ) (vE : AbsoluteValue E ℝ)
    (hvσ : ∀ x : K, vE (σ x) = vK x)
    (x : L) :
    letI : Algebra E L :=
      RingHom.toAlgebra ((algebraMap K L).comp σ.symm.toRingHom)
    letI : FiniteDimensional E L :=
      finiteNormExtension_finiteDimensional_of_base_ringEquiv (K := K)
        (E := E) (L := L) σ
    finiteExtensionNormFormulaValue (K := E) (L := L) vE x =
      finiteExtensionNormFormulaValue (K := K) (L := L) vK x := by
  let : Algebra E K := RingHom.toAlgebra σ.symm.toRingHom
  let : Algebra E L :=
    RingHom.toAlgebra ((algebraMap K L).comp σ.symm.toRingHom)
  have : IsScalarTower E K L :=
    IsScalarTower.of_algebraMap_eq (fun r => by
      simp [RingHom.algebraMap_toAlgebra])
  let e : K ≃ₐ[E] E := AlgEquiv.ofRingEquiv (f := σ) (by
    intro r
    simp [RingHom.algebraMap_toAlgebra])
  have : Module.Finite E K := Module.Finite.equiv e.symm.toLinearEquiv
  have : FiniteDimensional E L := FiniteDimensional.trans E K L
  have hfinEK : Module.finrank E K = 1 := by
    rw [e.toLinearEquiv.finrank_eq]
    simp
  have hfin : Module.finrank K L = Module.finrank E L := by
    have hmul := Module.finrank_mul_finrank E K L
    rwa [hfinEK, one_mul] at hmul
  have he : (algebraMap E L).comp σ.toRingHom = algebraMap K L := by
    ext x
    simp [RingHom.algebraMap_toAlgebra]
  have hnorm : Algebra.norm E x = σ (Algebra.norm K x) :=
    (Algebra.norm_eq_of_ringEquiv σ he x).symm
  rw [finiteExtensionNormFormulaValue, finiteExtensionNormFormulaValue]
  rw [hnorm, hvσ, ← hfin]
AlgebraicNumberTheory.Valuations.finiteNormExtension_finiteExtensionResult_base_ringEquiv

Transport a finite-extension result across an equivalent base field.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
def finiteNormExtension_finiteExtensionResult_base_ringEquiv
    {K E L : Type*} [Field K] [Field E] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (σ : K ≃+* E) (vK : AbsoluteValue K ℝ) (vE : AbsoluteValue E ℝ)
    (hvσ : ∀ x : K, vE (σ x) = vK x)
    (R :
      letI : Algebra E L :=
        RingHom.toAlgebra ((algebraMap K L).comp σ.symm.toRingHom)
      letI : FiniteDimensional E L :=
        finiteNormExtension_finiteDimensional_of_base_ringEquiv
          (K := K) (E := E) (L := L) σ
      FiniteNormExtensionFiniteExtensionResult (K := E) (L := L) vE) :
    FiniteNormExtensionFiniteExtensionResult (K := K) (L := L) vK := by
  letI : Algebra E L :=
    RingHom.toAlgebra ((algebraMap K L).comp σ.symm.toRingHom)
  letI : FiniteDimensional E L :=
    finiteNormExtension_finiteDimensional_of_base_ringEquiv
      (K := K) (E := E) (L := L) σ
  exact
    { extension := R.extension
      extends_base := by
        intro x
        have hbase := R.extends_base (σ x)
        have hmap :
            algebraMap E L (σ x) = algebraMap K L x := by
          simp [RingHom.algebraMap_toAlgebra]
        calc
          R.extension (algebraMap K L x)
              = R.extension (algebraMap E L (σ x)) := by rw [hmap]
          _ = vE (σ x) := hbase
          _ = vK x := hvσ x
      unique := by
        intro w hw
        apply R.unique w
        intro z
        have hmap :
            algebraMap E L z = algebraMap K L (σ.symm z) := by
          simp [RingHom.algebraMap_toAlgebra]
        calc
          w (algebraMap E L z)
              = w (algebraMap K L (σ.symm z)) := by rw [hmap]
          _ = vK (σ.symm z) := hw (σ.symm z)
          _ = vE z := by
            simpa using (hvσ (σ.symm z)).symm
      norm_formula := by
        intro x
        calc
          R.extension x
              = finiteExtensionNormFormulaValue (K := E) (L := L) vE x :=
                R.norm_formula x
          _ = finiteExtensionNormFormulaValue (K := K) (L := L) vK x := by
                exact finiteNormExtension_finite_normFormulaValue_base_ringEquiv
                  (K := K) (E := E) (L := L) σ vK vE hvσ x
      complete_extension := R.complete_extension }
AlgebraicNumberTheory.Valuations.finiteNormExtension_nonarchimedean_finite_extension

the finite-degree norm construction, explicit finite nonarchimedean theorem: in finite degree, the unique extension is |N_{L/K}(x)|^(1/[L:K]), and the finite extension is complete.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
def finiteNormExtension_nonarchimedean_finite_extension
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hnonarch : LubinTate.Valuations.NonarchimedeanAbsoluteValue v)
    (hv : v.IsNontrivial) :
    FiniteNormExtensionFiniteExtensionResult (K := K) (L := L) v where
  extension :=
    finiteNormExtension_finite_normFormulaAbsoluteValue (K := K) (L := L)
      v hcomplete hnonarch hv
  extends_base :=
    finiteNormExtension_finite_normFormulaAbsoluteValue_extends_base
      (K := K) (L := L) v hcomplete hnonarch hv
  unique :=
    finiteNormExtension_unique_extension_finite_normFormulaAbsoluteValue
      (K := K) (L := L) v hcomplete hnonarch hv
  norm_formula :=
    finiteNormExtension_finite_normFormulaAbsoluteValue_apply
      (K := K) (L := L) v hcomplete hnonarch hv
  complete_extension :=
    finiteNormExtension_finite_normFormulaAbsoluteValue_complete
      (K := K) (L := L) v hcomplete hnonarch hv
AlgebraicNumberTheory.Valuations.finiteNormExtension_archimedean_finite_extension

Explicit archimedean finite-extension theorem: after the archimedean classification, the finite norm formula and completeness reduce to the standard ℝ/ℂ cases.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
def finiteNormExtension_archimedean_finite_extension
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (harch : LubinTate.Valuations.ArchimedeanAbsoluteValue v) :
    FiniteNormExtensionFiniteExtensionResult (K := K) (L := L) v
AlgebraicNumberTheory.Valuations.finiteNormExtension_finite_extension

the finite-degree norm construction, explicit finite theorem for the nontrivial valuations: in finite degree the unique extension is the norm formula, and the finite extension is complete.

Source context 3 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
namespace AlgebraicNumberTheory
namespace Valuations
def finiteNormExtension_finite_extension
    {K L : Type*} [Field K] [Field L] [Algebra K L]
    [FiniteDimensional K L]
    (v : AbsoluteValue K ℝ)
    (hcomplete : IsCompleteForAbsoluteValue v)
    (hv : v.IsNontrivial) :
    FiniteNormExtensionFiniteExtensionResult (K := K) (L := L) v