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