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):
Junyan Xu (May 30 2025 at 22:17):
My proof is the same as :)
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 -adic absolute values on the reals via , 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