68 lines
2.2 KiB
Lean4
68 lines
2.2 KiB
Lean4
/-
|
|
Algebra in Lean — Kapitel 3 des Skripts
|
|
=======================================
|
|
|
|
Diese Datei begleitet das Skript „Algebra und Zahlentheorie“
|
|
(Stefan Kebekus, CC-BY 4.0). Sie übersetzt die Transitivität
|
|
der Algebraizität (kor:TdA) nach Lean.
|
|
-/
|
|
import Mathlib
|
|
|
|
namespace AlgebraInLean
|
|
|
|
open IntermediateField
|
|
|
|
/-!
|
|
# Die Transitivität der Algebraizität
|
|
|
|
Korollar 3.7.1 des Skripts: „Es seien L/K und M/L zwei
|
|
algebraische Körpererweiterungen. Dann ist auch M/K
|
|
algebraisch.“
|
|
|
|
Der Kern des Skript-Beweises — adjungiere die endlich vielen
|
|
Koeffizienten des Minimalpolynoms, schließe auf Endlichkeit und
|
|
klettere mit der Gradformel den Turm hinauf — ist in Mathlib
|
|
das Lemma `isIntegral_trans`. Das Mathlib-Wörterbuch aus
|
|
`AlgebraInLean/Elements.lean` gilt unverändert weiter.
|
|
-/
|
|
|
|
theorem transitivitaet (K L M : Type*) [Field K] [Field L]
|
|
[Field M] [Algebra K L] [Algebra L M] [Algebra K M]
|
|
[IsScalarTower K L M]
|
|
[Algebra.IsAlgebraic K L] [Algebra.IsAlgebraic L M] :
|
|
Algebra.IsAlgebraic K M := by
|
|
constructor
|
|
-- „Es sei ein Element m ∈ M gegeben.“
|
|
intro m
|
|
-- „Wir wissen, dass m algebraisch über L ist“ — über
|
|
-- Körpern gleichbedeutend: m ist ganz über L.
|
|
have hm : IsIntegral L m :=
|
|
(Algebra.IsAlgebraic.isAlgebraic m).isIntegral
|
|
-- Ebenso ist die algebraische Erweiterung L/K ganz.
|
|
have : Algebra.IsIntegral K L :=
|
|
Algebra.IsAlgebraic.isIntegral
|
|
-- „Betrachte jetzt den Körper Z := K(λ₀, …, λ_{n-1}) und
|
|
-- die Kette K ⊆ Z ⊆ Z(m) ∋ m …“ — der gesamte Rest
|
|
-- des Skript-Beweises ist das Lemma isIntegral_trans.
|
|
exact (isIntegral_trans m hm).isAlgebraic
|
|
|
|
/-!
|
|
## Übungsaufgabe
|
|
|
|
Aus dem Skript: „Die Menge der über K algebraischen Elemente
|
|
von L bildet einen Unterkörper von L, genannt der algebraische
|
|
Abschluss von K im Oberkörper L.“ Die einzelnen
|
|
Abgeschlossenheiten kennt Mathlib als `IsIntegral.add`,
|
|
`IsIntegral.neg`, `IsIntegral.mul`, `IsIntegral.pow` und
|
|
`IsIntegral.inv`. Die Übung: Kombinieren Sie sie und ersetzen
|
|
Sie das `sorry` durch einen Beweis.
|
|
-/
|
|
|
|
theorem algebraisch_quadrat {K L : Type*} [Field K]
|
|
[Field L] [Algebra K L] {a : L}
|
|
(ha : IsIntegral K a) :
|
|
IsIntegral K (a ^ 2 + a) := by
|
|
sorry
|
|
|
|
end AlgebraInLean
|