Zulip Chat Archive
Stream: Is there code for X?
Topic: Cyclotomic extensions of finite fields are finite
Michael Stoll (Jun 01 2022 at 20:45):
I'm missing an instance that says that cyclotomic_field n F
is finite if F
is a finite field.
@Riccardo Brasca Is this something that could be included in #14463?
Michael Stoll (Jun 01 2022 at 20:46):
Or maybe, this should work via: cyclotomic_field n F
is a finite(-dimensional) extension of F
; a finite extension of a finite field is finite.
Riccardo Brasca (Jun 01 2022 at 20:55):
Yes, that will work immediately. I have some draft code (I will open a PR maybe tomorrow) to show that cyclotomic_field n F
is always a cyclotomic extension of F
(I mean, even if n = 0
in F
, it isn't a n
-th cyclotomic extension but a m
-th one, where n = p^k * m
where p = char(F)
), so this will work in general.
Riccardo Brasca (Jun 01 2022 at 20:55):
Note that cyclotomic_field n F
is just (cyclotomic n K).splitting_field
, so you can already use all the API for splitting_field
.
Riccardo Brasca (Jun 01 2022 at 20:57):
Maybe docs#finite_dimensional.fintype_of_fintype already works (but it cannot be an instance
)
Riccardo Brasca (Jun 01 2022 at 21:02):
In general all the theorems saying that L
is finite because K
satisfies some condition and L
is related to K
, cannot be instances, since Lean cannot guess K
.
Michael Stoll (Jun 01 2022 at 21:03):
OK. So this appears to work:
let FF := cyclotomic_field 8 F,
haveI : finite_dimensional F FF := polynomial.is_splitting_field.finite_dimensional _ _,
haveI : fintype FF := finite_dimensional.fintype_of_fintype F FF,
Thanks!
Riccardo Brasca (Jun 01 2022 at 21:08):
Do you need the first haveI
?
Michael Stoll (Jun 01 2022 at 21:09):
Yes; otherwise the second haveI
complains.
Riccardo Brasca (Jun 01 2022 at 21:09):
Mmh, this makes me thinking that maybe cyclotomic_field
should be just an abbreviation
rather than a def
, so Lean can automatically use all the instances for splitting_field
Riccardo Brasca (Jun 01 2022 at 21:10):
I will see after #14463 gets merged
Eric Rodriguez (Jun 01 2022 at 21:52):
Can't we just @derive it?
Riccardo Brasca (Jun 02 2022 at 07:33):
Sure, but we have to do it for all the instance splitting_field
has, right?
Last updated: Dec 20 2023 at 11:08 UTC