Zulip Chat Archive

Stream: Is there code for X?

Topic: algebraic element over algebraically closed field


Aaron Liu (Feb 01 2026 at 22:43):

If L/K is a field extension and K is algebraically closed, then any element of L algebraic over K in fact belongs to K.

import Mathlib

variable {K : Type*} [Field K] [IsAlgClosed K]
-- variable {R : Type*} [CommRing R] [IsDomain R] [Algebra K R]
variable {L : Type*} [Field L] [Algebra K L]

example {x : L} (hx : IsAlgebraic K x) :  y, algebraMap K L y = x := by
  sorry

Artie Khovanov (Feb 02 2026 at 02:02):

docs#IsAlgClosed.algebraMap_bijective_of_isIntegral

Artie Khovanov (Feb 02 2026 at 02:03):

or on the level of extensions: docs#IntermediateField.eq_bot_of_isAlgClosed_of_isAlgebraic

Artie Khovanov (Feb 02 2026 at 02:04):

there's not a finrank_eq_one version, I think that should be added (I suppose I'll add it eventually when I merge my real closed field stuff, to make the APIs the same)

Artie Khovanov (Feb 02 2026 at 02:05):

also let me get on my soapbox and request a consensus for the spelling of "the given extension is trivial" and a consistent API on top of that

Aaron Liu (Feb 02 2026 at 02:17):

can you fill in the sorry?

Artie Khovanov (Feb 02 2026 at 22:12):

open IntermediateField in
example {x : L} (hx : IsAlgebraic K x) :  y, algebraMap K L y = x := by
  have := isAlgebraic_adjoin_simple hx.isIntegral
  simpa [adjoin_eq_bot_iff, IntermediateField.mem_bot] using
    eq_bot_of_isAlgClosed_of_isAlgebraic Kx

I wasn't very familiar with the IntermediateField API but we got there in the end, here you go

Aaron Liu (Feb 02 2026 at 22:13):

thanks

Aaron Liu (Feb 02 2026 at 22:13):

this should go in mathlib

Aaron Liu (Feb 02 2026 at 22:13):

do you wanna open a PR?

Artie Khovanov (Feb 02 2026 at 22:14):

nah
a principled API for "the algebra map is surjective" / "I am equal to the bottom subalgebra" should go in mathlib
but adding this lemma will do for now

Artie Khovanov (Feb 02 2026 at 22:14):

also IntermediateField.coe_bot and IntermediateField.mem_bot should be simp lemmas

Aaron Liu (Feb 02 2026 at 22:15):

I think this should also work for an integral domain R in place of the big field L

Artie Khovanov (Feb 02 2026 at 22:17):

yes
using docs#IsAlgClosed.algebraMap_bijective_of_isIntegral
but the API is worse there so I'm not gonna write a proof out rn


Last updated: Feb 28 2026 at 14:05 UTC