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 fis transcendental if and only ifrandfare both transcendental (in some sense)- make
is_transcendental_of_subsingletonanontrivialitylemma IsAlgebraic.[of_]ringHom,isAlgebraic_ringHom_iff: generalize the similar result foralgHomTranscendental.of_tower_top[_of_injective]: negation ofIsAlgebraic.tower_top[_of_injective]- move
MvPolynomial.transcendental_Xto earlier file MvPolynomial.transcendental_supported_X[_iff]:X_iis transcendental inR[X_j | j \in S]if and only ifi \notin SalgebraicIndependent_of_finite_type':Typeversion 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.Flatand 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_ibase 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