Skip to content

feat(LinearAlgebra): unimodular elements and completion to a basis - #42466

Open
xroblot wants to merge 2 commits into
leanprover-community:masterfrom
xroblot:unimodular
Open

feat(LinearAlgebra): unimodular elements and completion to a basis#42466
xroblot wants to merge 2 commits into
leanprover-community:masterfrom
xroblot:unimodular

Conversation

@xroblot

@xroblot xroblot commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Add a new file Mathlib/LinearAlgebra/Unimodular.lean about unimodular
elements of a module (those on which some linear functional takes the value
1).

Main results:

  • Module.Basis.span_repr_eq_top_iff: v is unimodular iff its coordinates in
    a basis generate the unit ideal;
  • Module.Free.exists_basis_apply_zero_eq: a unimodular vector of a rank-two
    free module completes to a basis;
  • Module.Basis.span_repr_one_eq_top / Module.Free.exists_linearMap_apply_one_eq_one:
    1 is unimodular in a nonzero free algebra.

Some of the mathematics and proofs in this file were developed with the help of Claude 🤖.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

PR summary 37a6ec307d

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.LinearAlgebra.Unimodular (new file) 1662

Declarations diff (regex)

+ exists_basis_apply_zero_eq
+ exists_linearMap_apply_one_eq_one
+ span_repr_eq_top_iff
+ span_repr_one_eq_top

You can run this locally as follows
## from your `mathlib4` directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci

## summary with just the declaration names:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh in the mathlib-ci repository contains some details about this script.

Declarations diff (Lean)

Lean-aware diff — post-build, computed from the Lean environment (commit 37a6ec3).

  • +5 new declarations
  • −0 removed declarations
+Matrix.toLinearEquiv.congr_simp
+Module.Basis.span_repr_eq_top_iff
+Module.Basis.span_repr_one_eq_top
+Module.Free.exists_basis_apply_zero_eq
+Module.Free.exists_linearMap_apply_one_eq_one

No changes to strong technical debt.

No changes to weak technical debt.

Current commit 37a6ec307d
Reference commit b2418b0404

This script lives in the mathlib-ci repository. To run it locally, from your mathlib4 directory:

git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci
../mathlib-ci/scripts/reporting/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 Aug 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

t-algebra Algebra (groups, rings, fields, etc)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant