Files
AlgebraInLean/AlgebraInLean/Transitivity.lean
T
2026-08-13 06:38:24 +02:00

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