Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(RingTheory/NoetherNormalization): Add Noether normalization lemma #18247

Open
wants to merge 36 commits into
base: master
Choose a base branch
from

Conversation

su00000
Copy link
Collaborator

@su00000 su00000 commented Oct 26, 2024

This PR contains a proof of Noether normalization lemma:
Let A be a finitely generated algebra over a field k. Then there exists natural number $r$ and an injective homomorphism from k[X_1, X_2, ..., X_r] to A such that A is integral over k[X_1, X_2, ..., X_r].

Co-authored-by: Riccardo Brasca [email protected]
Co-authored-by: Wan Lin [email protected]
Co-authored-by: Xiaoyang Su [email protected]


Open in Gitpod

@su00000 su00000 added WIP Work in progress t-algebra Algebra (groups, rings, fields, etc) labels Oct 26, 2024
@github-actions github-actions bot added the new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! label Oct 26, 2024
Copy link

github-actions bot commented Oct 26, 2024

PR summary d818c2c745

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.RingTheory.NoetherNormalization (new file) 1395

Declarations diff

+ T1
+ exists_finite_inj_algHom_of_fg
+ exists_integral_inj_algHom_of_fg
+ exists_integral_inj_algHom_of_quotient
+ map_coe
+ ofDigits_inj_of_len_eq

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).

@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR to Mathlib (this label is automatically managed by a bot) label Oct 26, 2024
@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 Nov 1, 2024
@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot removed the blocked-by-other-PR This PR depends on another PR to Mathlib (this label is automatically managed by a bot) label Nov 5, 2024
@mathlib4-dependent-issues-bot
Copy link
Collaborator

@riccardobrasca
Copy link
Member

Can you please fix the conflict? Thanks!

@leanprover-community-bot-assistant leanprover-community-bot-assistant removed the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 27, 2024
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
@alreadydone alreadydone changed the title feat(RingTheory/NoetherNormalization):Add noether normalization lemma feat(RingTheory/NoetherNormalization): Add noether normalization lemma Nov 27, 2024
@alreadydone alreadydone changed the title feat(RingTheory/NoetherNormalization): Add noether normalization lemma feat(RingTheory/NoetherNormalization): Add Noether normalization lemma Nov 27, 2024
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
@alreadydone alreadydone added awaiting-author A reviewer has asked the author a question or requested changes and removed WIP Work in progress labels Nov 29, 2024
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Copy link
Member

@riccardobrasca riccardobrasca left a comment

Choose a reason for hiding this comment

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

Can you add a short description of the strategy of the proof in the docstring at the beginning? It doesn't seem to be the same as in the stack project.

Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Copy link
Collaborator

@Ruben-VandeVelde Ruben-VandeVelde left a comment

Choose a reason for hiding this comment

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

Thanks! A few small comments

Mathlib/Data/Nat/Digits.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Copy link
Member

@riccardobrasca riccardobrasca left a comment

Choose a reason for hiding this comment

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

I think this is really good and almost ready. In my opinion there are still two things to be done:

  • you write a rather detailed proof strategy, but the description is before each theorem. I think it would be better to have it at the beginning of the file, with references to the actual declaration proving what you claim, maybe in a section "# Strategy of the proof" (for example you can say something like so that T maps
    different monomials of f to mvpolynomials with different degrees of X_0, see name_of_the_theorem).
  • we try to have descriptive names even for private lemmas. I know, this is annoying but it helps).

The best thing would be to try to extract some results, but I don't know if this is reasonable, they all seem very specific to this proof.

Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Mathlib/RingTheory/NoetherNormalization.lean Outdated Show resolved Hide resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-algebra Algebra (groups, rings, fields, etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants