[Merged by Bors] - chore: generalize MvPolynomial.rank_mvPolynomial#18741
Closed
alreadydone wants to merge 4 commits intomasterfrom
Closed
[Merged by Bors] - chore: generalize MvPolynomial.rank_mvPolynomial#18741alreadydone wants to merge 4 commits intomasterfrom
MvPolynomial.rank_mvPolynomial#18741alreadydone wants to merge 4 commits intomasterfrom
Conversation
PR summary a1d700e2b7Import changes for modified filesNo significant changes to the import graph Import changes for all files
|
Contributor
Author
|
Since this file contains only three lemmas, I think a 4.48% increase in imports is reasonable. Also, no downstream file has imports increased. |
Member
|
Do we have the finrank version? |
Contributor
Author
Is it useful? The finrank is 0 (infinite) if σ is nonempty and 1 if it's empty. |
Collaborator
So maybe it should not in |
Collaborator
|
By the way, I have something WIP similar to these results, this is the starting of that file: import Mathlib.FieldTheory.Adjoin
import Mathlib.LinearAlgebra.TensorProduct.Subalgebra
import Mathlib.Algebra.MvPolynomial.Cardinal
import Mathlib.RingTheory.Localization.Cardinality
import Mathlib.RingTheory.AlgebraicIndependent
import Mathlib.Data.Fin.Tuple.Reflection
open scoped Classical TensorProduct
open FiniteDimensional IntermediateField
noncomputable section
universe u v w
variable {F : Type u} {E : Type v} [Field F] [Field E] [Algebra F E]
variable {A B : IntermediateField F E}
variable (L : Type w) [Field L] [Algebra F L] [Algebra L E] [IsScalarTower F L E]
-- already in mathlib
variable (A B) in
private lemma _root_.IntermediateField.rank_sup_le_of_isAlgebraic
(halg : Algebra.IsAlgebraic F A ∨ Algebra.IsAlgebraic F B) :
Module.rank F ↥(A ⊔ B) ≤ Module.rank F A * Module.rank F B := by
have := A.toSubalgebra.rank_sup_le_of_free B.toSubalgebra
rwa [← sup_toSubalgebra_of_isAlgebraic A B halg] at this
-- already in mathlib with different name
theorem _root_.FractionRing.card (R : Type u) [CommRing R] :
Cardinal.mk (FractionRing R) = Cardinal.mk R :=
(IsLocalization.card (FractionRing R) (nonZeroDivisors R) (le_refl _)).symm
-- TODO: move to suitable place
theorem _root_.rank_fractionRing_mvPolynomial_eq {σ : Type u} {F : Type v} [Field F] [Nonempty σ] :
Module.rank F (FractionRing (MvPolynomial σ F)) =
max (max (Cardinal.lift.{u} (Cardinal.mk F)) (Cardinal.lift.{v} (Cardinal.mk σ)))
Cardinal.aleph0 := by
refine le_antisymm ?_ ?_
· refine (rank_le_card _ _).trans ?_
rw [FractionRing.card, MvPolynomial.cardinal_mk_eq_max_lift]
· have hinj := NoZeroSMulDivisors.algebraMap_injective (MvPolynomial σ F)
(FractionRing (MvPolynomial σ F))
have h1 := IsScalarTower.toAlgHom F (MvPolynomial σ F) (FractionRing (MvPolynomial σ F))
|>.toLinearMap.rank_le_of_injective hinj
simp_rw [Cardinal.lift_id'.{u, v} _ ▸ (MvPolynomial.basisMonomials σ F).mk_eq_rank.symm] at h1
rw [Cardinal.lift_umax.{u, v}, Cardinal.mk_finsupp_nat, Cardinal.lift_max,
Cardinal.lift_aleph0, max_le_iff] at h1
obtain ⟨i⟩ := ‹Nonempty σ›
let x := algebraMap (MvPolynomial σ F) (FractionRing (MvPolynomial σ F)) (MvPolynomial.X i)
have hx : Transcendental F x := (transcendental_algebraMap_iff hinj).2
(MvPolynomial.transcendental_X F i)
have h2 := hx.linearIndependent_sub_inv.cardinal_lift_le_rank
rw [Cardinal.lift_id'.{v, u} _, Cardinal.lift_umax.{v, u}] at h2
exact max_le_iff.2 ⟨max_le_iff.2 ⟨h2, h1.1⟩, h1.2⟩ |
mathlib-bors Bot
pushed a commit
that referenced
this pull request
Nov 13, 2024
Generalize from Field to Nontrivial Ring and rename to `MvPolynomial.rank_eq`. Also provide universe polymorphic version `rank_eq_lift`. Also add `finrank_eq_zero/one` by request.
Contributor
|
Pull request successfully merged into master. Build succeeded: |
MvPolynomial.rank_mvPolynomialMvPolynomial.rank_mvPolynomial
TobiasLeichtfried
pushed a commit
that referenced
this pull request
Nov 21, 2024
Generalize from Field to Nontrivial Ring and rename to `MvPolynomial.rank_eq`. Also provide universe polymorphic version `rank_eq_lift`. Also add `finrank_eq_zero/one` by request.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Generalize from Field to Nontrivial Ring and rename to
MvPolynomial.rank_eq. Also provide universe polymorphic versionrank_eq_lift. Also addfinrank_eq_zero/oneby request.