Zulip Chat Archive
Stream: Is there code for X?
Topic: Compositum of finite field extensions is finite
Sebastian Monnet (Dec 17 2021 at 16:32):
(This question is copy-pasted from one in New Members)
I need the fact that for finite field extensions and , contained in some larger field , we have that is also finite. Here is a statement of the lemma in Lean:
import tactic
import field_theory.galois
import data.set.basic
import algebra.group.basic
lemma comp_finrank_is_finrank (K L: Type*) [field K] [field L] [algebra K L] (E1 E2 : intermediate_field K L) : finite_dimensional K E1 ∧ finite_dimensional K E2 → finite_dimensional K ↥(Sup {E : intermediate_field K L | E = E1 ∨ E = E2}) :=
begin
sorry,
end
Does anyone know if this lemma already exists in mathlib? I've looked through a few of the field theory entries and I can't find anything that looks like this.
Kevin Buzzard (Dec 17 2021 at 16:34):
Your LaTeX is a sup but your code is an inf.(fixed)
Kevin Buzzard (Dec 17 2021 at 16:36):
I think the idiomatic way to ask the LaTeX question is
import tactic
import field_theory.galois
import data.set.basic
import algebra.group.basic
lemma subalgebra.finite_dimensional_sup (K L: Type*) [field K] [field L] [algebra K L]
(E1 E2 : intermediate_field K L) (h1 : finite_dimensional K E1) (h2 : finite_dimensional K E2) :
finite_dimensional K ↥(E1 ⊔ E2) :=
begin
sorry,
end
and I agree that we don't seem to have it. Note that it won't follow from the corresponding statement about submodules docs#submodule.finite_dimensional_sup because the submodule sup is in general smaller than the subalgebra sup.
Sebastian Monnet (Dec 17 2021 at 16:38):
Kevin Buzzard said:
Your LaTeX is a sup but your code is an inf.
Fixed
Yury G. Kudryashov (Dec 17 2021 at 16:39):
AFAIR, we have transitivity, so you need to prove that the dimension of E1 ⊔ E2
over E1
is less than or equal to the dimension of E2
over K
.
Yury G. Kudryashov (Dec 17 2021 at 16:40):
But I never used this part of the library.
Adam Topaz (Dec 17 2021 at 16:41):
Do we know that surjects onto it?
Kevin Buzzard (Dec 17 2021 at 16:41):
Oh I guess it should be called intermediate_field.finite_dimensional_sup
Kevin Buzzard (Dec 17 2021 at 16:44):
@Thomas Browning did you need this stuff for e.g. normal closure?
Thomas Browning (Dec 17 2021 at 20:28):
I can't remember seeing/using this sort of thing. We were just working with towers, I think.
Kevin Buzzard (Dec 18 2021 at 00:10):
It's a shame that this isn't there, this is the sort of thing which is quite fiddly if you're not an expert, and Sebastian is just starting.
Kevin Buzzard (Dec 18 2021 at 00:11):
I guess the lemma to prove is that if X spans E2 as a K-module then it spans E1 cup E2 as an E1-module
Kevin Buzzard (Dec 18 2021 at 00:11):
But stating that is fiddly
Thomas Browning (Dec 18 2021 at 06:41):
Here's a proof. I can start PRing it tomorrow, if you would like.
Kevin Buzzard (Dec 18 2021 at 09:10):
Oh my goodness! Thank you so much Thomas!
Sebastian Monnet (Dec 18 2021 at 09:57):
Thanks Thomas, that’s incredibly helpful!
Kevin Buzzard (Dec 18 2021 at 12:41):
So I can't quite get Thomas' code running because I seem to be missing an instance.
instance foo (K L M : Type*) [field K] [comm_ring L] [comm_ring M] [algebra K L] [algebra K M]
[finite_dimensional K L] [finite_dimensional K M] : finite_dimensional K (L ⊗[K] M) :=
sorry
Am I missing an import?
Thomas Browning (Dec 18 2021 at 18:34):
You're probably missing linear_algebra/tensor_product_basis.lean
. Sorry, I should have added imports.
Thomas Browning (Dec 20 2021 at 21:23):
Here's the PR: #10938
Kevin Buzzard (Dec 20 2021 at 22:18):
Thanks Thomas!
I think that to do the stuff with normality we need a little more about splitting fields, for example "if L/K is an extension, and f in K[X] splits in E_i for a bunch of subfields, then it splits in their Inf".
Thomas Browning (Dec 20 2021 at 22:31):
That particular thing doesn't sound too hard, since you can look at the roots of f. One way of doing this is to factor f in L (in terms of a multiset of elements of L), show that each root lies in the Inf, then construct a multiset in the Inf, and finally invoke the lemma about splitting iff there exists a multiset.
Thomas Browning (Dec 20 2021 at 22:34):
Is there a specific goal that all this is building up to?
Kevin Buzzard (Dec 20 2021 at 22:34):
Topology on
Kevin Buzzard (Dec 20 2021 at 22:34):
We already have it, but we're trying to do it properly (i.e. make a better definition for which it will be possible to develop an API)
Last updated: Dec 20 2023 at 11:08 UTC