Skip to content

[Merged by Bors] - feat(Algebra): Transcendence degree - #20887

Closed
alreadydone wants to merge 40 commits into
masterfrom
trdeg_squash
Closed

[Merged by Bors] - feat(Algebra): Transcendence degree#20887
alreadydone wants to merge 40 commits into
masterfrom
trdeg_squash

Conversation

@alreadydone

@alreadydone alreadydone commented Jan 20, 2025

Copy link
Copy Markdown
Contributor

Define transcendence degree Algebra.trdeg and proves some basic properties:

In AlgebraicIndependent/Basic.lean: define Algebra.trdeg to be the supremum of the cardinalities of all AlgebraicIndependent sets, just like Module.rank is defined to be the supremum of the cardinalities of all LinearIndependent sets. Add some API lemmas and trivial results about trdeg, e.g. that injective/surjective AlgHoms induce inequalities between trdegs, and AlgEquivs induce equalities.

In AlgebraicIndependent/Transcendental.lean: add API lemmas and show the inequality trdeg R S + trdeg S A ≤ trdeg R A (which does not require a domain).

In AlgebraicIndependent/Defs.lean: add Stacks tags and some trivial API lemmas about IsTranscendenceBasis.

Thanks to Chris Hughes and Jz Pan for preliminary works and Peter Nelson for the hint about Finitary and IndepMatroid.

TODO:


Open in Gitpod

@alreadydone alreadydone added the t-algebra Algebra (groups, rings, fields, etc) label Jan 20, 2025
@github-actions

github-actions Bot commented Jan 20, 2025

Copy link
Copy Markdown

