All proofs
Project-declaredLean 4.33.0-rc1 · mathlib@6c5a9081e9b7

Nonempty unramified Extension alghom of dvd f

IsNonarchimedeanLocalField.nonempty_unramifiedExtension_alghom_of_dvd_f

Plain-language statement

If Kn denotes the unramified extension of K of degree n, then Kn embeds into L if n ∣ f K L. This is half of the universal property.

Exact Lean statement

theorem nonempty_unramifiedExtension_alghom_of_dvd_f (n : ℕ) (hn : n ∣ f K L) :
    Nonempty (UnramifiedExtension K n →ₐ[K] L)

Formal artifact

Lean source

Canonical source
Full Lean sourceLean 4
theorem nonempty_unramifiedExtension_alghom_of_dvd_f (n : ) (hn : n ∣ f K L) :    Nonempty (UnramifiedExtension K n ₐ[K] L) := by  have hf0 := NeZero.mk (f_pos K L).ne'  have hn0 := NeZero.mk <| ne_zero_of_dvd_ne_zero hf0.out hn  have h₁ := Nat.pow_sub_one_dvd_pow_sub_one (Nat.card 𝓀[K]) hn  obtain ζ, hζ := HasEnoughRootsOfUnity.exists_primitiveRoot    (UnramifiedExtension K n) (Nat.card 𝓀[K] ^ n - 1)  have h₂ := pos_of_ne_zero <| card_pow_sub_one_in_nat_ne_zero 𝓀[K] hn0.out  have h₃ := pos_of_ne_zero <| card_pow_sub_one_in_nat_ne_zero 𝓀[K] hf0.out  refine IntermediateField.nonempty_algHom_of_adjoin_splits    (forall_eq.mpr .of_pow h₂ <| hζ.1 ▸ isIntegral_one,      .of_dvd (g := X ^ (Nat.card 𝓀[K] ^ n - 1) - C 1) ?_        (X_pow_sub_C_ne_zero h₂ _) ?_)    (intermediateFieldTop_eq_adjoin_primitive_root K _ hζ).symm  · rw [f_spec'] at h₁ h₃    have := NeZero.mk h₃.ne'    have := HasEnoughRootsOfUnity.of_dvd L h₁    obtain ζ', hζ' := HasEnoughRootsOfUnity.exists_primitiveRoot L (Nat.card 𝓀[K] ^ n - 1)    simpa [Splits] using X_pow_sub_one_splits hζ'  · conv_rhs => exact show _ = map (algebraMap K L) (X ^ (Nat.card 𝓀[K] ^ n - 1) - C 1) by simp    rw [map_dvd_map', minpoly.dvd_iff]    simp [hζ.1]
Project
Class Field Theory
License
Apache-2.0
Commit
f18cd7fd1575
Source
ClassFieldTheory/IsNonarchimedeanLocalField/Unramified.lean:245-266

Reuse this declaration

Bring the exact result into your workflow

The import identifies the source module. Your project still needs the pinned package dependency shown on this page.

What this badge means

This completion status comes from the project or community source. It has not yet been represented here as an independent rebuild and axiom audit.

Continue in this project

Related declarations

Project-declaredLean 4.33.0-rc1

Exists of surjective

groupCohomology.exists_of_surjective

Plain-language statement

Given map f: M ⟶ N and q : ℕ, if H^{q+1}(M) ⟶ H^{q+1}(N) is surjective, then any z : Z^{q+1}(N) can be written as f(z') + d(y) for some z' : Z^{q+1}(M) and y : C^q(M). Note that d is spelled as toCocycles.

number theoryclass field theorylocal fields

Source project: Class Field Theory

Person-level attribution pending.

View proof record