Zulip Chat Archive
Stream: Is there code for X?
Topic: Degree for compositum of fields
Dion Leijnse (Dec 10 2025 at 12:34):
Let L1 and L2 be two intermediate fields of a field extension K/k. Assume that L1 is algebraic over k. The compositum of L1 and L2 is given by L1 ⊔ L2, and I am trying to prove that the degrees satisfy [L1 ⊔ L2 : L1] ≤ [L1 : k]. I am trying to prove this by using IntermediateField.adjoin_rank_le_of_isAlgebraic_right, but I am stuck on the following sorry:
import Mathlib
variable {k K : Type} [Field k] [Field K] [Algebra k K]
variable (L1 L2 : IntermediateField k K)
instance : Module L1 (L1 ⊔ L2 : IntermediateField k K) := RingHom.toModule
(IntermediateField.inclusion le_sup_left).toRingHom
lemma compositum_deg_le (L1 L2 : IntermediateField k K) (hAlg : Algebra.IsAlgebraic k L2) :
Module.rank L1 (L1 ⊔ L2 : IntermediateField k K) ≤ Module.rank k L2 := by
let isom : (L1 ⊔ L2 : IntermediateField k K) ≃ₗ[L1]
(IntermediateField.adjoin L1 (L2 : Set K)) := by
-- simp only [IntermediateField.sup_def]
-- rw [← IntermediateField.adjoin_adjoin_left]
sorry
have hRankEq : Module.rank L1 (L1 ⊔ L2 : IntermediateField k K) =
Module.rank L1 (IntermediateField.adjoin L1 (L2 : Set K)) := LinearEquiv.rank_eq isom
rw [hRankEq]
exact IntermediateField.adjoin_rank_le_of_isAlgebraic_right _ _
The problem while proving this sorry is that there are some results that seem useful, at least set-theoretically I should be able to get there by using IntermediateField.sup_def, IntermediateField.adjoin_adjoin_left and Algebra.adjoin_eq. However, this chain of equalities does not work well with the structure as an L1-module, and I haven't been able to get this to work. Is there an easy way to prove this?
Junyan Xu (Dec 10 2025 at 16:03):
This works:
let isom : (L1 ⊔ L2 : IntermediateField k K) ≃ₗ[L1]
(IntermediateField.adjoin L1 (L2 : Set K)) :=
{ __ := Equiv.setCongr <| by
ext; simp only [IntermediateField.sup_def]
rw [← IntermediateField.restrictScalars_adjoin]
rfl -- or simp_rw [SetLike.mem_coe, IntermediateField.mem_restrictScalars]
map_add' _ _ := rfl
map_smul' _ _ := rfl }
Dion Leijnse (Dec 11 2025 at 14:44):
Thanks!
Last updated: Dec 20 2025 at 21:32 UTC