PR summary 2661729d66

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ AlgEquiv.isTranscendenceBasis
+ AlgEquiv.isTranscendenceBasis_iff
+ AlgEquiv.lift_trdeg_eq
+ AlgEquiv.trdeg_eq
+ Algebra.trdeg
+ AlgebraicIndepOn
+ AlgebraicIndepOn.insert
+ AlgebraicIndepOn.insert_iff
+ AlgebraicIndependent.cardinalMk_le_trdeg
+ AlgebraicIndependent.lift_cardinalMk_le_trdeg
+ AlgebraicIndependent.of_subsingleton
+ AlgebraicIndependent.option_iff_transcendental
+ IsAlgebraic.adjoin_of_forall_isAlgebraic
+ IsTranscendenceBasis.of_subsingleton
+ IsTranscendenceBasis.of_subtype_range
+ IsTranscendenceBasis.to_subtype_range
+ IsTranscendenceBasis.to_subtype_range'
+ MvPolynomial.algebraicIndependent_polynomial_aeval_X
+ Subalgebra.mem_algebraicClosure
+ _
+ algebraicIndependent_of_set_of_finite
+ iff_adjoin_image
+ iff_adjoin_image_compl
+ iff_transcendental_adjoin_image
+ instance [FaithfulSMul R A] : Nonempty { s : Set A // AlgebraicIndepOn R id s }
+ isEmpty_algebraicIndependent
+ isTranscendenceBasis_equiv
+ isTranscendenceBasis_equiv'
+ isTranscendenceBasis_iff_maximal
+ isTranscendenceBasis_iff_of_subsingleton
+ isTranscendenceBasis_image
+ isTranscendenceBasis_subtype_range
+ lift_trdeg_add_le
+ lift_trdeg_le_of_injective
+ lift_trdeg_le_of_surjective
+ sumElim
+ sumElim_comp
+ sumElim_iff
+ sumElim_of_tower
+ trdeg_add_le
+ trdeg_eq_zero
+ trdeg_eq_zero_iff
+ trdeg_eq_zero_of_not_injective
+ trdeg_le_of_injective
+ trdeg_le_of_surjective
+ trdeg_ne_zero_iff
+ trdeg_pos
+ trdeg_subsingleton
- algebraicIndependent_polynomial_aeval_X

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@alreadydone
alreadydone changed the base branch from master to finitar_matroid_card January 20, 2025 20:37
@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jan 20, 2025
@alreadydone alreadydone removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jan 20, 2025
@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Jan 20, 2025
Comment thread Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Outdated
Comment thread Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Outdated
Comment thread Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean Outdated
@alreadydone alreadydone added the awaiting-author A reviewer has asked the author a question or requested changes. label Jan 20, 2025

@acmepjz acmepjz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much!

Comment thread Mathlib/RingTheory/AlgebraicIndependent/Basic.lean
Comment thread Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean Outdated
@mathlib-bors
mathlib-bors Bot deleted the branch master January 21, 2025 11:53
@mathlib-bors mathlib-bors Bot closed this Jan 21, 2025
@mathlib-bors
mathlib-bors Bot changed the base branch from finitar_matroid_card to master January 21, 2025 11:53
@acmepjz acmepjz reopened this Jan 21, 2025
@acmepjz

acmepjz commented Jan 21, 2025

Copy link
Copy Markdown
Collaborator

TODO:

  • Inequalities between trdegs induced by injective/surjective AlgHom, and equality induced by AlgEquiv.

I think injective AlgHom version should be a consequence of your lift_trdeg_add_le (if not Injective (algebraMap R S) then it's 0 = 0), and AlgEquiv version is a corollary of it (by the inequality of injectivity of the map and its inverse, or maybe we should add AlgEquiv preserves AlgebraicIndependent (which I think we already have it, EDIT: AlgHom.algebraicIndependent_iff and algebraicIndependent_ringHom_iff_of_comp_eq) and IsTranscendenceBasis). I'm not sure of surjective AlgHom version, though.

EDIT2: Maybe the AlgebraicIndependent.ringHom_of_comp_eq should imply a slight generalization of your injective AlgHom inequality, and the AlgebraicIndependent.of_ringHom_of_comp_eq + g surjective should imply a slight generalization of your surjective AlgHom inequality.

EDIT3: Maybe there is an unconditional trdeg S A ≤ trdeg R A given IsScalarTower R S A (unchecked yet).

@leanprover-community-bot-assistant leanprover-community-bot-assistant added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Jan 21, 2025
@alreadydone alreadydone removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Mar 8, 2025
@erdOne

erdOne commented Mar 26, 2025

Copy link
Copy Markdown
Member

What is the status of this PR? I would very much like to have these results in mathlib.
Is this ready for review yet or are you planning to split this up further?
I think a nice split might be to move everything changed in Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean into a new PR.

@alreadydone

Copy link
Copy Markdown
Contributor Author

Is this ready for review yet or are you planning to split this up further?

Yeah it's ready for review and I had no plan to split it up further.

I think a nice split might be to move everything changed in Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean into a new PR.

Okay, changes in that file are now split to #23539.

Comment thread Mathlib/RingTheory/Algebraic/Integral.lean Outdated
Comment thread Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Outdated
Comment thread Mathlib/RingTheory/AlgebraicIndependent/Basic.lean Outdated
nontriviality R
rwa [algebraicIndependent_subtype_range hx.injective]

theorem AlgebraicIndependent.to_subtype_range' (hx : AlgebraicIndependent R x) {t}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder why the docPrime linter does not complain here.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an existing theorem, just moved up, and it's in nolints_prime_decls.txt.

Comment thread Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean Outdated
Comment thread Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean Outdated
@erdOne erdOne added the awaiting-author A reviewer has asked the author a question or requested changes. label Apr 1, 2025
@alreadydone alreadydone removed the awaiting-author A reviewer has asked the author a question or requested changes. label Apr 1, 2025

@erdOne erdOne left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!
maintainer merge

@github-actions

github-actions Bot commented Apr 3, 2025

Copy link
Copy Markdown

🚀 Pull request has been placed on the maintainer queue by erdOne.

@github-actions github-actions Bot added the maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. label Apr 3, 2025
@riccardobrasca

Copy link
Copy Markdown
Member

Thanks!

bors merge

@ghost ghost added ready-to-merge This PR has been sent to bors. and removed maintainer-merge A reviewer has approved the changed; awaiting maintainer approval. labels Apr 6, 2025
mathlib-bors Bot pushed a commit that referenced this pull request Apr 6, 2025
Define transcendence degree `Algebra.trdeg` and proves some basic properties:

In **AlgebraicIndependent/Basic.lean**: define `Algebra.trdeg` to be the supremum of the cardinalities of all AlgebraicIndependent sets, just like `Module.rank` is defined to be the supremum of the cardinalities of all LinearIndependent sets. Add some API lemmas and trivial results about `trdeg`, e.g. that injective/surjective AlgHoms induce inequalities between `trdeg`s, and AlgEquivs induce equalities.

In **AlgebraicIndependent/Transcendental.lean**: add API lemmas and show the inequality `trdeg R S + trdeg S A ≤ trdeg R A` (which does not require a domain).

In **AlgebraicIndependent/Defs.lean**: add Stacks tags and some trivial API lemmas about IsTranscendenceBasis.

Thanks to Chris Hughes and Jz Pan for preliminary works and Peter Nelson for the hint about Finitary and IndepMatroid.

TODO:

+ [The analogue of StrongRankCondition](https://mathoverflow.net/a/484564) in the setting of algebras, which implies `trdeg R (MvPolynomial (Fin n) R) = n` for all Nontrivial CommRing R.
@mathlib-bors

mathlib-bors Bot commented Apr 6, 2025

Copy link
Copy Markdown
Contributor

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors Bot changed the title feat(Algebra): Transcendence degree [Merged by Bors] - feat(Algebra): Transcendence degree Apr 6, 2025
@mathlib-bors mathlib-bors Bot closed this Apr 6, 2025
@mathlib-bors
mathlib-bors Bot deleted the trdeg_squash branch April 6, 2025 18:39
@alreadydone
alreadydone restored the trdeg_squash branch April 6, 2025 19:48
@alreadydone
alreadydone deleted the trdeg_squash branch April 6, 2025 19:49
tannerduve pushed a commit that referenced this pull request May 13, 2025
Define transcendence degree `Algebra.trdeg` and proves some basic properties:

In **AlgebraicIndependent/Basic.lean**: define `Algebra.trdeg` to be the supremum of the cardinalities of all AlgebraicIndependent sets, just like `Module.rank` is defined to be the supremum of the cardinalities of all LinearIndependent sets. Add some API lemmas and trivial results about `trdeg`, e.g. that injective/surjective AlgHoms induce inequalities between `trdeg`s, and AlgEquivs induce equalities.

In **AlgebraicIndependent/Transcendental.lean**: add API lemmas and show the inequality `trdeg R S + trdeg S A ≤ trdeg R A` (which does not require a domain).

In **AlgebraicIndependent/Defs.lean**: add Stacks tags and some trivial API lemmas about IsTranscendenceBasis.

Thanks to Chris Hughes and Jz Pan for preliminary works and Peter Nelson for the hint about Finitary and IndepMatroid.

TODO:

+ [The analogue of StrongRankCondition](https://mathoverflow.net/a/484564) in the setting of algebras, which implies `trdeg R (MvPolynomial (Fin n) R) = n` for all Nontrivial CommRing R.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-merge This PR has been sent to bors. t-algebra Algebra (groups, rings, fields, etc)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants