Skip to content

[Merged by Bors] - feat(LinearAlgebra): more on StrongRankCondition#32194

Closed
alreadydone wants to merge 12 commits intoleanprover-community:masterfrom
alreadydone:StrongRankCondition+
Closed

[Merged by Bors] - feat(LinearAlgebra): more on StrongRankCondition#32194
alreadydone wants to merge 12 commits intoleanprover-community:masterfrom
alreadydone:StrongRankCondition+

Conversation

@alreadydone
Copy link
Copy Markdown
Contributor

@alreadydone alreadydone commented Nov 28, 2025

Strong rank condition fails for R iff there is a copy of $R^{(\mathbb{N})}$ in some $R^n$, iff some $R^n$ has infinity rank, iff some $R^{n+1}$ has zero finrank. As consequences, if all $R^n$ are Noetherian or Artinian, then $R$ satisfies the strong rank condition.

To prove the first equivalence, I redeveloped a version of the "tunnels and tailings" construction @jcommelin and @kim-em contributed to mathlib ~4 years ago and made it work for Semiring/AddCommMonoid. The original construction was deprecated in #12076 by @acmepjz and later removed, though some docstrings still remain, and I think it's now time to remove it.

Also add an instance that finite semirings satisfy the Orzech property (and therefore strong rank condition and invariant basis number).


Open in Gitpod

@alreadydone alreadydone added t-algebra Algebra (groups, rings, fields, etc) blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) labels Nov 28, 2025
@github-actions
Copy link
Copy Markdown

github-actions bot commented Nov 28, 2025

PR summary 998c33d676

Import changes for modified files

Dependency changes

File Base Count Head Count Change
Mathlib.RingTheory.Artinian.Instances 1136 1141 +5 (+0.44%)
Mathlib.RingTheory.Noetherian.Basic 974 975 +1 (+0.10%)
Mathlib.RingTheory.Artinian.Module 1063 1064 +1 (+0.09%)
Import changes for all files
Files Import difference
127 files Mathlib.Algebra.AlgebraicCard Mathlib.Algebra.Azumaya.Basic Mathlib.Algebra.Category.CommAlgCat.FiniteType Mathlib.Algebra.Category.Ring.FinitePresentation Mathlib.Algebra.Category.Ring.LinearAlgebra Mathlib.Algebra.Central.TensorProduct Mathlib.Algebra.Jordan.Basic Mathlib.Algebra.Lie.Abelian Mathlib.Algebra.Lie.BaseChange Mathlib.Algebra.Lie.CartanMatrix (new file) Mathlib.Algebra.Lie.Character Mathlib.Algebra.Lie.Cochain Mathlib.Algebra.Lie.Derivation.AdjointAction Mathlib.Algebra.Lie.Derivation.Basic Mathlib.Algebra.Lie.DirectSum Mathlib.Algebra.Lie.Extension Mathlib.Algebra.Lie.Free Mathlib.Algebra.Lie.IdealOperations Mathlib.Algebra.Lie.Ideal Mathlib.Algebra.Lie.Normalizer Mathlib.Algebra.Lie.OfAssociative Mathlib.Algebra.Lie.Quotient Mathlib.Algebra.Lie.Semisimple.Basic Mathlib.Algebra.Lie.Semisimple.Defs Mathlib.Algebra.Lie.Solvable Mathlib.Algebra.Lie.Subalgebra Mathlib.Algebra.Lie.Submodule Mathlib.Algebra.Lie.TensorProduct Mathlib.Algebra.Lie.UniversalEnveloping Mathlib.Algebra.Module.FinitePresentation Mathlib.Algebra.Module.Presentation.Finite Mathlib.Algebra.Polynomial.Expand Mathlib.Algebra.Symmetrized Mathlib.AlgebraicGeometry.ProjectiveSpectrum.StructureSheaf Mathlib.Analysis.Complex.IsIntegral Mathlib.Data.Nat.Choose.Lucas Mathlib.Data.Real.Irrational Mathlib.FieldTheory.Minpoly.Basic Mathlib.FieldTheory.Tower Mathlib.NumberTheory.DiophantineApproximation.Basic Mathlib.NumberTheory.DiophantineApproximation.ContinuedFractions Mathlib.NumberTheory.FLT.Polynomial Mathlib.NumberTheory.FrobeniusNumber Mathlib.NumberTheory.Pell Mathlib.NumberTheory.Rayleigh Mathlib.NumberTheory.Real.Irrational Mathlib.RingTheory.AdicCompletion.AsTensorProduct Mathlib.RingTheory.AdicCompletion.Exactness Mathlib.RingTheory.AdicCompletion.Noetherian Mathlib.RingTheory.Adjoin.FGBaseChange Mathlib.RingTheory.Adjoin.FG Mathlib.RingTheory.Adjoin.Tower Mathlib.RingTheory.Algebraic.Basic Mathlib.RingTheory.Algebraic.MvPolynomial Mathlib.RingTheory.AlgebraicIndependent.Transcendental Mathlib.RingTheory.Artinian.Algebra Mathlib.RingTheory.Artinian.Module Mathlib.RingTheory.Artinian.Ring Mathlib.RingTheory.Bialgebra.GroupLike Mathlib.RingTheory.Coalgebra.GroupLike Mathlib.RingTheory.Derivation.Lie Mathlib.RingTheory.EssentialFiniteness Mathlib.RingTheory.Filtration Mathlib.RingTheory.FiniteLength Mathlib.RingTheory.FinitePresentation Mathlib.RingTheory.FiniteStability Mathlib.RingTheory.FiniteType Mathlib.RingTheory.Finiteness.Quotient Mathlib.RingTheory.Finiteness.Small Mathlib.RingTheory.Flat.Basic Mathlib.RingTheory.Flat.CategoryTheory Mathlib.RingTheory.Flat.Domain Mathlib.RingTheory.Flat.Equalizer Mathlib.RingTheory.Flat.EquationalCriterion Mathlib.RingTheory.Flat.FaithfullyFlat.Algebra Mathlib.RingTheory.Flat.FaithfullyFlat.Basic Mathlib.RingTheory.Flat.Localization Mathlib.RingTheory.Flat.Stability Mathlib.RingTheory.Flat.Tensor Mathlib.RingTheory.FractionalIdeal.Basic Mathlib.RingTheory.FractionalIdeal.Inverse Mathlib.RingTheory.FractionalIdeal.Operations Mathlib.RingTheory.GradedAlgebra.FiniteType Mathlib.RingTheory.GradedAlgebra.HomogeneousLocalization Mathlib.RingTheory.GradedAlgebra.Noetherian Mathlib.RingTheory.HopfAlgebra.GroupLike Mathlib.RingTheory.Ideal.AssociatedPrime.Finiteness Mathlib.RingTheory.Ideal.AssociatedPrime.Localization Mathlib.RingTheory.Ideal.NatInt Mathlib.RingTheory.Ideal.Quotient.Noetherian Mathlib.RingTheory.IntegralClosure.IsIntegral.Basic Mathlib.RingTheory.Jacobson.Polynomial Mathlib.RingTheory.KrullDimension.Basic Mathlib.RingTheory.KrullDimension.Field Mathlib.RingTheory.KrullDimension.NonZeroDivisors Mathlib.RingTheory.LocalProperties.Basic Mathlib.RingTheory.LocalProperties.Reduced Mathlib.RingTheory.LocalRing.ResidueField.Fiber Mathlib.RingTheory.Localization.Away.Lemmas Mathlib.RingTheory.Localization.Finiteness Mathlib.RingTheory.Localization.InvSubmonoid Mathlib.RingTheory.Localization.Submodule Mathlib.RingTheory.Noetherian.Basic Mathlib.RingTheory.Noetherian.Orzech Mathlib.RingTheory.Polynomial.Basic Mathlib.RingTheory.Polynomial.Quotient Mathlib.RingTheory.Polynomial.UniqueFactorization Mathlib.RingTheory.ReesAlgebra Mathlib.RingTheory.Regular.Flat Mathlib.RingTheory.Regular.IsSMulRegular Mathlib.RingTheory.Regular.RegularSequence Mathlib.RingTheory.RingHom.Bijective Mathlib.RingTheory.RingHom.FiniteType Mathlib.RingTheory.RingHom.Finite Mathlib.RingTheory.RingHom.Locally Mathlib.RingTheory.RingHom.OpenImmersion Mathlib.RingTheory.RingHom.Surjective Mathlib.RingTheory.SimpleModule.WedderburnArtin Mathlib.RingTheory.Spectrum.Maximal.Localization Mathlib.RingTheory.Spectrum.Prime.Basic Mathlib.RingTheory.Spectrum.Prime.RingHom Mathlib.RingTheory.Support Mathlib.RingTheory.TensorProduct.DirectLimitFG Mathlib.RingTheory.TensorProduct.Nontrivial Mathlib.Topology.Instances.AddCircle.DenseSubgroup Mathlib.Topology.Instances.Irrational Mathlib.Topology.Instances.RatLemmas
1
Mathlib.RingTheory.Artinian.Instances 5

Declarations diff

+ IsArtinian.subsingleton_of_injective
+ IsNoetherian.subsingleton_of_injective
+ LinearMap.iSupIndep_map
+ StrongRankCondition.of_isArtinian
+ StrongRankCondition.of_isNoetherian
+ exists_finsupp_nat_of_fin_fun_injective
+ exists_finsupp_nat_of_prod_injective
+ fst_prodOfFinsuppNat
+ iSupIndep_range_lsingle
+ instance [Finite R] : OrzechProperty R
+ mapDomain_comapDomain_nat_add_one
+ prodOfFinsuppNat
+ prodOfFinsuppNat_injective
+ snd_prodOfFinsuppNat
+ strongRankCondition_iff_forall_not_injective
+ strongRankCondition_iff_forall_rank_lt_aleph0
+ strongRankCondition_iff_forall_zero_lt_finrank
+ ⟨_root_.Function.Injective.surjective_of_finite,
- ⟨_root_.Function.Injective.surjective_of_fintype,

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 added the WIP Work in progress label Nov 28, 2025
@github-actions github-actions bot 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 28, 2025
@github-actions github-actions bot 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 28, 2025
@alreadydone alreadydone removed the WIP Work in progress label Nov 28, 2025
@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot removed the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Nov 28, 2025
@mathlib4-dependent-issues-bot
Copy link
Copy Markdown
Collaborator

@jcommelin jcommelin added the awaiting-author A reviewer has asked the author a question or requested changes. label Dec 2, 2025
@alreadydone alreadydone removed the awaiting-author A reviewer has asked the author a question or requested changes. label Dec 5, 2025
@ocfnash ocfnash self-assigned this Dec 17, 2025
@ocfnash ocfnash added the awaiting-author A reviewer has asked the author a question or requested changes. label Dec 17, 2025
@alreadydone alreadydone removed the awaiting-author A reviewer has asked the author a question or requested changes. label Dec 17, 2025
@ocfnash
Copy link
Copy Markdown
Contributor

ocfnash commented Dec 19, 2025

Thanks!

bors merge

@ghost ghost added the ready-to-merge This PR has been sent to bors. label Dec 19, 2025
mathlib-bors bot pushed a commit that referenced this pull request Dec 19, 2025
Strong rank condition fails for R iff there is a copy of $R^{(\mathbb{N})}$ in some $R^n$, iff some $R^n$ has infinity rank, iff some $R^{n+1}$ has zero `finrank`. As consequences, if all $R^n$ are Noetherian or Artinian, then $R$ satisfies the strong rank condition.

To prove the first equivalence, I redeveloped a version of the ["tunnels and tailings"](leanprover-community/mathlib3@86766851#diff-7829719aad6a9e3e617da2a7cf29dba4d55516b27e18f240eca352f4983d67b7R472-R491) construction @jcommelin and @kim-em contributed to mathlib ~4 years ago and made it work for Semiring/AddCommMonoid. The original construction was deprecated in [#12076](5948566) by @acmepjz and later removed, though some docstrings still remain, and I think it's now time to remove it.

Also add an instance that finite semirings satisfy the Orzech property (and therefore strong rank condition and invariant basis number).
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Dec 19, 2025

Build failed (retrying...):

mathlib-bors bot pushed a commit that referenced this pull request Dec 19, 2025
Strong rank condition fails for R iff there is a copy of $R^{(\mathbb{N})}$ in some $R^n$, iff some $R^n$ has infinity rank, iff some $R^{n+1}$ has zero `finrank`. As consequences, if all $R^n$ are Noetherian or Artinian, then $R$ satisfies the strong rank condition.

To prove the first equivalence, I redeveloped a version of the ["tunnels and tailings"](leanprover-community/mathlib3@86766851#diff-7829719aad6a9e3e617da2a7cf29dba4d55516b27e18f240eca352f4983d67b7R472-R491) construction @jcommelin and @kim-em contributed to mathlib ~4 years ago and made it work for Semiring/AddCommMonoid. The original construction was deprecated in [#12076](5948566) by @acmepjz and later removed, though some docstrings still remain, and I think it's now time to remove it.

Also add an instance that finite semirings satisfy the Orzech property (and therefore strong rank condition and invariant basis number).
@mathlib-bors
Copy link
Copy Markdown
Contributor

mathlib-bors bot commented Dec 19, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(LinearAlgebra): more on StrongRankCondition [Merged by Bors] - feat(LinearAlgebra): more on StrongRankCondition Dec 19, 2025
@mathlib-bors mathlib-bors bot closed this Dec 19, 2025
YuvalFilmus pushed a commit to YuvalFilmus/mathlib4 that referenced this pull request Dec 19, 2025
…y#32194)

Strong rank condition fails for R iff there is a copy of $R^{(\mathbb{N})}$ in some $R^n$, iff some $R^n$ has infinity rank, iff some $R^{n+1}$ has zero `finrank`. As consequences, if all $R^n$ are Noetherian or Artinian, then $R$ satisfies the strong rank condition.

To prove the first equivalence, I redeveloped a version of the ["tunnels and tailings"](leanprover-community/mathlib3@86766851#diff-7829719aad6a9e3e617da2a7cf29dba4d55516b27e18f240eca352f4983d67b7R472-R491) construction @jcommelin and @kim-em contributed to mathlib ~4 years ago and made it work for Semiring/AddCommMonoid. The original construction was deprecated in [leanprover-community#12076](leanprover-community@5948566) by @acmepjz and later removed, though some docstrings still remain, and I think it's now time to remove it.

Also add an instance that finite semirings satisfy the Orzech property (and therefore strong rank condition and invariant basis number).
goliath-klein pushed a commit to PrParadoxy/mathlib4 that referenced this pull request Jan 24, 2026
…y#32194)

Strong rank condition fails for R iff there is a copy of $R^{(\mathbb{N})}$ in some $R^n$, iff some $R^n$ has infinity rank, iff some $R^{n+1}$ has zero `finrank`. As consequences, if all $R^n$ are Noetherian or Artinian, then $R$ satisfies the strong rank condition.

To prove the first equivalence, I redeveloped a version of the ["tunnels and tailings"](leanprover-community/mathlib3@86766851#diff-7829719aad6a9e3e617da2a7cf29dba4d55516b27e18f240eca352f4983d67b7R472-R491) construction @jcommelin and @kim-em contributed to mathlib ~4 years ago and made it work for Semiring/AddCommMonoid. The original construction was deprecated in [leanprover-community#12076](leanprover-community@5948566) by @acmepjz and later removed, though some docstrings still remain, and I think it's now time to remove it.

Also add an instance that finite semirings satisfy the Orzech property (and therefore strong rank condition and invariant basis number).
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.

5 participants