Module

ExtensionFactorClassification.lean

Nyll.ValuedFieldTheory.Valuation.Completion.ExtensionFactorClassification
41 declarations indexed from sourceView source ↗

Classification of extensions of a completed absolute value

For a simple finite extension L = K(α), the extensions of a nontrivial absolute value of K correspond to the distinct irreducible factors, over the completion, of an irreducible polynomial having α as a root. The final theorem below also records the explicit pullback valuation and the extension of the chosen embedding to the completed field.

Declarations

AlgebraicNumberTheory.Valuations.completionExtensionFactor_completionPolynomial

Base change of the chosen irreducible polynomial from K to its completion K_v.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
abbrev completionExtensionFactor_completionPolynomial
    {K : Type u} [Field K] (vK : AbsoluteValue K ℝ) (f : K[X]) :
    vK.Completion[X]
AlgebraicNumberTheory.Valuations.CompletionExtensionFactorCompletionFactors

The distinct normalized irreducible factors appearing after base change to the completion. Repeated factors of an inseparable polynomial occur only once.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
abbrev CompletionExtensionFactorCompletionFactors
    {K : Type u} [Field K] (vK : AbsoluteValue K ℝ) (f : K[X])
AlgebraicNumberTheory.Valuations.completionExtensionFactor_root_isIntegral

A root of the chosen irreducible polynomial is integral over the base field. This is derived from hf and hroot; it is not an extra hypothesis of the extension-factor correspondence.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_root_isIntegral
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0) : IsIntegral K α
AlgebraicNumberTheory.Valuations.completionExtensionFactor_definingPolynomial_associated_minpoly

An irreducible polynomial having α as a root is associated to the minimal polynomial of α.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_definingPolynomial_associated_minpoly
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0) :
    Associated f (minpoly K α)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_completionFactors_eq_minpolyFactors

After base change to the completion, the chosen irreducible polynomial and the minimal polynomial still have exactly the same normalized irreducible factors.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_completionFactors_eq_minpolyFactors
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) {α : L} {f : K[X]}
    (hf : Irreducible f) (hroot : Polynomial.aeval α f = 0) :
    polynomialDistinctNormalizedFactors
        (completionExtensionFactor_completionPolynomial vK f) =
      polynomialDistinctNormalizedFactors
        ((minpoly K α).map (algebraMap K vK.Completion))
AlgebraicNumberTheory.Valuations.completionExtensionFactor_minpolyFactorsEquivCompletionFactors

Transport the factor set of the mapped minimal polynomial to the factor set of the particular chosen irreducible polynomial.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_minpolyFactorsEquivCompletionFactors
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) {α : L} {f : K[X]}
    (hf : Irreducible f) (hroot : Polynomial.aeval α f = 0) :
    DistinctNormalizedFactors
        ((minpoly K α).map (algebraMap K vK.Completion)) ≃
      CompletionExtensionFactorCompletionFactors vK f
AlgebraicNumberTheory.Valuations.CompletionExtensionFactorEmbeddingSetoid

The root/minimal-polynomial relation transported from roots to simple K-embeddings into the algebraic closure of K_v.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
abbrev CompletionExtensionFactorEmbeddingSetoid
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤) :
    Setoid (L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_embeddingClassesEquivMinpolyFactors

Conjugacy classes of simple embeddings are the distinct irreducible factors of the mapped minimal polynomial.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_embeddingClassesEquivMinpolyFactors
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤) :
    Quotient (CompletionExtensionFactorEmbeddingSetoid vK α hα hgen) ≃
      DistinctNormalizedFactors
        ((minpoly K α).map (algebraMap K vK.Completion))
AlgebraicNumberTheory.Valuations.completionExtensionFactor_embeddingSetoid_rel_iff_conjugate

For a simple extension, the relation used in the preceding quotient is exactly conjugacy of embeddings over K_v from the valuation-extension theorem.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_embeddingSetoid_rel_iff_conjugate
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (τ τ' : L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK) :
    (CompletionExtensionFactorEmbeddingSetoid vK α hα hgen).r τ τ' ↔
      AbsoluteValueExtensionConjugateOverCompletion vK τ τ'
AlgebraicNumberTheory.Valuations.pullbackAbsoluteValueExtension

Regard the pullback attached to an embedding as an exact extension. The extension property is the one proved in the valuation-extension theorem, rather than an extra field in the data of the extension-factor correspondence.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def pullbackAbsoluteValueExtension
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (τ : L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK) :
    AbsoluteValueExtension vK L
AlgebraicNumberTheory.Valuations.completionExtensionFactor_pullback_eq_iff_embeddingSetoid_rel

In the simple-extension situation, equality of the two pullback valuations is exactly the factor relation used on embeddings. The forward direction is proved by extending both embeddings to the same completion and comparing minimal polynomials there.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_pullback_eq_iff_embeddingSetoid_rel
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (τ τ' : L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK) :
    absoluteValueExtension_pullback vK hvK τ =
        absoluteValueExtension_pullback vK hvK τ' ↔
      (CompletionExtensionFactorEmbeddingSetoid vK α hα hgen).r τ τ'
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extension_eq_pullback_embeddingOfExtension

The canonical embedding attached to w by the valuation-extension theorem pulls bar v back to w itself.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_extension_eq_pullback_embeddingOfExtension
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (w : AbsoluteValueExtension vK L) :
    w.1 = absoluteValueExtension_pullback vK hvK
      (absoluteValueExtension_embeddingOfExtension vK w)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionsEquivEmbeddingClasses

Exact extensions are the same as the conjugacy classes of embeddings used in the factor calculation.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_extensionsEquivEmbeddingClasses
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤) :
    AbsoluteValueExtension vK L ≃
      Quotient (CompletionExtensionFactorEmbeddingSetoid vK α hα hgen)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionsEquivMinpolyFactors

Auxiliary form of the correspondence, first stated for the mapped minimal polynomial.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_extensionsEquivMinpolyFactors
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤) :
    AbsoluteValueExtension vK L ≃
      DistinctNormalizedFactors
        ((minpoly K α).map (algebraMap K vK.Completion))
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionsEquivCompletionFactorsAux

Auxiliary form with the particular chosen irreducible polynomial f as target.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_extensionsEquivCompletionFactorsAux
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤) :
    AbsoluteValueExtension vK L ≃
      CompletionExtensionFactorCompletionFactors vK f
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionFactor

The irreducible factor attached directly to an exact extension w: it is the minimal polynomial over K_v of the image of α in L_w.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_extensionFactor
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (α : L)
    (w : AbsoluteValueExtension vK L) : vK.Completion[X]
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionFactor_mem

The directly attached factor is one of the distinct normalized factors of the chosen irreducible polynomial over the completion.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_extensionFactor_mem
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) {α : L} {f : K[X]}
    (hf : Irreducible f) (hroot : Polynomial.aeval α f = 0)
    (w : AbsoluteValueExtension vK L) :
    completionExtensionFactor_extensionFactor vK α w ∈
      polynomialDistinctNormalizedFactors
        (completionExtensionFactor_completionPolynomial vK f)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionToFactor

The canonical map from exact extensions to completion factors.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_extensionToFactor
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) {α : L} {f : K[X]}
    (hf : Irreducible f) (hroot : Polynomial.aeval α f = 0) :
    AbsoluteValueExtension vK L →
      CompletionExtensionFactorCompletionFactors vK f
AlgebraicNumberTheory.Valuations.completionExtensionFactor_embeddingOfExtension_minpoly

The factor read from the canonical embedding supplied by the valuation-extension theorem is the same polynomial as the factor read directly in the metric completion L_w.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_embeddingOfExtension_minpoly
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    [Algebra.IsAlgebraic K L]
    (vK : AbsoluteValue K ℝ) (α : L)
    (w : AbsoluteValueExtension vK L) :
    minpoly vK.Completion
        (absoluteValueExtension_embeddingOfExtension vK w α) =
      completionExtensionFactor_extensionFactor vK α w
AlgebraicNumberTheory.Valuations.completionExtensionFactor_completion_adjoin_eq_top

In a finite simple extension the image of the primitive generator already generates the whole metric completion over K_v. No separability hypothesis is used.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_completion_adjoin_eq_top
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (w : AbsoluteValueExtension vK L) :
    letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
    letI : SMul K w.1.Completion := hK.toSMul
    letI := AbsoluteValue.completionAlgebra vK w.1 w.2
    Algebra.adjoin vK.Completion
        ({AbsoluteValue.toCompletionAlgHom (K := K) w.1 α} :
          Set w.1.Completion) = ⊤ := by
  let pb : PowerBasis K L := PowerBasis.ofAdjoinEqTop hα hgen
  let : FiniteDimensional K L := pb.finite
  let : Algebra.IsAlgebraic K L := inferInstance
  let hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
  let : SMul K w.1.Completion := hK.toSMul
  let := AbsoluteValue.completionAlgebra vK w.1 w.2
  let : IsScalarTower K vK.Completion w.1.Completion :=
    AbsoluteValue.completion_isScalarTower vK w.1 w.2
  let ι : L →ₐ[K] w.1.Completion :=
    AbsoluteValue.toCompletionAlgHom (K := K) w.1
  let a : w.1.Completion := ι α
  have haK : IsIntegral K a := by
      exact IsIntegral.map_of_comp_eq (RingHom.id K) ι.toRingHom
        (by ext x; simp) hα
  have haKv : IsIntegral vK.Completion a :=
    IsIntegral.tower_top haK
  have hrange : Set.range
      (AbsoluteValue.toCompletion w.1) ⊆
      (IntermediateField.adjoin vK.Completion ({a} : Set w.1.Completion) :
        Set w.1.Completion) := by
    rintro _ ⟨x, rfl⟩
    change ι x ∈ IntermediateField.adjoin vK.Completion ({a} : Set _)
    have hx : x ∈ Algebra.adjoin K ({α} : Set L) := by
      rw [hgen]
      trivial
    induction hx using Algebra.adjoin_induction with
    | mem x hx =>
        rw [Set.mem_singleton_iff.mp hx]
        exact IntermediateField.mem_adjoin_simple_self vK.Completion a
    | algebraMap x =>
        rw [ι.commutes,
          IsScalarTower.algebraMap_apply K vK.Completion w.1.Completion]
        exact (IntermediateField.adjoin vK.Completion ({a} : Set _)).algebraMap_mem _
    | add x y _ _ hx hy =>
        simpa only [map_add] using
          (IntermediateField.adjoin vK.Completion ({a} : Set _)).add_mem hx hy
    | mul x y _ _ hx hy =>
        simpa only [map_mul] using
          (IntermediateField.adjoin vK.Completion ({a} : Set _)).mul_mem hx hy
  have hloc_le : AbsoluteValue.algebraicLocalization vK w.1 w.2 ≤
      IntermediateField.adjoin vK.Completion ({a} : Set _) := by
    exact IntermediateField.adjoin_le_iff.mpr hrange
  have hsimple : IntermediateField.adjoin vK.Completion ({a} : Set _) = ⊤ := by
    apply top_unique
    rw [← absoluteValueExtension_finiteLocalization_eq_top vK hvK w]
    exact hloc_le
  rw [← IntermediateField.adjoin_simple_toSubalgebra_of_isAlgebraic
      haKv.isAlgebraic,
    hsimple, IntermediateField.top_toSubalgebra]
AlgebraicNumberTheory.Valuations.completionExtensionFactor_adjoinRootEquivCompletion

The finite simple field cut out by the factor attached to w is the metric completion L_w.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_adjoinRootEquivCompletion
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (w : AbsoluteValueExtension vK L) :
    letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
    letI : SMul K w.1.Completion := hK.toSMul
    letI := AbsoluteValue.completionAlgebra vK w.1 w.2
    AdjoinRoot (completionExtensionFactor_extensionFactor vK α w) ≃ₐ[vK.Completion]
      w.1.Completion := by
  letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
  letI : SMul K w.1.Completion := hK.toSMul
  letI := AbsoluteValue.completionAlgebra vK w.1 w.2
  letI : IsScalarTower K vK.Completion w.1.Completion :=
    AbsoluteValue.completion_isScalarTower vK w.1 w.2
  let ι : L →ₐ[K] w.1.Completion :=
    AbsoluteValue.toCompletionAlgHom (K := K) w.1
  let a : w.1.Completion := ι α
  have haK : IsIntegral K a := by
      exact IsIntegral.map_of_comp_eq (RingHom.id K) ι.toRingHom
        (by ext x; simp) hα
  have haKv : IsIntegral vK.Completion a :=
    IsIntegral.tower_top haK
  have htop : Algebra.adjoin vK.Completion ({a} : Set w.1.Completion) = ⊤ :=
    completionExtensionFactor_completion_adjoin_eq_top
      vK hvK α hα hgen w
  change AdjoinRoot (minpoly vK.Completion a) ≃ₐ[vK.Completion]
    w.1.Completion
  exact (@minpoly.equivAdjoin vK.Completion w.1.Completion _ _ _ _ _ _
    (Module.isTorsionFree_iff_algebraMap_injective.mpr
      (algebraMap vK.Completion w.1.Completion).injective) a haKv).trans
    ((Subalgebra.equivOfEq _ _ htop).trans Subalgebra.topEquiv)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_adjoinRootEquivCompletion_root

The preceding equivalence sends the residue class of X to the canonical image of the primitive generator in L_w.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_adjoinRootEquivCompletion_root
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (w : AbsoluteValueExtension vK L) :
    letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
    letI : SMul K w.1.Completion := hK.toSMul
    letI := AbsoluteValue.completionAlgebra vK w.1 w.2
    completionExtensionFactor_adjoinRootEquivCompletion vK hvK α hα hgen w
        (AdjoinRoot.root (completionExtensionFactor_extensionFactor vK α w)) =
      AbsoluteValue.toCompletionAlgHom (K := K) w.1 α := by
  let hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
  let : SMul K w.1.Completion := hK.toSMul
  let := AbsoluteValue.completionAlgebra vK w.1 w.2
  let : IsScalarTower K vK.Completion w.1.Completion :=
    AbsoluteValue.completion_isScalarTower vK w.1 w.2
  let ι : L →ₐ[K] w.1.Completion :=
    AbsoluteValue.toCompletionAlgHom (K := K) w.1
  let a : w.1.Completion := ι α
  change ((AdjoinRoot.Minpoly.toAdjoin vK.Completion a)
      (AdjoinRoot.root (minpoly vK.Completion a)) : w.1.Completion) = a
  exact AdjoinRoot.Minpoly.coe_toAdjoin_mk_X
    (R := vK.Completion) (x := a)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionFactor_eq_minpoly_of_pullback

If w is presented as the pullback along an embedding τ, then the factor attached to w is the minimal polynomial of τ(α).

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_extensionFactor_eq_minpoly_of_pullback
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (w : AbsoluteValueExtension vK L)
    (τ : L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK)
    (hτ : w.1 = absoluteValueExtension_pullback vK hvK τ) :
    completionExtensionFactor_extensionFactor vK α w =
      minpoly vK.Completion (τ α)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_completionEquivSimpleRoot

The embedding τ extends from L to an algebraic equivalence from L_w onto the simple field K_v(τ(α)). The compatibility with every element of L is proved below.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_completionEquivSimpleRoot
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (w : AbsoluteValueExtension vK L)
    (τ : L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK)
    (hτ : w.1 = absoluteValueExtension_pullback vK hvK τ) :
    letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
    letI : SMul K w.1.Completion := hK.toSMul
    letI := AbsoluteValue.completionAlgebra vK w.1 w.2
    w.1.Completion ≃ₐ[vK.Completion]
      IntermediateField.adjoin vK.Completion
        ({τ α} : Set (absoluteValueExtension_algebraicCompletionClosure vK)) := by
  letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
  letI : SMul K w.1.Completion := hK.toSMul
  letI := AbsoluteValue.completionAlgebra vK w.1 w.2
  letI : IsScalarTower K vK.Completion w.1.Completion :=
    AbsoluteValue.completion_isScalarTower vK w.1 w.2
  have hfactor : completionExtensionFactor_extensionFactor vK α w =
      minpoly vK.Completion (τ α) :=
    completionExtensionFactor_extensionFactor_eq_minpoly_of_pullback
      vK hvK α hα hgen w τ hτ
  have hτα : IsIntegral vK.Completion (τ α) :=
    (Algebra.IsAlgebraic.isAlgebraic (τ α)).isIntegral
  exact (completionExtensionFactor_adjoinRootEquivCompletion
      vK hvK α hα hgen w).symm |>.trans
    ((AdjoinRoot.algEquivOfEq vK.Completion _ _ hfactor).trans
      (IntermediateField.adjoinRootEquivAdjoin vK.Completion hτα))
AlgebraicNumberTheory.Valuations.completionExtensionFactor_completionEquivSimpleRoot_gen

On the primitive generator, the completed embedding has the prescribed value τ(α).

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_completionEquivSimpleRoot_gen
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (w : AbsoluteValueExtension vK L)
    (τ : L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK)
    (hτ : w.1 = absoluteValueExtension_pullback vK hvK τ) :
    letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
    letI : SMul K w.1.Completion := hK.toSMul
    letI := AbsoluteValue.completionAlgebra vK w.1 w.2
    completionExtensionFactor_completionEquivSimpleRoot
        vK hvK α hα hgen w τ hτ
        (AbsoluteValue.toCompletionAlgHom (K := K) w.1 α) =
      IntermediateField.AdjoinSimple.gen vK.Completion (τ α) := by
  let hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
  let : SMul K w.1.Completion := hK.toSMul
  let := AbsoluteValue.completionAlgebra vK w.1 w.2
  let : IsScalarTower K vK.Completion w.1.Completion :=
    AbsoluteValue.completion_isScalarTower vK w.1 w.2
  let e0 := completionExtensionFactor_adjoinRootEquivCompletion
    vK hvK α hα hgen w
  let hfactor : completionExtensionFactor_extensionFactor vK α w =
      minpoly vK.Completion (τ α) :=
    completionExtensionFactor_extensionFactor_eq_minpoly_of_pullback
      vK hvK α hα hgen w τ hτ
  let e1 := AdjoinRoot.algEquivOfEq vK.Completion _ _ hfactor
  have hτα : IsIntegral vK.Completion (τ α) :=
    (Algebra.IsAlgebraic.isAlgebraic (τ α)).isIntegral
  let e2 := IntermediateField.adjoinRootEquivAdjoin vK.Completion hτα
  have hinv : e0.symm
      (AbsoluteValue.toCompletionAlgHom (K := K) w.1 α) =
      AdjoinRoot.root (completionExtensionFactor_extensionFactor vK α w) := by
    apply e0.injective
    rw [e0.apply_symm_apply,
      completionExtensionFactor_adjoinRootEquivCompletion_root]
  change (e0.symm.trans (e1.trans e2))
      (AbsoluteValue.toCompletionAlgHom (K := K) w.1 α) = _
  rw [AlgEquiv.trans_apply, hinv, AlgEquiv.trans_apply,
    AdjoinRoot.algEquivOfEq_root,
    IntermediateField.adjoinRootEquivAdjoin_apply_root]
AlgebraicNumberTheory.Valuations.completionExtensionFactor_completionEquivSimpleRoot_coe

The equivalence to K_v(τ(α)) really extends τ on every element of L, not merely on the chosen primitive generator.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_completionEquivSimpleRoot_coe
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    (α : L) (hα : IsIntegral K α)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (w : AbsoluteValueExtension vK L)
    (τ : L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK)
    (hτ : w.1 = absoluteValueExtension_pullback vK hvK τ)
    (x : L) :
    letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
    letI : SMul K w.1.Completion := hK.toSMul
    letI := AbsoluteValue.completionAlgebra vK w.1 w.2
    ((completionExtensionFactor_completionEquivSimpleRoot
        vK hvK α hα hgen w τ hτ
        (AbsoluteValue.toCompletionAlgHom (K := K) w.1 x) :
      IntermediateField.adjoin vK.Completion
        ({τ α} : Set (absoluteValueExtension_algebraicCompletionClosure vK))) :
      absoluteValueExtension_algebraicCompletionClosure vK) = τ x := by
  let pb : PowerBasis K L := PowerBasis.ofAdjoinEqTop hα hgen
  let : FiniteDimensional K L := pb.finite
  let : Algebra.IsAlgebraic K L := inferInstance
  let hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
  let : SMul K w.1.Completion := hK.toSMul
  let := AbsoluteValue.completionAlgebra vK w.1 w.2
  let : IsScalarTower K vK.Completion w.1.Completion :=
    AbsoluteValue.completion_isScalarTower vK w.1 w.2
  let E := IntermediateField.adjoin vK.Completion
    ({τ α} : Set (absoluteValueExtension_algebraicCompletionClosure vK))
  let e : w.1.Completion ≃ₐ[vK.Completion] E :=
    completionExtensionFactor_completionEquivSimpleRoot
      vK hvK α hα hgen w τ hτ
  let ι : L →ₐ[K] w.1.Completion :=
    AbsoluteValue.toCompletionAlgHom (K := K) w.1
  let φ : L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK :=
    ((E.val.comp e.toAlgHom).restrictScalars K).comp ι
  have hpbgen : pb.gen = α := by simp [pb]
  have hφ : φ = τ := by
    apply pb.algHom_ext
    rw [hpbgen]
    change ((e (ι α) : E) :
      absoluteValueExtension_algebraicCompletionClosure vK) = τ α
    rw [completionExtensionFactor_completionEquivSimpleRoot_gen]
    rfl
  exact DFunLike.congr_fun hφ x
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionsEquivCompletionFactorsAux_apply

On an extension w, the auxiliary correspondence is the directly defined polynomial minpoly_{K_v}(α in L_w).

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_extensionsEquivCompletionFactorsAux_apply
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (w : AbsoluteValueExtension vK L) :
    (completionExtensionFactor_extensionsEquivCompletionFactorsAux
        vK hvK hf hroot hgen w).1 =
      completionExtensionFactor_extensionFactor vK α w
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionEquivFactors

the extension-factor correspondence, correspondence part: exact extensions of v to the simple extension are in canonical bijection with the distinct normalized irreducible factors of f over K_v. Its forward map is definitionally the factor obtained from α in L_w.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_extensionEquivFactors
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤) :
    AbsoluteValueExtension vK L ≃
      CompletionExtensionFactorCompletionFactors vK f
AlgebraicNumberTheory.Valuations.completionExtensionFactor_factor_irreducible_monic_dvd_minpoly

A factor in the correspondence is monic and irreducible and divides the mapped minimal polynomial of the primitive generator.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_factor_irreducible_monic_dvd_minpoly
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) {α : L} {f : K[X]}
    (hf : Irreducible f) (hroot : Polynomial.aeval α f = 0)
    (g : CompletionExtensionFactorCompletionFactors vK f) :
    Irreducible g.1 ∧ g.1.Monic ∧
      g.1 ∣ (minpoly K α).map (algebraMap K vK.Completion)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_factorRoot_mem_mappedMinpoly

A chosen root of a factor is also a root of the mapped minimal polynomial and hence determines a K-embedding of L.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_factorRoot_mem_mappedMinpoly
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) {α : L} {f : K[X]}
    (hf : Irreducible f) (hroot : Polynomial.aeval α f = 0)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)) :
    β ∈ ((minpoly K α).map (algebraMap K vK.Completion)).rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_embeddingOfFactorRoot

The embedding associated with a factor and a specifically chosen root of that factor.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_embeddingOfFactorRoot
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) {α : L} {f : K[X]}
    (hf : Irreducible f) (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)) :
    L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK
AlgebraicNumberTheory.Valuations.completionExtensionFactor_embeddingOfFactorRoot_apply

The embedding chosen from the root β sends α to exactly β.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_embeddingOfFactorRoot_apply
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) {α : L} {f : K[X]}
    (hf : Irreducible f) (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)) :
    completionExtensionFactor_embeddingOfFactorRoot
      vK hf hroot hgen g β hβ α = β
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionOfFactorRoot

The valuation extension attached to the chosen root is the explicit pullback bar v ∘ τ.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_extensionOfFactorRoot
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)) :
    AbsoluteValueExtension vK L
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionOfFactorRoot_eq_pullback
Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_extensionOfFactorRoot_eq_pullback
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)) :
    (completionExtensionFactor_extensionOfFactorRoot
        vK hvK hf hroot hgen g β hβ).1 =
      absoluteValueExtension_pullback vK hvK
        (completionExtensionFactor_embeddingOfFactorRoot
          vK hf hroot hgen g β hβ)
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionOfFactorRoot_factor

The extension built from a root of g is sent back to exactly g by the factor correspondence.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_extensionOfFactorRoot_factor
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)) :
    completionExtensionFactor_extensionFactor vK α
        (completionExtensionFactor_extensionOfFactorRoot
          vK hvK hf hroot hgen g β hβ) = g.1
AlgebraicNumberTheory.Valuations.completionExtensionFactor_extensionOfFactorRoot_eq_equiv_symm

Thus the explicitly constructed pullback is the inverse image of g under the canonical correspondence.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_extensionOfFactorRoot_eq_equiv_symm
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)) :
    completionExtensionFactor_extensionOfFactorRoot
        vK hvK hf hroot hgen g β hβ =
      (completionExtensionFactor_extensionEquivFactors
        vK hvK hf hroot hgen).symm g
AlgebraicNumberTheory.Valuations.completionExtensionFactor_factor_eq_minpoly_root

A normalized irreducible factor is the minimal polynomial of each of its roots in the algebraic closure.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_factor_eq_minpoly_root
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) {α : L} {f : K[X]}
    (hf : Irreducible f) (hroot : Polynomial.aeval α f = 0)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)) :
    g.1 = minpoly vK.Completion β
AlgebraicNumberTheory.Valuations.completionExtensionFactor_factorRootCompletionEquiv

The completed field belonging to a factor and a chosen root β is canonically K_v(β).

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
def completionExtensionFactor_factorRootCompletionEquiv
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)) :
    let w := completionExtensionFactor_extensionOfFactorRoot
      vK hvK hf hroot hgen g β hβ
    letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
    letI : SMul K w.1.Completion := hK.toSMul
    letI := AbsoluteValue.completionAlgebra vK w.1 w.2
    w.1.Completion ≃ₐ[vK.Completion]
      IntermediateField.adjoin vK.Completion
        ({β} : Set (absoluteValueExtension_algebraicCompletionClosure vK)) := by
  let hα := completionExtensionFactor_root_isIntegral hf hroot
  let w := completionExtensionFactor_extensionOfFactorRoot
    vK hvK hf hroot hgen g β hβ
  letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
  letI : SMul K w.1.Completion := hK.toSMul
  letI := AbsoluteValue.completionAlgebra vK w.1 w.2
  have hfactor : completionExtensionFactor_extensionFactor vK α w = g.1 :=
    completionExtensionFactor_extensionOfFactorRoot_factor
      vK hvK hf hroot hgen g β hβ
  have hmp : g.1 = minpoly vK.Completion β :=
    completionExtensionFactor_factor_eq_minpoly_root vK hf hroot g β hβ
  have hβint : IsIntegral vK.Completion β :=
    (Algebra.IsAlgebraic.isAlgebraic β).isIntegral
  exact (completionExtensionFactor_adjoinRootEquivCompletion
      vK hvK α hα hgen w).symm |>.trans
    ((AdjoinRoot.algEquivOfEq vK.Completion _ _ (hfactor.trans hmp)).trans
      (IntermediateField.adjoinRootEquivAdjoin vK.Completion hβint))
AlgebraicNumberTheory.Valuations.completionExtensionFactor_factorRootCompletionEquiv_gen

On α, the chosen-root completion equivalence has value exactly β.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_factorRootCompletionEquiv_gen
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK)) :
    let w := completionExtensionFactor_extensionOfFactorRoot
      vK hvK hf hroot hgen g β hβ
    letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
    letI : SMul K w.1.Completion := hK.toSMul
    letI := AbsoluteValue.completionAlgebra vK w.1 w.2
    completionExtensionFactor_factorRootCompletionEquiv
        vK hvK hf hroot hgen g β hβ
        (AbsoluteValue.toCompletionAlgHom (K := K) w.1 α) =
      IntermediateField.AdjoinSimple.gen vK.Completion β := by
  let hα := completionExtensionFactor_root_isIntegral hf hroot
  let w := completionExtensionFactor_extensionOfFactorRoot
    vK hvK hf hroot hgen g β hβ
  let hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
  let : SMul K w.1.Completion := hK.toSMul
  let := AbsoluteValue.completionAlgebra vK w.1 w.2
  let e0 := completionExtensionFactor_adjoinRootEquivCompletion
    vK hvK α hα hgen w
  let hpoly : completionExtensionFactor_extensionFactor vK α w =
      minpoly vK.Completion β :=
    (completionExtensionFactor_extensionOfFactorRoot_factor
      vK hvK hf hroot hgen g β hβ).trans
      (completionExtensionFactor_factor_eq_minpoly_root vK hf hroot g β hβ)
  let e1 := AdjoinRoot.algEquivOfEq vK.Completion _ _ hpoly
  have hβint : IsIntegral vK.Completion β :=
    (Algebra.IsAlgebraic.isAlgebraic β).isIntegral
  let e2 := IntermediateField.adjoinRootEquivAdjoin vK.Completion hβint
  have hinv : e0.symm
      (AbsoluteValue.toCompletionAlgHom (K := K) w.1 α) =
      AdjoinRoot.root (completionExtensionFactor_extensionFactor vK α w) := by
    apply e0.injective
    rw [e0.apply_symm_apply,
      completionExtensionFactor_adjoinRootEquivCompletion_root]
  change (e0.symm.trans (e1.trans e2))
      (AbsoluteValue.toCompletionAlgHom (K := K) w.1 α) = _
  rw [AlgEquiv.trans_apply, hinv, AlgEquiv.trans_apply,
    AdjoinRoot.algEquivOfEq_root,
    IntermediateField.adjoinRootEquivAdjoin_apply_root]
AlgebraicNumberTheory.Valuations.completionExtensionFactor_factorRootCompletionEquiv_coe

The chosen-root equivalence extends the chosen embedding on every element of L.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_factorRootCompletionEquiv_coe
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤)
    (g : CompletionExtensionFactorCompletionFactors vK f)
    (β : absoluteValueExtension_algebraicCompletionClosure vK)
    (hβ : β ∈ g.1.rootSet
      (absoluteValueExtension_algebraicCompletionClosure vK))
    (x : L) :
    let τ := completionExtensionFactor_embeddingOfFactorRoot
      vK hf hroot hgen g β hβ
    let w := completionExtensionFactor_extensionOfFactorRoot
      vK hvK hf hroot hgen g β hβ
    letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
    letI : SMul K w.1.Completion := hK.toSMul
    letI := AbsoluteValue.completionAlgebra vK w.1 w.2
    ((completionExtensionFactor_factorRootCompletionEquiv
        vK hvK hf hroot hgen g β hβ
        (AbsoluteValue.toCompletionAlgHom (K := K) w.1 x) :
      IntermediateField.adjoin vK.Completion
        ({β} : Set (absoluteValueExtension_algebraicCompletionClosure vK))) :
      absoluteValueExtension_algebraicCompletionClosure vK) = τ x := by
  let hα := completionExtensionFactor_root_isIntegral hf hroot
  let pb : PowerBasis K L := PowerBasis.ofAdjoinEqTop hα hgen
  let : FiniteDimensional K L := pb.finite
  let : Algebra.IsAlgebraic K L := inferInstance
  let τ := completionExtensionFactor_embeddingOfFactorRoot
    vK hf hroot hgen g β hβ
  let w := completionExtensionFactor_extensionOfFactorRoot
    vK hvK hf hroot hgen g β hβ
  let hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
  let : SMul K w.1.Completion := hK.toSMul
  let := AbsoluteValue.completionAlgebra vK w.1 w.2
  let : IsScalarTower K vK.Completion w.1.Completion :=
    AbsoluteValue.completion_isScalarTower vK w.1 w.2
  let E := IntermediateField.adjoin vK.Completion
    ({β} : Set (absoluteValueExtension_algebraicCompletionClosure vK))
  let e : w.1.Completion ≃ₐ[vK.Completion] E :=
    completionExtensionFactor_factorRootCompletionEquiv
      vK hvK hf hroot hgen g β hβ
  let ι : L →ₐ[K] w.1.Completion :=
    AbsoluteValue.toCompletionAlgHom (K := K) w.1
  let φ : L →ₐ[K] absoluteValueExtension_algebraicCompletionClosure vK :=
    ((E.val.comp e.toAlgHom).restrictScalars K).comp ι
  have hpbgen : pb.gen = α := by simp [pb]
  have hφ : φ = τ := by
    apply pb.algHom_ext
    rw [hpbgen]
    change ((e (ι α) : E) :
      absoluteValueExtension_algebraicCompletionClosure vK) = τ α
    rw [completionExtensionFactor_factorRootCompletionEquiv_gen,
      completionExtensionFactor_embeddingOfFactorRoot_apply]
    rfl
  exact DFunLike.congr_fun hφ x
AlgebraicNumberTheory.Valuations.completionExtensionFactor_classification

Classification of extensions of a completed absolute value.

For L = K(α) and an irreducible polynomial f with root α, exact extensions of the nontrivial absolute value v are in bijection with the distinct normalized irreducible factors of f over K_v. For every factor and every chosen root β in bar K_v, the theorem records the embedding τ(α) = β, the formula w = bar v ∘ τ, and an equivalence L_w ≃ K_v(β) which extends τ on every element of L.

Source context 7 commands

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

noncomputable section
open Polynomial
open scoped Topology
open ValuationTheory.Completion
namespace AlgebraicNumberTheory
namespace Valuations
universe u v
theorem completionExtensionFactor_classification
    {K : Type u} {L : Type v} [Field K] [Field L] [Algebra K L]
    (vK : AbsoluteValue K ℝ) (hvK : vK.IsNontrivial)
    {α : L} {f : K[X]} (hf : Irreducible f)
    (hroot : Polynomial.aeval α f = 0)
    (hgen : Algebra.adjoin K ({α} : Set L) = ⊤) :
    Function.Bijective (completionExtensionFactor_extensionToFactor vK hf hroot) ∧
      ∀ (g : CompletionExtensionFactorCompletionFactors vK f)
        (β : absoluteValueExtension_algebraicCompletionClosure vK)
        (hβ : β ∈ g.1.rootSet
          (absoluteValueExtension_algebraicCompletionClosure vK)),
        let τ := completionExtensionFactor_embeddingOfFactorRoot
          vK hf hroot hgen g β hβ
        let w := completionExtensionFactor_extensionOfFactorRoot
          vK hvK hf hroot hgen g β hβ
        letI hK := AbsoluteValue.extensionCompletionAlgebra (K := K) w.1
        letI : SMul K w.1.Completion := hK.toSMul
        letI := AbsoluteValue.completionAlgebra vK w.1 w.2
        let e := completionExtensionFactor_factorRootCompletionEquiv
          vK hvK hf hroot hgen g β hβ
        τ α = β ∧
          w.1 = absoluteValueExtension_pullback vK hvK τ ∧
          w = (completionExtensionFactor_extensionEquivFactors
            vK hvK hf hroot hgen).symm g ∧
          completionExtensionFactor_extensionFactor vK α w = g.1 ∧
          ∀ x : L,
            ((e (AbsoluteValue.toCompletionAlgHom (K := K) w.1 x) :
              IntermediateField.adjoin vK.Completion
                ({β} : Set
                  (absoluteValueExtension_algebraicCompletionClosure vK))) :
              absoluteValueExtension_algebraicCompletionClosure vK) = τ x := by
  constructor
  · exact (completionExtensionFactor_extensionEquivFactors
      vK hvK hf hroot hgen).bijective
  · intro g β hβ
    dsimp only
    refine ⟨completionExtensionFactor_embeddingOfFactorRoot_apply
        vK hf hroot hgen g β hβ,
      completionExtensionFactor_extensionOfFactorRoot_eq_pullback
        vK hvK hf hroot hgen g β hβ,
      completionExtensionFactor_extensionOfFactorRoot_eq_equiv_symm
        vK hvK hf hroot hgen g β hβ,
      completionExtensionFactor_extensionOfFactorRoot_factor
        vK hvK hf hroot hgen g β hβ, ?_⟩
    intro x
    exact completionExtensionFactor_factorRootCompletionEquiv_coe
      vK hvK hf hroot hgen g β hβ x