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

[Merged by Bors] - feat(LinearIndependent): LinearIndepOn predicate #21799

Closed
wants to merge 6 commits into from

Conversation

apnelson1
Copy link
Collaborator

Added a predicate stating that the vectors in a family indexed by a set are linearly independent.
As per discussion on zulip


Open in Gitpod

Copy link

github-actions bot commented Feb 13, 2025

PR summary 62b8136604

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ LinearIndepOn
+ LinearIndepOn.mono
+ linearIndepOn_empty
+ linearIndepOn_univ
+ linearIndependent_set_subtype

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

@github-actions github-actions bot added the t-algebra Algebra (groups, rings, fields, etc) label Feb 13, 2025
Copy link
Contributor

@b-mehta b-mehta left a comment

Choose a reason for hiding this comment

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

I'm on board, but I'd like to hear from @eric-wieser before merging.

@apnelson1 apnelson1 changed the title feat(LinearIndependent): LinearIndependentOn predicate feat(LinearIndependent): LinearIndepOn predicate Feb 14, 2025
Copy link
Contributor

@b-mehta b-mehta left a comment

Choose a reason for hiding this comment

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

bors d+

@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Feb 14, 2025

✌️ apnelson1 can now approve this pull request. To approve and merge a pull request, simply reply with bors r+. More detailed instructions are available here.

@apnelson1
Copy link
Collaborator Author

bors r+

mathlib-bors bot pushed a commit that referenced this pull request Feb 14, 2025
Added a predicate stating that the vectors in a family indexed by a set are linearly independent.
As per [discussion on zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60Set.2Eincl.60)
@mathlib-bors
Copy link
Contributor

mathlib-bors bot commented Feb 14, 2025

Pull request successfully merged into master.

Build succeeded:

@mathlib-bors mathlib-bors bot changed the title feat(LinearIndependent): LinearIndepOn predicate [Merged by Bors] - feat(LinearIndependent): LinearIndepOn predicate Feb 14, 2025
@mathlib-bors mathlib-bors bot closed this Feb 14, 2025
@mathlib-bors mathlib-bors bot deleted the LinearIndependentOn branch February 14, 2025 11:51
mathlib-bors bot pushed a commit that referenced this pull request Feb 20, 2025
Currently, if `s` is a set of vectors in a module `W`, the way to state that the vectors in `s` are linearly independent is 
`LinearIndependent R (Subtype.val : ↥s → W)` (or similar), and if `v : ι -> W` and `s : Set ι` is a set of indices, the way to state that `s` indexes a linearly independent subcollection is `LinearIndependent  R (fun x : ↥s ↦ (f x : W))` or similar. 

#21799 introduced a definition `LinearIndepOn`, which gives an alternative spelling 
`LinearIndepOn R f s` instead of `LinearIndependent  R (fun x : ↥s ↦ (f x : W))` for the indexed version, and (therefore) `LinearIndepOn R id s` for the set version. 

This PR updates spellings throughout mathlib, changing terms of type `LinearIndependent R (Subtype.val : ↥s → W)` to `LinearIndepOn R id s` and 
`LinearIndependent  R (fun x : ↥s ↦ (f x : W))` to `LinearIndepOn R f s`.

The API using the old spellings has been deprecated, and replaced with new one - the diff is designed to be as small as possible subject to deprecating the old spellings. In some cases, where no extra work was needed, we generalized lemmas that previously apply to `LinearIndepOn R id s` to `LinearIndepOn R v s` for arbitrary `v`. But there is room to do this further in other places, some of which have been marked TODO. 

Most changes happen in `LinearAlgebra/LinearIndependent.lean`, but only about 100 lines have been added to the length, many of which are deprecated alias lines.  Nearly all other changes are knock-on effects, where statements, proofs and (in two cases) definitions that use the old spellings are updated.  22 files are affected, but the majority only in the form of slight modifications of proofs to avoid deprecated lemmas. 

The two files other than `LinearIndependent.lean` with changed definitions are: 

- `Mathlib/LinearAlgebra/Dimension/Basic.lean` (definition of Module.rank)
- `Mathlib/LinearAlgebra/Dimension/RankNullity.lean` (changed structure field of `HasRankNullity`)

The files with changed theorem statements are: 

- `Mathlib/FieldTheory/Fixed.lean`
- `Mathlib/LinearAlgebra/Basis/VectorSpace.lean`
- `Mathlib/LinearAlgebra/Dimension/Constructions.lean`
- `Mathlib/LinearAlgebra/Dimension/Finite.lean`
- `Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean`
- `Mathlib/LinearAlgebra/Dimension/LinearMap.lean`
- `Mathlib/LinearAlgebra/Dimension/Localization.lean`
- `Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean`

[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2321886.20LinearIndepOn.20refactor/near/500527995)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
delegated t-algebra Algebra (groups, rings, fields, etc)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants