Skip to content

Sync upstream mathlib4 (2026-07-31, +8 commits) - #90

Merged
winstonyin-ax merged 9 commits into
masterfrom
sync/upstream
Jul 31, 2026
Merged

Sync upstream mathlib4 (2026-07-31, +8 commits)#90
winstonyin-ax merged 9 commits into
masterfrom
sync/upstream

Conversation

@winstonyin-ax

@winstonyin-ax winstonyin-ax commented Jul 31, 2026

Copy link
Copy Markdown
Collaborator

Automated daily sync from leanprover-community/mathlib4@master.

Auto-merges to master once CI (self-hosted) passes. Regenerated
daily until merged or until a conflict appears.


Note

Low Risk
Routine upstream merge: mostly additive definitions, deprecated aliases, and proof refactors with limited behavioral change outside linear algebra API renames.

Overview
Upstream mathlib sync adding row echelon / pivot theory (Matrix.IsRowEchelon, IsReducedRowEchelon, IsPivotedBy with rank_eq and uniqueness), wired into Mathlib.lean.

Matrix triangular API is renamed for clarity: IsUpperTriangular / IsLowerTriangular abbreviate BlockTriangular, and det_of_isUpperTriangular / charpoly_of_isUpperTriangular replace the old *_upperTriangular names (deprecated aliases kept). Call sites (Gram–Schmidt, charpoly, determinant docs) follow the new names.

Rank and determinant gain non-zero-divisor / injectivity-based lemmas (rank_of_det_mem_nonZeroDivisors, rank_mul_eq_*, mulVec_injective_of_det_*, rank_le_card_of_support_subset); range_lt_top_of_det_eq_zero is generalized beyond fields to [IsDomain R] [Free R M].

Smaller churn: new Finset product identities on Iio/Iic for LocallyFiniteOrderBot; widespread fun_prop / measurability proof simplifications; doc and @[to_additive] comment fixes; =ᵐ[μ] instead of =ᶠ[ae μ] in a few measure-theory spots; #count_heartbeats linter deprecated in favor of #count_heartbeats in / profiler options.

Reviewed by Cursor Bugbot for commit d8e37ce. Bugbot is set up for automated code reviews on this repo. Configure here.

yuanyi-350 and others added 9 commits July 30, 2026 08:11
Co-authored-by: Batixx <s59fpern@uni-bonn.de>
Change `/- ` to `/-- ` when it is arguably meant to be.
In a few cases, it wasn't 100% clear to me which is preferable. This was just done with regex search, so probably not exhaustive.

Co-authored-by: Batixx <s59fpern@uni-bonn.de>
Partially enabled through #35683.
…n form and pivots of matrices (#42236)

We add definitions for the row echelon form and pivots of matrices.

We also add some more API about matrix ranks and add abbreviations for upper/lower-triangular matrices based on the current block triangular definition.

Co-authored-by: raoxiaojia <raoxiaojia@gmail.com>
… command (#42274)

This PR deprecates the global `#count_heartbeats` command. (Not to be confused with `#count_heartbeats in`, which we want to keep). The reason is that `#count_heartbeats` doesn't work in its current implementation.

A useful alternative is to use `set_option trace.profiler true` with `set_option trace.profiler.useHeartbeats` true.

As discussed in https://leanprover.zulipchat.com/#narrow/channel/263328-triage/topic/issue.20.214.2323905.3A.20linter.2EcountHeartbeats.20is.20broken/with/538006069
* Mostly useful for `ℕ`
* I added the `Finset.Iic` lemmas by symmetry, but I'm happy to remove them if we think they are redundant.
@winstonyin-ax
winstonyin-ax merged commit 19f3da8 into master Jul 31, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants