Zulip Chat Archive

Stream: Is there code for X?

Topic: The algebraic extensions of ℝ


Michael Stoll (May 30 2025 at 20:24):

Do we have some form of the following?

import Mathlib

example {F : Type*} [Field F] [Algebra  F] (h : (algebraMap  F).IsIntegral) :
    Nonempty (F ≃ₐ[] )  Nonempty (F ≃ₐ[] ) := sorry

(Of course, we do have the fact that is algebraically closed and has dimension 2 over , from which one can certainly put together a proof, but I'd be surprised if this was missing...)

Junyan Xu (May 30 2025 at 21:37):

Quick proof:

import Mathlib.FieldTheory.IsAlgClosed.Basic
import Mathlib.LinearAlgebra.FiniteDimensional.Lemmas
import Mathlib.Data.Complex.FiniteDimensional
import Mathlib.Analysis.Complex.Polynomial.Basic

theorem nonempty_algEquiv_or_of_finrank_algClosure_eq_two
    {F F' : Type*} (E : Type*) [Field F] [Field F'] [Field E] [Algebra F F'] [Algebra F E]
    [Algebra.IsAlgebraic F E] [IsAlgClosed F'] (h : Module.finrank F F' = 2) :
    Nonempty (E ≃ₐ[F] F)  Nonempty (E ≃ₐ[F] F') := by
  have emb : E →ₐ[F] F' := IsAlgClosed.lift
  have e := AlgEquiv.ofInjectiveField emb
  have := Subalgebra.isSimpleOrder_of_finrank h
  obtain h | h := IsSimpleOrder.eq_bot_or_eq_top emb.range <;> rw [h] at e
  exacts [.inl e.trans <| Algebra.botEquiv ..⟩, .inr e.trans Subalgebra.topEquiv]

example {F : Type*} [Field F] [Algebra  F] (h : (algebraMap  F).IsIntegral) :
    Nonempty (F ≃ₐ[] )  Nonempty (F ≃ₐ[] ) :=
  have : Algebra.IsIntegral  F := h
  nonempty_algEquiv_or_of_finrank_algClosure_eq_two F Complex.finrank_real_complex

Eric Wieser (May 30 2025 at 22:11):

I think there are a number of zulip threads about this

Eric Wieser (May 30 2025 at 22:11):

#Is there code for X? > Finite extension over Real @ 💬

Junyan Xu (May 30 2025 at 22:17):

My proof is the same as #Is there code for X? > Finite extension over Real @ 💬 :)

Michael Stoll (May 31 2025 at 07:42):

@Junyan Xu Can you PR it to Mathlib?

Eric Wieser (May 31 2025 at 11:07):

Is it also true for docs#StarAlgEquiv ?

Junyan Xu (May 31 2025 at 14:59):

@Michael Stoll #25332
I'm only adding the first lemma as it fits in an existing file and the second is a direct application of it.

Jireh Loreaux (May 31 2025 at 15:27):

Eric, what is your instance of Star F?

Eric Wieser (May 31 2025 at 15:56):

I guess I'm working on the speculation that there is only one possible ring-compatible star operation on the reals / complexes

Junyan Xu (May 31 2025 at 18:29):

Hmm, I just found unicode in a decl name Polynomial.Gal.splits_ℚ_ℂ ported from Lean 3 ... it's an instance though.

Kevin Buzzard (Jun 01 2025 at 00:14):

The complexes has uncountably many algebraic automorphisms most of which do not commute with complex conjugation so the star is not an algebraically intrinsic function. But if it has to fix the reals then you're ok

Eric Wieser (Jun 01 2025 at 00:35):

You're still in trouble I guess because you could have "the complex numbers where conjugation is the identity"

Michael Stoll (Jun 01 2025 at 10:08):

Kevin Buzzard said:

The complexes has uncountably many algebraic automorphisms most of which do not commute with complex conjugation

I had to remember this when I was trying to prove that an absolute value on the reals that restricts to the archimedean absolute value on the rationals is the standard absolute value :smiley: It turns out there are lots of such absolute values on the reals (but only one that gives a complete space). (You can even put pp-adic absolute values on the reals via RCQˉp\mathbb{R} \to \mathbb{C} \stackrel{\cong}{\to} \bar{\mathbb{Q}}_p, the second map being an isomorphism of abstract fields...)

Kevin Buzzard (Jun 01 2025 at 10:33):

Right, doesn't the proof that you can't chop up a square into an odd number of triangles with the same area rely on this?

David J. Webb (Jun 03 2025 at 13:54):

Well that sent me down a rabbit hole... incredible that in this instance, you seem to need number theory to do geometry!


Last updated: Dec 20 2025 at 21:32 UTC