Module

BinaryUnramifiedCompositum.lean

Nyll.SawinTotallyRealTowers.UnramifiedProPRelationRank.Global.BinaryUnramifiedCompositum
4 declarations indexed from sourceView source ↗

Binary everywhere-unramified composita

This file proves that the compositum of two finite Galois number-field extensions unramified at finite places is again unramified at finite places. An odd-degree hypothesis on the compositum then supplies the infinite-place condition.

Declarations

ClassFieldTower.Martinet.finiteIntermediateFieldNumberField
Source context 4 commands

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

open scoped NumberField
noncomputable section
universe u v
namespace ClassFieldTower.Martinet
instance finiteIntermediateFieldNumberField
    {K : Type u} {Omega : Type v}
    [Field K] [NumberField K]
    [Field Omega] [Algebra K Omega]
    (E : IntermediateField K Omega) [FiniteDimensional K E] :
    NumberField E
ClassFieldTower.Martinet.restrict_left_sup_restrict_right_eq_top

The two restricted factors generate their compositum.

Source context 5 commands

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

open scoped NumberField
noncomputable section
universe u v
namespace ClassFieldTower.Martinet
private local instance finiteIntermediateFieldNumberField
    {K : Type u} {Omega : Type v}
    [Field K] [NumberField K]
    [Field Omega] [Algebra K Omega]
    (E : IntermediateField K Omega) [FiniteDimensional K E] :
    NumberField E :=
  NumberField.of_module_finite K E
theorem restrict_left_sup_restrict_right_eq_top
    {K : Type u} {Omega : Type v}
    [Field K] [Field Omega] [Algebra K Omega]
    (E₁ E₂ : IntermediateField K Omega) :
    IntermediateField.restrict
          (show E₁ ≤ E₁ ⊔ E₂ from le_sup_left) ⊔
        IntermediateField.restrict
          (show E₂ ≤ E₁ ⊔ E₂ from le_sup_right) = ⊤ := by
  apply IntermediateField.lift_injective (E₁ ⊔ E₂)
  rw [IntermediateField.lift_sup,
    IntermediateField.lift_restrict,
    IntermediateField.lift_restrict,
    IntermediateField.lift_top]
ClassFieldTower.Martinet.finitePlaceUnramifiedness_sup

The compositum of two finite Galois extensions unramified at every finite place is again unramified at every finite place.

Source context 5 commands

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

open scoped NumberField
noncomputable section
universe u v
namespace ClassFieldTower.Martinet
private local instance finiteIntermediateFieldNumberField
    {K : Type u} {Omega : Type v}
    [Field K] [NumberField K]
    [Field Omega] [Algebra K Omega]
    (E : IntermediateField K Omega) [FiniteDimensional K E] :
    NumberField E :=
  NumberField.of_module_finite K E
theorem finitePlaceUnramifiedness_sup
    {K : Type u} {Omega : Type v}
    [Field K] [NumberField K]
    [Field Omega] [Algebra K Omega]
    (E₁ E₂ : IntermediateField K Omega)
    [FiniteDimensional K E₁] [FiniteDimensional K E₂]
    [IsGalois K E₁] [IsGalois K E₂]
    (h₁ : IsUnramifiedAtFinitePlaces K E₁)
    (h₂ : IsUnramifiedAtFinitePlaces K E₂) :
    IsUnramifiedAtFinitePlaces K ↥(E₁ ⊔ E₂)
ClassFieldTower.Martinet.everywhereUnramified_sup_of_odd_finrank

If the finite Galois compositum has odd degree, then finite-place unramifiedness of both factors makes the compositum everywhere unramified.

Source context 5 commands

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

open scoped NumberField
noncomputable section
universe u v
namespace ClassFieldTower.Martinet
private local instance finiteIntermediateFieldNumberField
    {K : Type u} {Omega : Type v}
    [Field K] [NumberField K]
    [Field Omega] [Algebra K Omega]
    (E : IntermediateField K Omega) [FiniteDimensional K E] :
    NumberField E :=
  NumberField.of_module_finite K E
theorem everywhereUnramified_sup_of_odd_finrank
    {K : Type u} {Omega : Type v}
    [Field K] [NumberField K]
    [Field Omega] [Algebra K Omega]
    (E₁ E₂ : IntermediateField K Omega)
    [FiniteDimensional K E₁] [FiniteDimensional K E₂]
    [IsGalois K E₁] [IsGalois K E₂]
    (h₁ : IsEverywhereUnramified K E₁)
    (h₂ : IsEverywhereUnramified K E₂)
    (hOdd : Odd (Module.finrank K ↥(E₁ ⊔ E₂))) :
    IsEverywhereUnramified K ↥(E₁ ⊔ E₂)