Zulip Chat Archive
Stream: PR reviews
Topic: Transcendental and algebraically independent
Jz Pan (Nov 01 2024 at 06:32):
Some of my PRs with the goal to prove that if E/F
is transcendental, then there are infinitely many F
-embeddings from E
to its algebraic closure.
- #18378 add some results on
AlgebraicIndependent
- already merged
Jz Pan (Nov 01 2024 at 06:33):
- #18433 some more results on transcendental and algebraically independent
This PR is ready for review.
Transcendental.aeval_of_transcendental
,Transcendental.of_aeval
,transcendental_aeval_iff
,IsAlgebraic.of_aeval_of_transcendental
:Polynomial.aeval r f
is transcendental if and only ifr
andf
are both transcendental (in some sense)- make
is_transcendental_of_subsingleton
anontriviality
lemma IsAlgebraic.[of_]ringHom
,isAlgebraic_ringHom_iff
: generalize the similar result foralgHom
Transcendental.of_tower_top[_of_injective]
: negation ofIsAlgebraic.tower_top[_of_injective]
- move
MvPolynomial.transcendental_X
to earlier file MvPolynomial.transcendental_supported_X[_iff]
:X_i
is transcendental inR[X_j | j \in S]
if and only ifi \notin S
algebraicIndependent_of_finite_type'
:Type
version ofalgebraicIndependent_of_finite'
which will be used later
Jz Pan (Nov 01 2024 at 06:38):
The next step is prove this:
import Mathlib.RingTheory.AlgebraicIndependent
import Mathlib.Algebra.Polynomial.Lifts
noncomputable section
open Function Set Subalgebra MvPolynomial Algebra
open scoped Classical
variable {R A ι : Type*} [CommRing R] [CommRing A] [Algebra R A]
theorem MvPolynomial.algebraicIndependent_aeval_pointwise
(f : ι → Polynomial R) (hf : ∀ i, Transcendental R (f i)) :
AlgebraicIndependent R fun i ↦ Polynomial.aeval (X i : MvPolynomial ι R) (f i) := by
set x := fun i ↦ Polynomial.aeval (X i : MvPolynomial ι R) (f i)
refine algebraicIndependent_of_finite_type' (C_injective _ _) fun t _ i hi ↦ ?_
suffices H : Transcendental (supported R t) (x i) by
rw [Transcendental] at H ⊢
contrapose! H
have hle : adjoin R (x '' t) ≤ supported R t := by
rw [Algebra.adjoin_le_iff, Set.image_subset_iff]
intro _ h
rw [Set.mem_preimage]
refine Algebra.adjoin_mono ?_ (Polynomial.aeval_mem_adjoin_singleton R _)
simp_rw [singleton_subset_iff, Set.mem_image_of_mem _ h]
letI := (Subalgebra.inclusion hle).toAlgebra
haveI : IsScalarTower (adjoin R (x '' t)) (supported R t) (MvPolynomial ι R) :=
.of_algebraMap_eq fun _ ↦ rfl
exact H.tower_top_of_injective (Subalgebra.inclusion_injective hle)
have h1 := transcendental_supported_X R hi
have h2 := hf i
sorry
Jz Pan (Nov 01 2024 at 06:49):
Which states that if f_i : R[X]
are R
-transcendental, then f_i(X_i)
are R
-algebraically independent in R[X_i | i \in ι]
.
My plan is to use algebraicIndependent_of_finite_type'
and we only need to prove that if i \notin S
, then f_i(X_i)
is transcendental over R[X_j | j \in S]
. It's known that X_i
is transcendental over R[X_j | j \in S]
and f_i : R[X]
is transcendental over R
. In order to use Transcendental.aeval_of_transcendental
I need that f_i
base changed to R[X_j | j \in S][X]
is transcendental over R[X_j | j \in S]
. which needs Module.Flat
and which is not imported in this file.
I suspect that my proof is over-complicated. Any suggestion for a simpler proof?
Jz Pan (Nov 01 2024 at 06:55):
which needs
Module.Flat
and which is not imported in this file
Specifically, if A
and S
are R
-algebras, a : A
is transcendental over R
, S
is flat R
-algebra, then a \otimes 1 : A \otimes_R S
is transcendental over S
. This just because - \otimes_R S
preserves the injectivity of Polynomial.aeval
.
Jz Pan (Nov 02 2024 at 16:27):
Jz Pan said:
that
f_i
base changed toR[X_j | j \in S][X]
is transcendental overR[X_j | j \in S]
.
I think I have a proof of this without using flatness. More generally, if a : A
is transcendental over R
, then MvPolynomial.C a : MvPolynomial ι A
is transcendental over MvPolynomial ι R
. Because the aeval
map (MvPolynomial ι A)[X] -> MvPolynomial ι R
, under suitable isomorphism, is MvPolynomial ι A[X] -> MvPolynomial ι R
, which is MvPolynomial.map
of the original aeval
, so it is also injective.
Similarly, AlgebraicIndependent
is also preserved by MvPolynomial.C
.
Jz Pan (Nov 04 2024 at 12:20):
I got the proof, but could someone please looking at compile error introduced by it? The following is MWE:
import Mathlib.RingTheory.AlgebraicIndependent
import Mathlib.Algebra.Polynomial.Lifts
noncomputable section
open Function Set Subalgebra MvPolynomial Algebra
open scoped Classical
variable {σ R S A ι : Type*} [CommRing R] [CommRing S] [CommRing A]
[Algebra R S] [Algebra R A] [Algebra S A] [IsScalarTower R S A]
theorem algebraicIndependent_of_finite_type' {x : ι → A}
(hinj : Injective (algebraMap R A))
(H : ∀ t : Set ι, t.Finite → ∀ i : ι, i ∉ t → Transcendental (adjoin R (x '' t)) (x i)) :
AlgebraicIndependent R x := sorry
open Polynomial in
variable (R) in
theorem MvPolynomial.transcendental_supported_polynomial_aeval_X {i : σ} {s : Set σ} (h : i ∉ s)
{f : R[X]} (hf : Transcendental R f) :
Transcendental (supported R s) (Polynomial.aeval (X i : MvPolynomial σ R) f) := sorry
theorem Transcendental.of_tower_top_of_injective
(hinj : Function.Injective (algebraMap R S)) {x : A}
(h : Transcendental S x) : Transcendental R x := sorry
theorem MvPolynomial.algebraicIndependent_aeval_pointwise
(f : ι → Polynomial R) (hf : ∀ i, Transcendental R (f i)) :
AlgebraicIndependent R fun i ↦ Polynomial.aeval (X i : MvPolynomial ι R) (f i) := by
set x := fun i ↦ Polynomial.aeval (X i : MvPolynomial ι R) (f i)
refine algebraicIndependent_of_finite_type' (C_injective _ _) fun t _ i hi ↦ ?_
have hle : adjoin R (x '' t) ≤ supported R t := by
rw [Algebra.adjoin_le_iff, Set.image_subset_iff]
intro _ h
rw [Set.mem_preimage]
refine Algebra.adjoin_mono ?_ (Polynomial.aeval_mem_adjoin_singleton R _)
simp_rw [singleton_subset_iff, Set.mem_image_of_mem _ h]
letI : Algebra (adjoin R (x '' t)) (supported R t) := (Subalgebra.inclusion hle).toAlgebra
letI : Module (adjoin R (x '' t)) (supported R t) := Algebra.toModule
letI : SMul (adjoin R (x '' t)) (supported R t) := Algebra.toSMul
haveI : IsScalarTower (adjoin R (x '' t)) (supported R t) (MvPolynomial ι R) :=
.of_algebraMap_eq fun _ ↦ rfl
have h1 := transcendental_supported_polynomial_aeval_X R hi (hf i)
have h2 := Subalgebra.inclusion_injective hle
sorry
-- out of memory
exact (transcendental_supported_polynomial_aeval_X R hi (hf i)).of_tower_top_of_injective
(Subalgebra.inclusion_injective hle)
example : True := by
exact False
Jz Pan (Nov 04 2024 at 12:23):
Firstly there are 3 results which are already proved in #18433 . Then it's the problematic proof. If you don't comment sorry
then there will be a red line on exact False
. If you comment out sorry
then the red line on exact False
goes, which means that it never get compiled. In my computer, the proof just stuck at the last exact
forever. I've commit the code to github (https://github.com/leanprover-community/mathlib4/pull/18433/commits/967933442168b322716601e4f24770f8edc1cdd7) and the CI just said Lean exited with code 137
, google tells me it means "out of memory".
Jz Pan (Nov 04 2024 at 13:13):
Fixed by extracting intermediate results as lemmas :sweat_smile:
Johan Commelin (Nov 04 2024 at 14:44):
I've kicked #18433 on the merge queue
Jz Pan (Nov 04 2024 at 14:52):
Thank you! I'll working on remaining results.
Jz Pan (Nov 05 2024 at 16:15):
PR #18661 is ready for review, which adds IsLocalization.algEquivOfAlgEquiv
and some other results, which will be used for construction of isomorphism between rational function fields and IntermediateField.adjoin
for algebraically independent elements.
Jz Pan (Nov 07 2024 at 08:32):
PR #18648 is ready for review, which mainly adds
AlgebraicIndependent.aevalEquivField
: canonical isomorphism between rational function field and the intermediate field generated by algebraically independent elements.AlgebraicIndependent.reprField
: canonical map from the intermediate field generated by an algebraic independent family into the rational function field.
Last updated: May 02 2025 at 03:31 UTC