Welcome to the mathlib review page. Everybody's help with reviewing is appreciated. Reviewing contributions is important, and everybody is welcome to review pull requests! If you're not sure how, the pull request review guide is there to help you.
This page is the main reviewer-facing queue: if a PR is ready for review, it belongs here. The triage page contains additional triage-oriented views, but it is not the primary review queue.
This page contains tables of
| Number |
Author |
Title |
Description |
Labels |
+/- |
Modified files (first 100) |
📝 |
💬 |
All users who commented or reviewed |
Assignee(s) |
Updated |
Last status change |
total time in review |
| 29744 |
espottesmith author:espottesmith |
feat(Combinatorics): define directed hypergraphs |
This PR defines directed hypergraphs:
```
@[ext]
structure DiHypergraph (α : Type*) where
/-- The vertex set -/
vertexSet : Set α
/-- The edge set -/
edgeSet : Set ((Set α) × (Set α))
/-- Each edge is a pair (s, d), where s ⊆ vertexSet and d ⊆ vertexSet -/
edge_src_dst_isSubset_vertexSet' : ∀ ⦃e⦄, e ∈ edgeSet → e.1 ⊆ vertexSet ∧ e.2 ⊆ vertexSet
```
Additional definitions:
- tail/head stars and negative/positive stars
- some special cases (B-Graph, F-Graph, BF-Graph, and what I'm calling a "non-endless" dihypergraph, where neither the source/tail nor the destination/head are empty)
- Vertex and (hyper)edge adjacency
- isolated vertices
- empty and nonempty dihypergraphs
The design employed here is based off of #28613, but this PR does not depend on that one.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
391/0 |
Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
YaelDillies assignee:YaelDillies |
155-62190 5 months ago |
2-73112 2 days ago |
97-52641 97 days |
| 35619 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Clique): intersection and union of cliques |
Plus a couple of lemmas.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
29/0 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Data/Set/Pairwise/Basic.lean |
1 |
13 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
80-19400 2 months ago |
13-80780 13 days ago |
19-70642 19 days |
| 35402 |
samueloettl author:samueloettl |
feat(Dynamics/BirkhoffSum): birkhoffAverage const |
---
I think this is useful and one of these should be a simp lemma.
I'm not really sure if I got the naming of the theorems correct.
When generalizing to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
|
22/0 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
26 |
['Maldooor', 'github-actions', 'lua-vr', 'mcdoll', 'samueloettl'] |
mcdoll assignee:mcdoll |
76-18035 2 months ago |
8-56507 8 days ago |
77-28048 77 days |
| 35610 |
IvanRenison author:IvanRenison |
feat(Data/Fin): add several lemmas about subtraction of `Fin.{castLT, castAdd, castSucc, castPred}` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
79/0 |
Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/SuccPred.lean |
2 |
13 |
['IvanRenison', 'chrisflav', 'github-actions', 'robin-carlier', 'wwylele'] |
eric-wieser assignee:eric-wieser |
74-18053 2 months ago |
11-25188 11 days ago |
76-43919 76 days |
| 33714 |
idontgetoutmuch author:idontgetoutmuch |
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II |
Supersedes https://github.com/leanprover-community/mathlib4/pull/33519
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
680/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean |
3 |
200 |
['Rida-Hamadani', 'github-actions', 'grunweg', 'idontgetoutmuch'] |
fpvandoorn assignee:fpvandoorn |
72-50484 2 months ago |
23-56938 23 days ago |
68-63426 68 days |
| 28685 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): prove the minimal-degree version of the Erdős-Stone theorem |
Proves the minimal degree-version of the Erdős-Stone theorem:
If `G` has a minimal degree of at least `(1 - 1 / r + o(1)) * card V`, then `G` contains a copy of a `completeEquipartiteGraph` in `r + 1` parts each of size `t`.
The double-counting construction from the proof is available in `namespace ErdosStone`.
---
- [x] depends on: #25843
- [x] depends on: #27597
- [x] depends on: #27599
- [x] depends on: #28443
- [x] depends on: #28445
- [x] depends on: #28446
- [x] depends on: #28447
This is the first of several pull requests towards the full Erdős-Stone(-Simonovits) theorem, hence the name of the file.
[](https://gitpod.io/from-referrer/) |
t-combinatorics
maintainer-merge
|
323/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean |
2 |
19 |
['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'mitchell-horner', 'robin-carlier'] |
b-mehta assignee:b-mehta |
71-83924 2 months ago |
8-21442 8 days ago |
69-23808 69 days |
| 34507 |
metakunt author:metakunt |
feat(NumberTheory/AKSPrimality): Adds the AKS primality test |
Adds the completed proof for the AKS primality test.
Everything except the final theorem is marked private as it's only needed for the final proof.
Also everything except the final theorem is namespaced with AKS.
----
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Aks.20primality.20Theorem.206.2E1.20Claim.20.28i.29.20proven |
t-number-theory |
653/0 |
Mathlib.lean,Mathlib/NumberTheory/AKSPrimality.lean |
2 |
52 |
['MichaelStollBayreuth', 'github-actions', 'jcommelin', 'kim-em', 'metakunt', 'qawbecrdtey', 'tb65536', 'vihdzp'] |
tb65536 assignee:tb65536 |
69-8222 2 months ago |
18-5207 18 days ago |
74-74293 74 days |
| 35504 |
JoaBjo author:JoaBjo |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property
Add the main analytic results for the exponential distribution:
- moment-generating function `mgf id (expMeasure r) t = r / (r - t)` for `t < r`
- mean `∫ x, x ∂(expMeasure r) = r⁻¹`
- variance `Var[id; expMeasure r] = r⁻¹ ^ 2`
- `ℒp` membership for all `p`
- tail probability `P(X > x) = exp (-(r * x))`
- memoryless property `P(X > s + t | X > s) = P(X > t)`
The MGF is computed by reducing to the known improper integral `∫ exp(c * x)` on `Ioi`,
and integrability is deduced by contradiction from the positive closed-form value.
The mean and variance are computed via the Gamma function integral
`∫₀^∞ x^(n-1) exp(-r x) dx = Γ(n) / rⁿ`. The memoryless property follows from
the exponential identity `exp(-(r(s+t))) = exp(-rt) * exp(-rs)`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
200/0 |
Mathlib/Probability/Distributions/Exponential.lean |
1 |
6 |
['JoaBjo', 'Timeroot', 'github-actions'] |
kex-y assignee:kex-y |
67-39879 2 months ago |
17-67459 17 days ago |
32-60235 32 days |
| 33143 |
wwylele author:wwylele |
feat(PowerSeries): pentagonal number theorem |
The proof is split in two files: `Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean` for the algebraic part, and `Mathlib/RingTheory/PowerSeries/Pentagonal.lean` for the summability part. In the near future, I also plan to prove the real/complex version that branches off from the algebraic part.
---
- [x] depends on: #30436
- [x] depends on: #38179
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
427/1 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Pentagonal.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml |
4 |
59 |
['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib-dependent-issues', 'tb65536', 'urkud', 'vihdzp', 'wwylele'] |
chrisflav assignee:chrisflav |
66-33031 2 months ago |
11-8389 11 days ago |
112-66503 112 days |
| 35892 |
vlad902 author:vlad902 |
feat(Data): lemmas for `List.bagInter` |
Basic API lemmas for `List.bagInter` and correct a few misnamed lemmas.
Co-authored-by: Aristotle (Harmonic)
---
[](https://gitpod.io/from-referrer/)
|
t-data |
60/5 |
Mathlib/Data/List/Lattice.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/Multiset/UnionInter.lean |
3 |
13 |
['Vierkantor', 'github-actions', 'vlad902'] |
Vierkantor assignee:Vierkantor |
65-18040 2 months ago |
18-71095 18 days ago |
18-70824 18 days |
| 35069 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): simple polygons and boundary map |
This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution.
- [x] depends on: #34598
---
|
new-contributor
t-euclidean-geometry
LLM-generated
|
360/0 |
Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean |
4 |
30 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'jsm28', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] |
eric-wieser assignee:eric-wieser |
65-6157 2 months ago |
76-43903 76 days ago |
78-73637 78 days |
| 36219 |
gasparattila author:gasparattila |
chore(Order/SupClosed): use `to_dual` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
86/217 |
Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/SupClosed.lean |
6 |
6 |
['github-actions', 'mathlib-merge-conflicts'] |
bryangingechen assignee:bryangingechen |
63-65861 2 months ago |
27-43620 27 days ago |
31-46417 31 days |
| 35316 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 4/5) |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
large-import
|
86/0 |
Mathlib/Analysis/Analytic/Order.lean |
1 |
29 |
['MichaelStollBayreuth', 'SnirBroshi', 'github-actions', 'kebekus', 'mathlib-dependent-issues', 'mkaratarakis'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
63-52827 2 months ago |
6-23075 6 days ago |
29-39858 29 days |
| 36451 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Matching): `edgeSet` is injective and strictly monotonic on matchings, and more API |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
45/11 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
3 |
13 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
63-40174 2 months ago |
19-45896 19 days ago |
47-81335 47 days |
| 36155 |
grunweg author:grunweg |
feat: custom elaborators for TangentSpace and tangentMap(Within) |
And use these to golf the differential geometry files a bit further.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-meta
|
58/28 |
Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean,Mathlib/Geometry/Manifold/GroupLieAlgebra.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/Topology/FiberBundle/Constructions.lean,MathlibTest/DifferentialGeometry/Notation/Basic.lean |
7 |
7 |
['JovanGerb', 'github-actions', 'grunweg', 'mathlib-merge-conflicts', 'ocfnash'] |
JovanGerb assignee:JovanGerb |
63-18039 2 months ago |
29-62530 29 days ago |
67-69302 67 days |
| 30526 |
SnirBroshi author:SnirBroshi |
chore(Logic/Relation): use `≤` to spell subrelation |
Replace every `∀ x y, r x y → r' x y` with `r ≤ r'`
---
NOTE: this PR began as an effort to use `Subrelation` since `≤` wasn't available in this file, but it was agreed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2330526.20use.20Subrelation.20in.20Mathlib.2ELogic.2ERelation/with/546572676) to instead make `≤` available there.
[](https://gitpod.io/from-referrer/)
|
t-logic |
161/136 |
Mathlib.lean,Mathlib/Algebra/Category/Grp/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/CategoryTheory/Action.lean,Mathlib/CategoryTheory/ConnectedComponents.lean,Mathlib/CategoryTheory/Filtered/Connected.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Types/Coequalizers.lean,Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Defs/Prop.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/Topology/Gluing.lean |
25 |
21 |
['SnirBroshi', 'Vierkantor', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'thorimur', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
63-58 2 months ago |
18-5654 18 days ago |
80-49624 80 days |
| 36169 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Indexed): `iSup` of `sup`s vs `sup` of `iSup`s |
`ciSup_sup_eq`/`ciInf_inf_eq` match `CompleteLattice`'s `iSup_sup_eq`/`iInf_inf_eq`, and in a `ConditionallyCompleteLinearOrder` we get an inequality without any bounded assumptions.
`Finset.ciSup_union` for `ConditionallyCompleteLinearOrderBot` matches `CompleteLattice`'s `Finset.iSup_union`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
39/0 |
Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
2 |
11 |
['SnirBroshi', 'Vierkantor', 'github-actions', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
62-18059 2 months ago |
2-75804 2 days ago |
34-45045 34 days |
| 34952 |
joneugster author:joneugster |
feat(scripts/autolabel): use `Cli` and integrate `curl` call into `autolabel` |
- use `Cli` for `lake exe autolabel`
- add arguments `--pr xxx --gh` and `--pr xxx --curl ` to chose between different interaction methods with github
- add `--force` to skip the check whether labels are already present. (note: the current `curl` setup doesn't perform this step and neither does the refactor, so I added a `Todo` to remember this. )
- make CI-workflow simpler and more robust by removing current stdout-parsing of the debug-messages which `autolabel` emits.
### Testing
Make some local changes and commit them. Ensure your local `origin/master` is in sync with `upstream/master` if you are on a fork.
- `lake exe autolabel`: prints the labels which would be applicable
- `lake exe autolabel --pr 34952 --gh --force` adds these labels to this PR using `gh`.
- `lake exe autolabel --pr 34952 --gh` adds these labels to this PR using `gh` if no topic labels are present.
- `lake exe autolabel --pr 34952 --curl ` adds these labels to this PR using `curl`. This requires a github access token for authentication
---
[](https://gitpod.io/from-referrer/)
|
CI |
85/72 |
.github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean |
2 |
4 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
61-18041 2 months ago |
44-62669 44 days ago |
63-35829 63 days |
| 33928 |
jsm28 author:jsm28 |
feat(Combinatorics/Tiling/TileSet): indexed families of tiles |
Define the type `TileSet` for indexed families of tiles (in a discrete context), and some associated definitions (including `symmetryGroup`) and API lemmas.
`TileSet` can be used for tilings of the whole space; for tilings of part of the space; for patches of tiles (extracted from a tiling by considering tiles meeting some set of points, or considered on their own without extracting from a tiling); for multiple tilings (covering the space more than once). In particular, the fact that people study multiple tilings provides a clear justification for using indexed families rather than sets of tiles, and basic definitions and API lemmas generally work for all these different uses of `TileSet` (sometimes with weak constraints such as tiles being finite, nonempty and only having finitely many tiles meeting any point of the space).
Definitions for saying e.g. "this `TileSet` is a tiling of the whole space" are to be included in subsequent files in subsequent PRs.
From AperiodicMonotilesLean.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
460/0 |
Mathlib.lean,Mathlib/Combinatorics/Tiling/TileSet.lean |
2 |
23 |
['Parcly-Taxel', 'b-mehta', 'eric-wieser', 'github-actions', 'jsm28', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
61-7889 2 months ago |
100-47380 100 days ago |
100-47109 100 days |
| 34045 |
smmercuri author:smmercuri |
feat: `algebraMap K L` is uniform continuous with respect to adic topologies, when the ideal `w` of `L` lies above `v` |
- `A` is a Dedekind domain with field of fractions `K`.
- `B` is a Dedekind domain with field of fractions `L`.
- `L` is a field extension of `K`.
- `v` is a height one prime ideal of `A`.
- `w` is a height one prime ideal of `B` lying over `v`.
Then respective valuations are related via the ramification index, and `algebraMap (WithVal (v.valuation K)) (WithVal (w.valuation L))` is uniform continuous.
---
- [x] depends on: #34049
- [x] depends on: #35972
- [x] depends on: #36144
- [x] depends on: #36310
[](https://gitpod.io/from-referrer/)
|
FLT
t-algebra
t-number-theory
label:t-algebra$ |
164/4 |
Mathlib.lean,Mathlib/Algebra/Order/Hom/Units.lean,Mathlib/NumberTheory/RamificationInertia/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/Valuation/Discrete/RankOne.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
5 |
10 |
['dagurtomas', 'github-actions', 'jjdishere', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smmercuri'] |
alreadydone assignee:alreadydone |
60-75815 1 month ago |
15-57997 15 days ago |
33-49308 33 days |
| 35865 |
vihdzp author:vihdzp |
chore: review `Cardinal.ord` API |
This PR does the following:
- Mark `Cardinal.ord` as no expose.
- Prove the defining property `gciOrdCard` earlier.
- Deprecate the unused `ord.orderEmbedding` (it simply restates that the function is strictly monotonic).
- Rename `ord_nat` → `ord_natCast`.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
45/39 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
4 |
6 |
['github-actions', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
60-42882 1 month ago |
34-25418 34 days ago |
59-21968 59 days |
| 33506 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): construct a cycle of two distinct paths with same start and end |
Co-authored-by: Vlad Tsyrklevich
Co-authored-by: Snir Broshi <26556598+SnirBroshi@users.noreply.github.com>
---
- [x] depends on: #33249
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
109/1 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Nodup.lean |
4 |
60 |
['Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vlad902'] |
nobody |
59-63397 1 month ago |
4-39533 4 days ago |
22-54786 22 days |
| 37248 |
harahu author:harahu |
doc(Tactic): avoid lazy continuation lines |
We resolve the ambiguity inherent in lazy (un-indented) list item continuation lines by either indenting them or separating them by inserting a newline in the cases where the item continuation was a mistake.
---
[](https://gitpod.io/from-referrer/)
|
documentation |
131/116 |
Mathlib/Tactic/Algebraize.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean,Mathlib/Tactic/ComputeDegree.lean,Mathlib/Tactic/DepRewrite.lean,Mathlib/Tactic/Finiteness.lean,Mathlib/Tactic/FunProp.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/MinImports.lean,Mathlib/Tactic/MoveAdd.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/SimpIntro.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/Widget/InteractiveUnfold.lean |
17 |
1 |
['Multramate', 'github-actions'] |
nobody |
39-58776 1 month ago |
47-18673 47 days ago |
47-18402 47 days |
| 37624 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Maps): add theorems about composition |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
25/4 |
Mathlib/Combinatorics/SimpleGraph/Maps.lean |
1 |
1 |
['github-actions'] |
nobody |
39-24073 1 month ago |
39-23335 39 days ago |
39-23064 39 days |
| 37690 |
yuanyi-350 author:yuanyi-350 |
feat(Combinatorics/Enumerative/Bell): sum over partition shapes |
## Summary
- add multiplicative lemmas relating `Multiset.bell` when inserting a part
- prove `Nat.bell` as a sum of `Multiset.bell` over partition shapes
- Kill TODO in `Mathlib/Combinatorics/Enumerative/Bell.lean`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
153/16 |
Mathlib/Combinatorics/Enumerative/Bell.lean |
1 |
1 |
['github-actions'] |
nobody |
35-78738 1 month ago |
35-78109 35 days ago |
36-74255 36 days |
| 37642 |
SnirBroshi author:SnirBroshi |
chore(Combinatorics/SimpleGraph): tidy various files |
---
Concept inspired by @Ruben-VandeVelde :)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
89/72 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean,Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Subwalks.lean |
8 |
2 |
['SnirBroshi', 'github-actions'] |
nobody |
35-42697 1 month ago |
35-41993 35 days ago |
37-56918 37 days |
| 37697 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Clique): add theorems about cliques and induced graphs |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
22/0 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
9 |
['Rida-Hamadani', 'SnirBroshi', 'github-actions'] |
nobody |
33-30865 1 month ago |
33-30221 33 days ago |
36-52840 36 days |
| 36764 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `DirectSum.lequivCongrLeft_lof`: unchanged 🎉
* `AnalyticOnNhd.preimage_mem_codiscreteWithin`: unchanged 🎉
* `mem_permsOfList_of_mem`: unchanged 🎉
* `PNat.mod_le`: unchanged 🎉
* `Computation.map_parallel`: unchanged 🎉
* `Sigma.curry_update`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
11/41 |
Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/Seq/Parallel.lean,Mathlib/Data/Sigma/Basic.lean |
6 |
13 |
['chenson2018', 'euprunin', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
31-81556 1 month ago |
31-78261 31 days ago |
56-43642 56 days |
| 37055 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `OreLocalization.smul'_char`: unchanged 🎉
* `Equiv.Perm.cycleOf_mem_cycleFactorsFinset_iff`: unchanged 🎉
* `StrictMono.ite'`: unchanged 🎉
* `Mathlib.Meta.NormNum.isInt_ediv`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
10/29 |
Mathlib/GroupTheory/OreLocalization/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Tactic/NormNum/DivMod.lean |
4 |
11 |
['chenson2018', 'euprunin', 'github-actions'] |
nobody |
31-79196 1 month ago |
31-76034 31 days ago |
49-69843 49 days |
| 36693 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Equiv.Perm.ofSubtype_swap_eq`: unchanged 🎉
* `Filter.hasBasis_biInf_of_directed'`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
2/10 |
Mathlib/GroupTheory/Perm/Support.lean |
1 |
4 |
['artie2000', 'chenson2018', 'euprunin', 'github-actions'] |
nobody |
31-79160 1 month ago |
31-77376 31 days ago |
58-32315 58 days |
| 37700 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Maps): add `Iso.induceIso` |
Similar to `induceHom`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
29/0 |
Mathlib/Combinatorics/SimpleGraph/Maps.lean |
1 |
3 |
['github-actions', 'vlad902'] |
nobody |
31-38109 1 month ago |
31-37411 31 days ago |
36-47961 36 days |
| 37720 |
cjrl author:cjrl |
feat(Data/Fintype/Card): existsUnique_notMem_image_of_injective_of_card_succ |
This pull requests adds a small theorem `existsUnique_notMem_image_of_injective_of_card_succ` to `Mathlib/Data/Fintype/Card` that says given an injective map f : α → β such that β has cardinality one more than α, there exists a unique element of β not in the image of f.
This can be viewed as going in the opposite direction of `card_lt_of_injective_of_notMem`.
This little fact is needed for our Latin Square PR #36698.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
t-set-theory
|
15/0 |
Mathlib/Data/Fintype/Card.lean |
1 |
6 |
['IvanRenison', 'cjrl', 'github-actions'] |
nobody |
30-38449 1 month ago |
30-35589 30 days ago |
35-83944 35 days |
| 37865 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): Edge cut of `Graph` |
This PR introduces
- `edgeCut`: A function on set of vertices that returns the set of edges with exactly one end in the set.
- `IsEdgeCut`: A predicate for set of edges that promises it is `edgeCut` of some set.
- `IsBridge`: An edge `e` is a bridge iff it is a singleton edge cut.
- `IsBond`: An edge Set `B` is bond iff it is minimal nonempty edge cut.
---
- [x] depends on: #35879
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
194/0 |
Mathlib/Combinatorics/Graph/Connected/EdgeCut.Lean,Mathlib/Combinatorics/Graph/Subgraph.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
27-35925 27 days ago |
27-34946 27 days ago |
27-52611 27 days |
| 37420 |
artie2000 author:artie2000 |
refactor: change definitions to avoid `ConvexCone` |
Change the definitions of `PointedCone.positive` and `PointedCone.closure` to avoid mentioning `ConvexCone`.
This PR is part of a series deprecating `ConvexCone`: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Replacing.20.60ConvexCone.60.20with.20.60PointedCone.60/with/582738985
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
maintainer-merge
|
10/4 |
Mathlib/Analysis/Convex/Cone/Closure.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean |
2 |
3 |
['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'ooovi', 'vihdzp'] |
nobody |
26-65494 26 days ago |
26-64742 26 days ago |
41-84090 41 days |
| 36774 |
euprunin author:euprunin |
chore: replace long terminal `rw […]`:s (≥4 lemmas) with bare `simp`:s |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Finset.lcm_union`: unchanged 🎉
* `Finset.gcd_union`: unchanged 🎉
* `Polynomial.derivative_eval₂_C`: unchanged 🎉
* `Polynomial.expand_pow`: unchanged 🎉
* `Cardinal.mk_real`: unchanged 🎉
* `Real.log_zpow`: unchanged 🎉
* `Matroid.eRank_le_encard_add_eRk_compl`: unchanged 🎉
* `DFinsupp.single_tsub`: unchanged 🎉
* `EReal.inv_neg`: unchanged 🎉
* `Finsupp.toMultiset_map`: unchanged 🎉
* `Finsupp.single_tsub`: unchanged 🎉
* `Multiset.countP_map`: unchanged 🎉
* `Nat.ascFactorial_eq_factorial_mul_choose'`: unchanged 🎉
* `Real.sign_intCast`: unchanged 🎉
* `Real.volume_eball`: unchanged 🎉
* `Real.volume_closedEBall`: unchanged 🎉
* `LFunction_ne_zero_of_not_quadratic_or_ne_one`: 295 ms before, 152 ms after 🎉
* `hasSum_one_div_nat_pow_mul_cos`: unchanged 🎉
* `inv_eq_of_aeval_divX_ne_zero`: unchanged 🎉
* `AlgebraicIndependent.aeval_comp_mvPolynomialOptionEquivPolynomialAdjoin`: unchanged 🎉
* `Ordinal.deriv_mul_eq_opow_omega0_mul`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
22/24 |
Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Expand.lean,Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Combinatorics/Matroid/Rank/ENat.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finsupp/Multiset.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/Data/Real/Sign.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/NumberTheory/LSeries/Nonvanishing.lean,Mathlib/NumberTheory/ZetaValues.lean,Mathlib/RingTheory/Algebraic/Basic.lean,Mathlib/RingTheory/AlgebraicIndependent/Basic.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean |
19 |
2 |
['artie2000', 'euprunin', 'github-actions'] |
nobody |
26-37765 26 days ago |
33-35112 33 days ago |
56-41688 56 days |
| 38141 |
Jun2M author:Jun2M |
feat(Order/Partition): Partition induced by symmetric, transitive relation |
We introduce a constructor for Partition from a symmetric, transitive relation, with `copy` function baked into the definition.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-order |
41/7 |
Mathlib/Order/Partition/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
26-14874 26 days ago |
26-14257 26 days ago |
26-13986 26 days |
| 38185 |
Jun2M author:Jun2M |
feat(Order/Partition): operations over Frame |
This PR introduces:
* `Partition.induce`: The induce of a partition by a frame element.
* `Partition.disjUnion`: The disjoint union of two partitions.
* `Partition.bind`: The finer partition obtained by family of partitions for each part of the original partition.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-order |
89/11 |
Mathlib/Order/Partition/Basic.lean,Mathlib/Order/SupIndep.lean |
2 |
1 |
['github-actions'] |
nobody |
25-32260 25 days ago |
25-29940 25 days ago |
25-29669 25 days |
| 38200 |
Parcly-Taxel author:Parcly-Taxel |
feat: Turán numbers and their strict monotonicity |
`strictMonoOn_turanNumber` and `sum_mul_le_twice_turanNumber` were initially proved by @Aristotle-Harmonic, then hand-polished.
Co-authored-by: Aristotle (Harmonic) |
t-combinatorics |
55/20 |
Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean |
1 |
1 |
['github-actions'] |
nobody |
24-75304 24 days ago |
24-74661 24 days ago |
24-75038 24 days |
| 38245 |
RemyDegenne author:RemyDegenne |
feat: CountableSupClosed |
Define the property for a set of being closed by countable supremum (resp. infimum).
The new file is adapted from the `SupClosed` file, which describes sets closed by binary supremum.
Also use `to_dual` on `SupClosed`.
`CountableInfClosed` will be used in measure theory, for developments related to compact systems used for Kolmogorov's extension theorem and Choquet's capacitability theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-order
brownian
|
308/66 |
Mathlib.lean,Mathlib/Order/CountableSupClosed.lean,Mathlib/Order/SupClosed.lean |
3 |
14 |
['RemyDegenne', 'b-mehta', 'github-actions', 'vihdzp'] |
nobody |
23-50046 23 days ago |
23-63399 23 days ago |
23-64055 23 days |
| 32282 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): unoriented angle bisection |
Add lemmas giving unoriented angles involving the incenter and excenters of a triangle as expressions involving dividing angles of the triangle by 2, deduced from oriented bisection lemmas.
---
- [ ] depends on: #30981
- [ ] depends on: #30982
- [ ] depends on: #31205
- [ ] depends on: #32019
- [ ] depends on: #32021
- [ ] depends on: #32259
- [ ] depends on: #32260
- [ ] depends on: #32270
- [ ] depends on: #32273
- [ ] depends on: #32278
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
98/0 |
Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
1 |
8 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] |
nobody |
23-18049 23 days ago |
46-42001 46 days ago |
46-41730 46 days |
| 38036 |
JovanGerb author:JovanGerb |
feat: `NSMul`/`NPow` type class |
This PR is adds `NSMul`, `NPow`, `ZSMul` and `ZPow` classes for the `nsmul`, `npow`, `zsmul`, `zpow` data fields.
This has a few advantages:
- If you first declare a `SMul` instance, then you don't need to manually write `nsmul := (· • ·)` and `zsmul := (· • ·)` . For `Pow`, the extra benefit is that inferring the instance is preferred over the default field `npowRecAuto`. So this helps avoid accidental diamonds.
- If you first declare a `SMul` instance on a type synonym, then `inferInstanceAs` will infer the `nsmul` field from the `SMul` instance. This makes it easier to avoid diamonds on type synonyms like `Matrix` and `MonoidAlgebra`.
- The not-yet-merged instance diamond linter will be able to detect cases where the `NSMul` and `SMul` classes do not agree.
In the process of making this PR, I have identified two existing `NPow` diamonds:
- In `Mathlib.Algebra.Order.Positive.Field`, there were two conflicting `NPow` instances.
- For `Fin`, there are two conflicting `NPow` instances. I have overwritten the one in core lean with the one from mathlib that is more computationally efficient.
TODO: the same for `QSMul` and `NNQSMul`.
---
[](https://gitpod.io/from-referrer/)
|
|
276/273 |
Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/FreeAlgebra.lean,Mathlib/Algebra/Group/Action/Opposite.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Int/Defs.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Opposite.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Positive/Field.lean,Mathlib/Algebra/Order/Ring/Archimedean.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Ring/MinimalAxioms.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/CategoryTheory/Triangulated/Basic.lean,Mathlib/Data/BitVec.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/Data/ZMod/Defs.lean,Mathlib/Data/ZMod/IntUnitsPower.lean,Mathlib/FieldTheory/RatFunc/Basic.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/LinearAlgebra/Matrix/Defs.lean,Mathlib/LinearAlgebra/Matrix/ZPow.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean,Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/RingTheory/PolynomialLaw/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/Tactic/Abel.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,MathlibTest/instance_diamonds.lean |
41 |
16 |
['JovanGerb', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-radar', 'vihdzp'] |
nobody |
21-57652 21 days ago |
21-58544 21 days ago |
21-58273 21 days |
| 38337 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): supremum |
This PR introduces the union of `Graph`, as `sup`.
Due to compatibility issue, in general, `sup` is not very well-behaved: `SemilatticeSup` is not true. In the case of incompatible edge, unlike `inf` which simply removed such edge, we include it following its incidence in the left graph. This has the benefit of associativity being true in general at the cost of commutativity.
Assuming compatibility or existence of mutual supergraph, which are shown to be equivalent in this PR, everything behaves nicely.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
86/1 |
Mathlib/Combinatorics/Graph/Lattice.lean |
1 |
2 |
['github-actions', 'vihdzp'] |
nobody |
21-30400 21 days ago |
21-54446 21 days ago |
21-54175 21 days |
| 38356 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Finset): `sSup s ≠ ⊤` in a `CompleteLinearOrder` for a finite set without `⊤` |
---
btw `to_dual` here is blocked on #35213
[](https://gitpod.io/from-referrer/)
|
t-order |
20/0 |
Mathlib/Order/ConditionallyCompleteLattice/Finset.lean |
1 |
1 |
['github-actions'] |
nobody |
21-15118 21 days ago |
21-12490 21 days ago |
21-12219 21 days |
| 37939 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Order/Completion): embed a linear order into a dense and complete linear order |
The aim of the PR is to prove the following theorem that will be used as an input to [Sion.DMCompletion.exists_isSaddlePointOn](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sion.html#Sion.DMCompletion.exists_isSaddlePointOn) :
*If `β` is any linear order, then there exists a complete and dense linear order `γ` together with a continuous embedding `ι : β ↪o γ` (for the order topologies on `β` and `γ`).*
Meanwhile, the PR also records various instances about dense orders and lemmas regarding the Dedekind MacNeille completion and lexicographic orders.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
206/3 |
Mathlib.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Order/Completion.lean,Mathlib/Topology/Order/Completion.lean,Mathlib/Topology/Sion.lean |
5 |
52 |
['ADedecker', 'AntoineChambert-Loir', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
vihdzp assignee:vihdzp |
20-30170 20 days ago |
20-29312 20 days ago |
23-44352 23 days |
| 38325 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): EndPoint function |
This PR introduces `endPoints`: `Set` of incident vertices, given an edge (in the case of non-edge, return empty).
**Import change**: `Graph/Basic` now imports `Data/Set/Card` to allow reasoning about card of `endPoints`.
[Relavent Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/513188-CSLib/topic/New.20graph.20definitions/with/588616269)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
large-import
|
83/3 |
Mathlib/Combinatorics/Graph/Basic.lean |
1 |
9 |
['Jun2M', 'SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib-bors'] |
nobody |
20-22116 20 days ago |
20-30155 20 days ago |
21-83368 21 days |
| 37374 |
NoneMore author:NoneMore |
feat(Topology/DerivedSet): add relative derived set lemmas |
Add `relDerivedSet`, `relDerivedSet_subset`, and `IsClosed.relDerivedSet_eq`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
17/0 |
Mathlib/Topology/DerivedSet.lean |
1 |
6 |
['NoneMore', 'github-actions', 'plp127', 'vihdzp'] |
urkud assignee:urkud |
20-17441 20 days ago |
42-49638 42 days ago |
43-15926 43 days |
| 38393 |
staroperator author:staroperator |
refactor(ModelTheory): add typeclasses for algebraic symbols |
`Language.ring` and `Language.presburger` share the same symbols `0`, `1` and `+` and have duplicated instances on `Term` and `realize` simp lemmas. This PR makes these symbols certain typeclasses (similar to [`Language.IsOrdered`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/ModelTheory/Order.html#FirstOrder.Language.IsOrdered)) and removes the duplication. It also adds certain definability lemmas that `fun_prop` can use.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
332/201 |
Mathlib.lean,Mathlib/ModelTheory/Algebra/Classes.lean,Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean,Mathlib/ModelTheory/Algebra/Ring/Basic.lean,Mathlib/ModelTheory/Algebra/Ring/FreeCommRing.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Basic.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Definability.lean |
7 |
1 |
['github-actions'] |
nobody |
20-9810 20 days ago |
20-9183 20 days ago |
20-8912 20 days |
| 38406 |
plp127 author:plp127 |
chore(ModelTheory/Skolem): remove unnecessary `[Nonempty M]` assumption |
Removes a `[Nonempty M]` assumption by slightly modifying two proofs.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
7/1 |
Mathlib/ModelTheory/Skolem.lean |
1 |
1 |
['github-actions'] |
nobody |
19-70067 19 days ago |
19-69369 19 days ago |
19-69098 19 days |
| 38055 |
felixpernegger author:felixpernegger |
feat(Topology/EMetricSpace): add r-variation |
Redoing #37007 (I had accidently deleted my fork which nuked the PR).
See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/p-variation for discussion.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-analysis
|
408/0 |
Mathlib.lean,Mathlib/Topology/EMetricSpace/RVariation.lean |
2 |
2 |
['felixpernegger', 'github-actions'] |
j-loreaux assignee:j-loreaux |
19-17438 19 days ago |
26-72664 26 days ago |
26-73260 26 days |
| 38422 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Maps): `G →g G.map f` |
The existing `SimpleGraph.Embedding.map` takes an embedding and lifts it to a graph embedding `G ↪g G.map f`.
#36130 generalized `SimpleGraph.map` from embeddings to functions, so now we can get a graph homomorphism `G →g G.map f` without requiring that `f` is injective, although we still have to require that it is injective on adjacent vertices (aka a valid coloring).
This adds `Coloring.homMap`, and `Hom.map` which is identical but avoids coloring terminology/spelling.
---
I'd love for suggestions to improve the docstring of `Coloring.homMap`, I'm not sure about it :)
Are the two versions a good idea, or should we just have the coloring one? (we have `{Hom,Embedding,Iso}.comap` but only `{Embedding,Iso}.map`)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
16/0 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
4 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
19-12407 19 days ago |
19-11751 19 days ago |
19-45094 19 days |
| 38424 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Coloring/VertexColoring): `chromaticNumber ⊤` and other small lemmas |
- Golf `isEmpty_of_colorable_zero` and rename to `Colorable.isEmpty`
- `colorable_one_iff`: `G.Colorable 1 ↔ G = ⊥`
- Combine `chromaticNumber_eq_zero_of_isEmpty`/`isEmpty_of_chromaticNumber_eq_zero` into `chromaticNumber_eq_zero_iff : G.chromaticNumber = 0 ↔ IsEmpty V` and deprecate the `→` side
- `chromaticNumber_top_eq_enat_card`: `chromaticNumber ⊤ = ENat.card V`
- Tag `chromaticNumber_top_eq_top_of_infinite`/`chromaticNumber_eq_zero_of_isEmpty` as `simp`
- Golf `chromaticNumber_eq_one_iff`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
33/26 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean |
1 |
3 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
18-35593 18 days ago |
18-35220 18 days ago |
19-41293 19 days |
| 38498 |
SnirBroshi author:SnirBroshi |
feat(Order/RelIso/Basic): lift a function to an order morphism into `Relation.Map` or from `Function.onFun` |
For an `α`-relation `r` we have:
```
mapRelHom (f : α → β) : r →r Relation.Map r f f
mapRelEmbedding (f : α ↪ β) : r ↪r Relation.Map r f f
mapRelIso (f : α ≃ β) : r ≃r Relation.Map r f f
```
For a `β`-relation `r` we have:
```
onFunRelHom (f : α → β) : r.onFun f →r r
onFunRelEmbedding (f : α ↪ β) : r.onFun f ↪r r
onFunRelIso (f : α ≃ β) : r.onFun f ≃r r
```
---
These are pretty similar to `SimpleGraph.{Embedding/Iso}.map` and `SimpleGraph.{Hom/Embedding/Iso}.comap`, as [`comap`](https://github.com/leanprover-community/mathlib4/blob/9268b22206b0425419498769f780a91dee03bcf3/Mathlib/Combinatorics/SimpleGraph/Maps.lean#L117-L118) on graphs is a wrapper around `onFun`, and [`map`](https://github.com/leanprover-community/mathlib4/blob/9268b22206b0425419498769f780a91dee03bcf3/Mathlib/Combinatorics/SimpleGraph/Maps.lean#L57-L58) on graphs is *almost* a wrapper around `Relation.Map`.
btw `@[simps]` is angry at me when I try to use it on the structures that use spread syntax.
[](https://gitpod.io/from-referrer/)
|
t-order |
42/0 |
Mathlib/Order/RelIso/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
18-5760 18 days ago |
18-2527 18 days ago |
18-2256 18 days |
| 38344 |
robo7179 author:robo7179 |
feat(SimpleGraph/Coloring/VertexColoring): Matching is 2 colorable |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
51/0 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean |
1 |
5 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
17-68083 17 days ago |
21-34905 21 days ago |
21-34634 21 days |
| 38222 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Girth): add lemmas about isomorphism and girth |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
19/1 |
Mathlib/Combinatorics/SimpleGraph/Girth.lean |
1 |
6 |
['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
17-51705 17 days ago |
17-51067 17 days ago |
24-23490 24 days |
| 38528 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Paths): some cycle lemmas are true for circuits |
Add `IsCircuit.{not_of_nil,ne_bot,three_le_length}` by using their corresponding `IsCycle` proofs.
Also golfs a bit.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
17/9 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
1 |
['github-actions'] |
nobody |
17-50609 17 days ago |
17-49955 17 days ago |
17-49684 17 days |
| 37541 |
EtienneC30 author:EtienneC30 |
feat: another version of the cardinality of the difference |
In mathlib there is `Set.ncard_diff` which states that `(t \ s).ncard = t.ncard - s.ncard` when `s ⊆ t` and `s` is finite. But one way to prove that `s` is finite is by showing that `t` is finite and using the `s ⊆ t` hypothesis, so this PR adds `Set.ncard_diff'` which assumes that `t` is finite instead of `s`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
5/0 |
Mathlib/Data/Set/Card.lean |
1 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
17-17363 17 days ago |
40-57711 40 days ago |
40-57440 40 days |
| 38531 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Paths): `Walk.map` preserves more properties |
Adds some missing theorems about how `Walk.map` behaves with `IsTrail`/`IsPath`/`IsCircuit`/`IsCycle`.
Summary of what we have now, with the 8 new theorems and 2 renames marked:
```
IsTrail.of_map : (p.map f).IsTrail → p.IsTrail -- new
map_isTrail_iff_of_injective : f.Injective → (p.map f).IsTrail ↔ p.IsTrail
IsTrail.map : f.Injective → p.IsTrail → (p.map f).IsTrail -- renamed from map_isTrail_of_injective
IsPath.of_map : (p.map f).IsPath → p.IsPath
map_isPath_iff_of_injective : f.Injective → (p.map f).IsPath ↔ p.IsPath
IsPath.map : f.Injective f → p.IsPath → (p.map f).IsPath -- renamed from map_isPath_of_injective
IsCircuit.of_map : (p.map f).IsCircuit → p.IsCircuit -- new
map_isCircuit_iff_of_injective : f.Injective → (p.map f).IsCircuit ↔ p.IsCircuit -- new
IsCircuit.map : f.Injective → p.IsCircuit → (p.map f).IsCircuit -- new
IsCycle.of_map : (p.map f).IsCycle → p.IsCycle -- new
map_isCycle_iff_of_injective : f.Injective → (p.map f).IsCycle ↔ p.IsCycle
IsCycle.map : f.Injective → p.IsCycle → (p.map f).IsCycle
mapLe_isTrail : G ≤ G' → (p.mapLe h).IsTrail ↔ p.IsTrail
IsTrail.of_mapLe : G ≤ G' → (p.mapLe h).IsTrail → p.IsTrail
IsTrail.mapLe : G ≤ G' → p.IsTrail → (p.mapLe h).IsTrail
mapLe_isPath : G ≤ G' → (p.mapLe h).IsPath ↔ p.IsPath
IsPath.of_mapLe : G ≤ G' → (p.mapLe h).IsPath → p.IsPath
IsPath.mapLe : G ≤ G' → p.IsPath → (p.mapLe h).IsPath
mapLe_isCircuit : G ≤ G' → (p.mapLe h).IsCircuit ↔ p.IsCircuit -- new
IsCircuit.of_mapLe : G ≤ G' → (p.mapLe h).IsCircuit → p.IsCircuit -- new
IsCircuit.mapLe : G ≤ G' → p.IsCircuit → (p.mapLe h).IsCircuit -- new
mapLe_isCycle : G ≤ G' → (p.mapLe h).IsCycle ↔ p.IsCycle
IsCycle.of_mapLe : G ≤ G' → (p.mapLe h).IsCycle → p.IsCycle
IsCycle.mapLe : G ≤ G' → p.IsCycle → (p.mapLe h).IsCycle
```
---
Also golfs `map_isPath_of_injective`/`IsPath.of_map`/`map_isTrail_iff_of_injective`, they don't need induction.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
47/31 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
1 |
['github-actions'] |
nobody |
16-59267 16 days ago |
17-30595 17 days ago |
17-31643 17 days |
| 38549 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Copy): `Is(Ind)Contained` `completeGraph` lemmas |
- `G ⊑ completeGraph V`
- `G ⊑ completeGraph W ↔ Nonempty (V ↪ W)`
- `completeGraph V ⊴ completeGraph W ↔ Nonempty (V ↪ W)`
- `G ⊴ completeGraph W → G = ⊤`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
12/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
1 |
['github-actions'] |
nobody |
16-57184 16 days ago |
16-56481 16 days ago |
16-56210 16 days |
| 38529 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Girth): `egirth ⊤ = 3` when there are at least 3 vertices |
Since `Nontrivial` is not enough, we use the condition `3 ≤ ENat.card α`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
17/0 |
Mathlib/Combinatorics/SimpleGraph/Girth.lean |
1 |
5 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
16-57127 16 days ago |
17-47152 17 days ago |
17-46881 17 days |
| 37835 |
YaelDillies author:YaelDillies |
doc(Algebra/Order): update mentions of `OrderedSemiring` and friends |
As of #20676, it was replaced by `IsOrderedRing`.
Not all docs were straightforward to update.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-order
label:t-algebra$ |
123/280 |
Counterexamples/HomogeneousPrimeNotPrime.lean,Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean,Mathlib/Algebra/Group/Subgroup/Order.lean,Mathlib/Algebra/Group/ULift.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Group/Cyclic.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval/Set/Monoid.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Algebra/Order/Ring/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/Algebra/Order/Star/Basic.lean,Mathlib/Algebra/Order/Sub/WithTop.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Order/WithTop/Untop0.lean,Mathlib/Combinatorics/Pigeonhole.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Cast/Order/Basic.lean,Mathlib/Data/Nat/Cast/Order/Ring.lean,Mathlib/MeasureTheory/Function/LpOrder.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean,Mathlib/Order/Filter/Germ/OrderedMonoid.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Valuation.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/Tactic/NormNum/Ineq.lean |
37 |
9 |
['NoahW314', 'SnirBroshi', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
16-49063 16 days ago |
16-46006 16 days ago |
31-32135 31 days |
| 36814 |
YaelDillies author:YaelDillies |
refactor(Combinatorics/SimpleGraph): no proof obligation in `rotate` |
If the walk doesn't go through the new vertex, return `nil` instead.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
44/31 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean |
8 |
8 |
['SnirBroshi', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
16-17333 16 days ago |
39-73114 39 days ago |
53-53186 53 days |
| 38568 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Connectivity/Subgraph): `w.toSubgraph.IsInduced ↔ w.IsChordless` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
6/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean |
1 |
1 |
['github-actions'] |
nobody |
16-4035 16 days ago |
16-3360 16 days ago |
16-3089 16 days |
| 38554 |
YaelDillies author:YaelDillies |
chore(Combinatorics/SimpleGraph): use the auto-param in `loopless` more |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
5/13 |
Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Order/Cover.lean |
8 |
6 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
15-37683 15 days ago |
15-69241 15 days ago |
15-68970 15 days |
| 38359 |
mcdoll author:mcdoll |
feat: custom `simp` sets for translating between `Equiv` and algebraic notation |
---
The names for the simpsets are not great, I did ask on zulip, but no suggestions.
[#mathlib4 > simpsets for moving between group and equiv](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/simpsets.20for.20moving.20between.20group.20and.20equiv/with/590381093)
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-meta
label:t-algebra$ |
38/15 |
Mathlib/Algebra/Group/End.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/GroupTheory/Perm/Fin.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Tactic/Attr/Register.lean |
5 |
4 |
['Vierkantor', 'github-actions', 'mcdoll'] |
Vierkantor assignee:Vierkantor |
15-10967 15 days ago |
15-7279 15 days ago |
16-18514 16 days |
| 38027 |
8e7 author:8e7 |
feat(Combinatorics/SimpleGraph/Star): define star graphs |
Add a new definition `starGraph` and several key lemmas. Star graphs are a trivial class of tree, often used in constructive proofs regarding trees. An example use case is shown in #38334.
---
All lemmas are hand written first, then golfed with the help of Claude Code.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
85/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Star.lean |
2 |
39 |
['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
15-9676 15 days ago |
26-5438 26 days ago |
29-634 29 days |
| 38205 |
jcommelin author:jcommelin |
chore: reduce technical debt in FreimanHom |
This PR reduces technical debt related to the `CommRing` instance on `Fin (n + 1)`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
large-import
|
65/27 |
Mathlib/Combinatorics/Additive/FreimanHom.lean |
1 |
9 |
['Vierkantor', 'YaelDillies', 'github-actions', 'jcommelin'] |
nobody |
14-72766 14 days ago |
15-58571 15 days ago |
19-71497 19 days |
| 36709 |
kim-em author:kim-em |
feat(DefEqAbuse): suggest minimal @[implicit_reducible] workaround |
This PR extends `#defeq_abuse` to suggest a minimal set of `@[implicit_reducible]` annotations that would make the failing tactic or command succeed with `backward.isDefEq.respectTransparency true`.
When `#defeq_abuse` detects a failure, it now runs a greedy minimisation over semireducible definitions reachable from the goal/command, finding a (possibly non-unique) minimal subset that, when temporarily marked `@[implicit_reducible]`, fixes the issue. The result is reported as an `info` message:
```
info: Workaround: the following @[implicit_reducible] annotations (a possibly non-unique minimal set) would paper over this problem,
but the real issue is likely a leaky instance somewhere.
set_option allowUnsafeReducibility true
attribute [implicit_reducible]
MyPred
```
This is a workaround, not a fix — the real cause is usually a leaky instance (which `#check_instance` from https://github.com/leanprover-community/mathlib4/pull/36706 can diagnose). But it can be useful for quick debugging.
New helpers: `collectCandidates`, `markImplicitReducible`, `withTempImplicitReducible`, `withTempImplicitReducibleCmd`, `suggestAnnotationsTac`, `suggestAnnotationsCmd`, `formatAnnotations`, `logAnnotationSuggestions`.
🤖 Prepared with Claude Code |
t-meta
LLM-generated
|
187/17 |
Mathlib/Tactic/DefEqAbuse.lean,MathlibTest/DefEqAbuse.lean |
2 |
6 |
['github-actions', 'kim-em', 'mathlib-merge-conflicts', 'thorimur'] |
dwrensha and thorimur assignee:dwrensha assignee:thorimur |
14-68841 14 days ago |
14-65494 14 days ago |
31-53460 31 days |
| 38592 |
SnirBroshi author:SnirBroshi |
feat(Logic/Embedding/Basic): `refl_trans`/`trans_refl`/`trans_assoc` |
- `(.refl α).trans f = f`
- `f.trans (.refl β) = f`
- `(f.trans g).trans h = f.trans (g.trans h)`
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
12/0 |
Mathlib/Logic/Embedding/Basic.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
nobody |
14-53364 14 days ago |
15-17783 15 days ago |
15-17512 15 days |
| 38364 |
openendings author:openendings |
feat: create Order/DirectedCompletePartialOrder/Defs.lean |
Define DirectedCompletePartialOrder and its interaction with iSup and sSup.
---
A DirectedCompletePartialOrder is equivalently:
- a partial order with LUBs of nonempty directed sets;
- what happens when you remove ⊥ from a CompletePartialOrder; or
- a ConditionallyCompletePartialOrder in which every directed set is BddAbove.
Like CPOs, DCPOs are commonly studied in denotational semantics.
Potential applications:
- [#Is there code for X? > Summing `ENat`s without topology](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Summing.20.60ENat.60s.20without.20topology/with/590070848) -- defining infinite sums in an DCPO-enriched `AddCommMonoidWithTop` such as `ENat` or `ENNReal`.
- [#Is there code for X? > Scott Induction](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Scott.20Induction/with/590112858) -- fixpoint theorems similar to `OmegaCompletePartialOrder`, generalised to arbitrary cardinalities.
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
123/0 |
Mathlib.lean,Mathlib/Order/DirectedCompletePartialOrder/Defs.lean,docs/references.bib |
3 |
4 |
['SnirBroshi', 'github-actions', 'openendings'] |
nobody |
14-25939 14 days ago |
20-12645 20 days ago |
20-70242 20 days |
| 36806 |
grunweg author:grunweg |
fix(Tactic/Continuity): mark Continuous.comp' as unsafe |
This issue was pre-existing: `Continuous.comp'` was never full safe, as a constant function could be written as the composition of any function and a constant function (and then applying the lemma could lead to something unprovable). The change in #31607 triggered such a case: make is an unsafe rule with very high probability instead.
This change broke three proofs: one was easy to switch to fun_prop; the others seemed to depend on this being a safe rule. I have added a workaround for now.
There was another test failure, exposing a pre-existing internal bug in aesop. With smaller imports, continuity succeeds [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/aesop.20error.20during.20proof.20reconstruction.2C.20goal.20not.20normalised/with/580202602), so I have accepted this result as fine.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
54/2 |
Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Condensed/Light/TopCatAdjunction.lean,Mathlib/Condensed/TopCatAdjunction.lean,Mathlib/Topology/Continuous.lean,MathlibTest/Continuity.lean |
5 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
14-17125 14 days ago |
55-55781 55 days ago |
55-55510 55 days |
| 37501 |
xgenereux author:xgenereux |
feat(DedekindDomain/AdicValuation): `intValuation` on uniformizers is `exp (-1)` |
This PR add the lemma `intValuation_val_uniformizer_eq` which is an application of #37497.
Note that I've had to reorganize the files a little bit:
1. I wanted to import `Valuation.Discrete.Basic` in `AdicValuation` but this was not possible since there was a dependency in the other direction (`Valuation.Discrete.Basic` depended on `AdicValuation`). I don't think this makes sense - we want to have access to basic definitions on general valuation in an application file like `AdicValuation`.
~~The reorganization consist of moving the `IsDiscreteValuationRing` of `Valuation.Discrete.Basic` to `AdicValuation`.~~
The reorganization consist of moving the `IsDiscreteValuationRing` section to a new file.
2. I moved some lemmas out of `Mathlib.RingTheory.Valuation.Discrete.RankOne` to the parent file `Mathlib.RingTheory.Valuation.Discrete.Basic.`. These lemmas do not need the richer imports from `RankOne` and are needed in my application.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
- [ ] depends on: #37497
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
203/167 |
Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/OrderOfVanishing/Noetherian.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean,Mathlib/RingTheory/Valuation/Discrete/IsDiscreteValuationRing.lean,Mathlib/RingTheory/Valuation/Discrete/RankOne.lean |
8 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
mattrobball assignee:mattrobball |
14-17122 14 days ago |
24-79876 24 days ago |
32-70311 32 days |
| 37747 |
JovanGerb author:JovanGerb |
chore(Order/Filter/AtTopBot/Basic): use `to_dual` |
This PR uses `to_dual` for `atTop`/`atBot`.
A lot of theorems that have been tagged contain the expression `∀ a ≥ b, ...`, which means that their dual will be `∀ a, b ≥ a → ...`, which is obviourly undesirable. Hence, I would like to ask the reviewers to reconsider the possibility of merging #32985.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
56/164 |
Mathlib/Order/Filter/AtTopBot/Basic.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
14-17121 14 days ago |
35-53955 35 days ago |
35-53684 35 days |
| 37752 |
JovanGerb author:JovanGerb |
chore(Order/CompleteLattice/Lemmas): use `to_dual` |
Use `to_dual` for lemmas about `CompleteLattice`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
27/56 |
Mathlib/Order/CompleteLattice/Lemmas.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
14-17120 14 days ago |
35-51705 35 days ago |
35-51434 35 days |
| 37753 |
JovanGerb author:JovanGerb |
chore(Order/Filter/Basic): use `to_dual` for `≤ᶠ` |
Use `to_dual` on lemmas about `EventuallyLE`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
19/6 |
Mathlib/Order/Filter/Basic.lean |
1 |
2 |
['github-actions', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
14-17119 14 days ago |
35-52452 35 days ago |
35-52181 35 days |
| 38551 |
TTony2019 author:TTony2019 |
feat(Analysis/Convex/Intrinsic): add `affineSpan_prod_eq` and `intrinsicInterior_prod_eq` |
### Summary
We prove that the affine span of a product set equals the product of the affine spans, and that the intrinsic interior of a product set equals the product of the intrinsic interiors.
- `affineSpan_prod_eq`: for `s : Set P₁` and `t : Set P₂`, `affineSpan k (s ×ˢ t) = (affineSpan k s) ×ˢ (affineSpan k t)` as sets.
- `intrinsicInterior_prod_eq`: for `s : Set P` and `t : Set Q`, `intrinsicInterior 𝕜 (s ×ˢ t) = intrinsicInterior 𝕜 s ×ˢ intrinsicInterior 𝕜 t`.
These two theorems are added to `Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean` and `Mathlib/Analysis/Convex/Intrinsic.lean`.
### Collaboration
Co-authored-by: @imathwy |
new-contributor |
144/0 |
Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean,Mathlib/LinearAlgebra/Prod.lean |
5 |
21 |
['TTony2019', 'github-actions', 'wwylele'] |
nobody |
14-12343 14 days ago |
14-11697 14 days ago |
16-25947 16 days |
| 37073 |
kim-em author:kim-em |
feat: add wrap_instance% using core's wrapInstance |
This PR adds a new `wrap_instance%` term elaborator that delegates to Lean core's
`wrapInstance` (from https://github.com/leanprover/lean4/pull/12897), and replaces ~53
`fast_instance%` call sites where the replacement is safe.
`wrap_instance%` is a thin wrapper (~15 lines) around `Lean.Meta.wrapInstance`. Like
`fast_instance%`, it reduces instances to constructor applications and reuses canonical
sub-instances. Unlike `fast_instance%`, it works at `instances` transparency and delegates all
normalization logic to core.
The replaced sites cover:
- Equiv/type-alias transfers (WithAbs, WithConv, WithVal, WithLp, TransferInstance)
- Surjective constructors (Con, RingCon quotients, module congruences)
- DFunLike leaf instances (MultilinearMap, ContinuousMultilinearMap, AlternatingMap, Intertwining)
- Quotient instances (LinearAlgebra/Quotient/Defs)
- inferInstanceAs% sites (StandardPart, Presentation/Core)
- Miscellaneous (InfiniteAdeleRing, ZMod)
This PR *doesn't* attempt to replace all `fast_instance%`; it gets more complicated!
🤖 Prepared with Claude Code |
|
88/59 |
Mathlib/Algebra/Algebra/TransferInstance.lean,Mathlib/Algebra/Module/Congruence/Defs.lean,Mathlib/Algebra/WithConv.lean,Mathlib/Analysis/Normed/Lp/WithLp.lean,Mathlib/Analysis/Normed/Ring/WithAbs.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/LinearAlgebra/Alternating/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean,Mathlib/RepresentationTheory/Intertwining.lean,Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/Tactic/FastInstance.lean,Mathlib/Topology/Algebra/Module/Alternating/Basic.lean,Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
16 |
7 |
['JovanGerb', 'github-actions', 'kim-em', 'leanprover-radar', 'mathlib-merge-conflicts'] |
nobody |
14-10200 14 days ago |
14-6889 14 days ago |
16-76791 16 days |
| 38432 |
SnirBroshi author:SnirBroshi |
feat(Logic/Relation): `Map r f g ≤ s ↔ r ≤ s.bicompl f g` |
and the dual `s ≤ Relation.Map r f g ↔ s.bicompl f g ≤ r` which requires `f` and `g` to be bijective.
Adds `Galois{Connection/Insertion/Coinsertion}` for the dual.
The theorems are specialized to `onFun` instead of `bicompl` for when `f = g`.
The `≤` theorems are spelled using `Subrelation` since `≤` is not yet available in this file, and `∀` for the `bicompl` theorems since `Subrelation` only supports homogeneous relations.
A `GaloisConnection` for the iff in the title requires `f`/`g` to be bijective, but then we can get an `OrderIso` which is stronger (see #38499).
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
119/28 |
Mathlib/Logic/Relation.lean,Mathlib/Order/GaloisConnection/Basic.lean |
2 |
3 |
['SnirBroshi', 'github-actions', 'plp127'] |
nobody |
13-83347 13 days ago |
13-80708 13 days ago |
19-12131 19 days |
| 38612 |
SnirBroshi author:SnirBroshi |
feat(Order/SuccPred/CompleteLinearOrder): `sSup s < x` iff theorems when we know if `x` is a successor pre-limit or not |
Adds the following theorems (along with their duals and indexed versions):
```lean
sSup_lt_iff_of_not_isSuccPrelimit : ¬IsSuccPrelimit x → sSup s < x ↔ ∀ a ∈ s, a < x
le_sSup_iff_of_not_isSuccPrelimit : ¬IsSuccPrelimit x → x ≤ sSup s ↔ ∃ a ∈ s, x ≤ a
Order.IsSuccPrelimit.sSup_lt_iff : IsSuccPrelimit x → sSup s < x ↔ ∃ a < x, ∀ b ∈ s, b < a
Order.IsSuccPrelimit.le_sSup_iff : IsSuccPrelimit x → x ≤ sSup s ↔ ∀ a < x, ∃ b ∈ s, a ≤ b
```
They are similar to these existing theorems, but not the same:
```lean
sSup_lt_iff : sSup s < x ↔ ∃ a < x, ∀ b ∈ s, b ≤ a
le_sSup_iff_forall_lt : x ≤ sSup s ↔ ∀ a < x, ∃ b ∈ s, a < b
```
---
[](https://gitpod.io/from-referrer/)
|
t-order |
43/0 |
Mathlib/Order/SuccPred/CompleteLinearOrder.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
13-83148 13 days ago |
13-81035 13 days ago |
14-73214 14 days |
| 37389 |
martinwintermath author:martinwintermath |
chore(LinearAlgebra/SesquilinearForm): generalize `orthogonalBilin` in order to simplify definition of `orthogonal` |
- generalize `Submodule.orthogonalBilin` to `CommSemiring` and `AddCommMonoid`, and to general sesquilinear forms with inputs from different modules. This enables subsequent changes.
- redefine `BilinForm.orthogonal` in terms of `orthogonalBilin`.
- reorder arguments of `Submodule.orthogonalBilin` to match other instances of duality across mathlib.
For comparison
Before
```lean4
Submodule.orthogonalBilin.{u_1, u_2, u_5, u_6} {R : Type u_1} {R₁ : Type u_2} {M : Type u_5} {M₁ : Type u_6}
[CommRing R] [CommRing R₁] [AddCommGroup M₁] [Module R₁ M₁] [AddCommGroup M] [Module R M] {I₁ I₂ : R₁ →+* R}
(N : Submodule R₁ M₁) (B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M) : Submodule R₁ M₁
```
After
```lean4
Submodule.orthogonalBilin.{u_1, u_2, u_3, u_5, u_6, u_7} {R : Type u_1} {R₁ : Type u_2} {R₂ : Type u_3} {M : Type u_5}
{M₁ : Type u_6} {M₂ : Type u_7} [CommSemiring R] [CommSemiring R₁] [CommSemiring R₂] [AddCommMonoid M] [Module R M]
[AddCommMonoid M₁] [Module R₁ M₁] [AddCommMonoid M₂] [Module R₂ M₂] {I₁ : R₁ →+* R} {I₂ : R₂ →+* R} (B : M₁ →ₛₗ[I₁] M₂ →ₛₗ[I₂] M)
(N : Submodule R₁ M₁) : Submodule R₂ M₂
```
A few fixes in other files have been necessary as well.
This is an extract from #37381.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
28/21 |
Mathlib/Algebra/Lie/InvariantForm.lean,Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean |
5 |
8 |
['eric-wieser', 'github-actions', 'martinwintermath', 'themathqueen', 'vihdzp'] |
ocfnash assignee:ocfnash |
13-61408 13 days ago |
13-59866 13 days ago |
43-20043 43 days |
| 38269 |
b-mehta author:b-mehta |
feat(Combinatorics/Additive): link Freiman homs and Freiman isos tighter |
---
Some work I had lying around in a forgotten branch, recently resurrected.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
118/76 |
Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Combinatorics/Additive/AP/Three/Defs.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean |
3 |
15 |
['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
13-60505 13 days ago |
13-59013 13 days ago |
14-56004 14 days |
| 38684 |
yuanyi-350 author:yuanyi-350 |
chore(LinearAlgebra/CliffordAlgebra/EvenEquiv): remove erws |
- rewrites the `toEven` and `toEven_ι` proofs through `even_toSubmodule`, replacing the `erw` steps with `simp` and `rw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-algebra
label:t-algebra$ |
5/8 |
Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean |
1 |
2 |
['github-actions', 'jcommelin', 'yuanyi-350'] |
nobody |
13-49913 13 days ago |
13-49211 13 days ago |
14-18096 14 days |
| 33392 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/Transvection/Generation): non-exceptional case in Dieudonné's theorem |
We prove the theorem of [Dieudonné-1955][J. Dieudonné, “Sur les générateurs
des groupes classiques”].
Let `K` be a division ring and `V` be a `K`-module.
* `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_eq_one`:
If `e.fixedReduce = 1`, then `e` can be written as the product
of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections
and one dilatransvection.
This is the first part of the non-exceptional case in Dieudonné's theorem.
(This statement is not interesting when `e = 1`.)
* `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_ne_smul_id`:
If `e.fixedReduce` is not a homothety, then `e` can be written as the product
of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections and one dilatransvection.
This is the second part of the non-exceptional case in Dieudonné's theorem.
* `LinearEquiv.IsExceptional`:
A linear equivalence `e : V ≃ₗ[K] V` is exceptional if `1 < finrank K (V ⧸ e.fixedSubmodule)`
and if `e.fixedReduce` is a nontrivial homothety.
* `LinearEquiv.mem_dilatransvections_pow_of_notIsExceptional`:
This is the non-exceptional case in Dieudonné's theorem,
as a combination of the two preceding statements.
---
- [x] depends on: #33348
- [x] depends on: #33282
- [x] depends on: #33347
- [ ] depends on: #33387
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
555/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean |
5 |
12 |
['AntoineChambert-Loir', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
joelriou assignee:joelriou |
13-38172 13 days ago |
13-36203 13 days ago |
43-75512 43 days |
| 38426 |
SnirBroshi author:SnirBroshi |
feat(Data/Set/Card): `Fintype.card s = s.ncard` |
We have `↑(Fintype.card s) = s.encard` but we don't yet have a theorem relating `Fintype.card` and `Set.ncard`.
This adds `Fintype.card s = s.ncard` for `Fintype s`, and also `s.ncard = s.encard` for `Finite s`.
---
~~(tagging `simp` is problematic since the aforementioned theorem (`Set.coe_fintypeCard`) is `simp`, and I'm not sure we should untag it)~~
[](https://gitpod.io/from-referrer/)
|
t-data |
8/0 |
Mathlib/Data/Set/Card.lean |
1 |
4 |
['SnirBroshi', 'Vierkantor', 'b-mehta', 'github-actions'] |
Vierkantor assignee:Vierkantor |
13-27029 13 days ago |
13-27293 13 days ago |
17-78879 17 days |
| 38349 |
SnirBroshi author:SnirBroshi |
chore(Combinatorics/SimpleGraph/Coloring/VertexColoring): rename to `Vertex.lean` |
After #37525 moved `Coloring.lean` to `Coloring/VertexColoring.lean`, a [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Coloring.20module.20names/with/583281500) poll decided to avoid duplicating the word "Coloring", so this renames `Coloring/VertexColoring.lean` to `Coloring/Vertex.lean`.
---
I planned to make this move in #33313 but it isn't moving along, so I think it's best to split the renaming.
#37546 adds module deprecation
[](https://gitpod.io/from-referrer/)
|
file-removed
t-combinatorics
|
6/6 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Constructions.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Vertex.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Partition.lean,Mathlib/Combinatorics/SimpleGraph/Sum.lean |
7 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
13-17806 13 days ago |
13-17126 13 days ago |
21-16271 21 days |
| 36667 |
NoneMore author:NoneMore |
feat(ModelTheory): add `exClosure` definition for first-order formulas |
Prepare for moving realizations between elementarily equivalent structures.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
37/0 |
Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean |
2 |
2 |
['github-actions'] |
fpvandoorn assignee:fpvandoorn |
13-17181 13 days ago |
26-75982 26 days ago |
58-86206 58 days |
| 37682 |
SabrinaJewson author:SabrinaJewson |
refactor(Order/OrdContinuous): redefine left and right order continuity to not require preserving ⊥/⊤ |
`LeftOrdContinuous` currently requires that `f ⊥ = ⊥`, but this means that many functions that are perhaps intuitively left-continuous (like `f x = x + 1` on `ℝ≥0`) are not. In particular, this change means that functions between conditionally complete lattices are `LeftOrdContinuous` iff they are monotone and topologically left continuous (see `MonotoneOn.map_csSup_of_continuousWithinAt` for the reverse direction).
If one wants the concept that existed before, one can either accept the `f ⊥ = ⊥` hypothesis separately or, if the function is between complete lattices, use the left side of a `GaloisConnection` (which is equivalent, although I think this is not yet in Mathlib).
This removes the definitional equality of the type in favour of a structure. Since most of the time users will be working with the `sSup` versions and not with `IsLUB`, I think this is justified. As a consequence, this removes the definitional equality between `LeftOrdContinuous` and `RightOrdContinuous` of the dual – the latter could be redefined to re-add this, but we do have conversion functions.
`LeftOrdContinuous.continuousWithinAt_Iic` is rewritten to accomodate these changes; the superfluous `DenselyOrdered` assumption is also removed.
[Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/LeftOrdContinuous.20requires.20f.28.E2.8A.A5.29.20.3D.20.E2.8A.A5/near/582932491)
---
- [x] depends on: #37735
- [x] depends on: #37772
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
52/38 |
Mathlib/Order/OrdContinuous.lean,Mathlib/Order/SemiconjSup.lean,Mathlib/Topology/Order/Basic.lean |
3 |
10 |
['SabrinaJewson', 'astrainfinita', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
13-17175 13 days ago |
33-24414 33 days ago |
35-18783 35 days |
| 38428 |
tb65536 author:tb65536 |
refactor(RepresentationTheory/Coinvariants): use `IntertwiningMap` in `Coinvariants.map` |
Currently `Coinvariants.map` has the intertwining condition as as a separatel hypothesis. This PR switches over to the bundled `IntertwiningMap`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
16/20 |
Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/Resolution.lean,Mathlib/RepresentationTheory/Induced.lean,Mathlib/RepresentationTheory/Rep/Basic.lean |
6 |
1 |
['Whysoserioushah', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
13-17168 13 days ago |
19-33522 19 days ago |
19-33251 19 days |
| 38748 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Basic): `G.edgeSet ⊆ s.sym2 ↔ G.support ⊆ s` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
19/4 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean |
2 |
1 |
['github-actions'] |
nobody |
13-12210 13 days ago |
13-11518 13 days ago |
13-11247 13 days |
| 38097 |
NoahW314 author:NoahW314 |
feat: add `IndiscreteTopology` instances |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
24/0 |
Mathlib/Topology/Homotopy/Contractible.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Separation/Connected.lean |
4 |
5 |
['NoahW314', 'github-actions', 'scholzhannah', 'vihdzp'] |
PatrickMassot assignee:PatrickMassot |
13-9919 13 days ago |
13-9216 13 days ago |
26-76281 26 days |
| 37076 |
ertwro author:ertwro |
feat(Combinatorics/SimpleGraph/Hasse): Hasse diagram is triangle-free |
Add `SimpleGraph.hasse_cliqueFree_three`: the Hasse diagram of a preorder is triangle-free (`CliqueFree 3`).
This is the graph-theoretic formulation of `not_covBy_of_lt_of_lt`: if `a ⋖ b` and `b ⋖ c`, then `¬ a ⋖ c`, so no three elements can be pairwise adjacent in the Hasse diagram.
The proof extracts three vertices from a hypothetical 3-clique, case-splits on the covering directions (8 cases), and closes each by `not_covBy_of_lt_of_lt` (6 transitive cases) or `lt_asymm` (2 cyclic cases).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
11/0 |
Mathlib/Combinatorics/SimpleGraph/Hasse.lean |
1 |
21 |
['Rida-Hamadani', 'SnirBroshi', 'ertwro', 'github-actions', 'vlad902'] |
nobody |
13-9109 13 days ago |
13-8476 13 days ago |
32-11744 32 days |
| 37930 |
vlad902 author:vlad902 |
chore(SimpleGraph): move `cycleGraph` to its own file |
PR #34797 re-defined `cycleGraph` independent of `circulantGraph`. Now move the definition of `cycleGraph` to its own file so that the definition can be used without importing the algebra hierarchy.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
173/148 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Cycle.lean |
3 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
13-717 13 days ago |
13-76 12 days ago |
12-86205 12 days |
| 38731 |
martinwintermath author:martinwintermath |
feat(LinearAlgebra/AffineSpace/AffineSubspace): using `AffineSubspace.direction` to reinterpret `AffineSubspace` as `Submodule` |
* add `AffineSubspace.vsub_self_of_zero_mem` that states `s -ᵥ s = s ` if `0 ∈ s`
* add `AffineSubspace.direction_eq_self_of_zero_mem` that states that if `0 ∈ s`, then the directions coerce back to the affine subspace.
* add corresponding `CanLift` instance.
* modify doc-string of `AffineSubspace.direction` to state that this can be used for reinterpretation of an affine subspace as a submodule.
* add `Coe` instance based on `Submodule.toAffineSubspace` and adds corresponding @[coe] attribute.
The PR also performs a slight cleanup of the file: statements about `SetLike` or `Submodule.toAffineSubspace` have been moved closer to their respective definitions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
56/26 |
Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean |
1 |
3 |
['github-actions', 'wwylele'] |
nobody |
12-79331 12 days ago |
13-13766 13 days ago |
13-38871 13 days |
| 37832 |
YaelDillies author:YaelDillies |
chore(Algebra/Order/GroupWithZero): flatten `Unbundled` folder |
The algebraic order classes are unbundled now.
---
More thought is needed to do the same for `Algebra.Order.Monoid` since filenames conflict.
[](https://gitpod.io/from-referrer/)
|
file-removed
t-algebra
t-order
label:t-algebra$ |
20/20 |
Mathlib.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Field/Pointwise.lean,Mathlib/Algebra/Order/GroupWithZero/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Bounds.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Defs.lean,Mathlib/Algebra/Order/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/GroupWithZero/OrderIso.lean,Mathlib/Algebra/Order/GroupWithZero/Submonoid.lean,Mathlib/Algebra/Order/GroupWithZero/WithZero.lean,Mathlib/Algebra/Order/Nonneg/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/Order/Filter/IsBounded.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean |
19 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
12-52002 12 days ago |
12-49138 12 days ago |
31-48072 31 days |
| 37997 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): generalize determinant formula to GenContFract |
Let $g$ be a `GenContFract K`.
In this PR I generalize the determinant formula for continued fractions from the simple continued fraction case
$$A_n B_{n+1} - B_n A_{n+1} = (-1)^n$$
to the generalized continued fraction product formula
$$A_n B_{n+1} - B_n A_{n+1} = (-a_0) (-a_1) \dots (-a_n)$$
- The `SimpContFract` version is still available unchanged, so this should avoid breaking existing users of the old API.
- The use of `0` as the default partial numerator in `(g.partNums.get? i).getD 0` allows product formulation that remains valid when the fraction is terminated. |
t-algebra
new-contributor
large-import
label:t-algebra$ |
53/28 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Determinant.lean |
2 |
13 |
['emlis42', 'github-actions', 'themathqueen', 'vihdzp'] |
ocfnash assignee:ocfnash |
12-37574 12 days ago |
12-36861 12 days ago |
29-52168 29 days |
| 38747 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Basic): more `neighborSet` and `IsIsolated` lemmas |
---
`neighborSet_mono` moved from `Maps.lean` to `Basic.lean` with a simpler proof
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
72/17 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean |
4 |
2 |
['github-actions', 'vlad902'] |
nobody |
12-22396 12 days ago |
12-21697 12 days ago |
12-79044 12 days |
| 37623 |
IvanRenison author:IvanRenison |
feat(Order/RelIso): add theorems about `RelHom.comp` and `RelEmbedding.trans` |
Co-authored-by: SnirBroshi <26556598+SnirBroshi@users.noreply.github.com>
---
Missing of this theorems noticed by @SnirBroshi in #37598
[](https://gitpod.io/from-referrer/)
|
t-order |
18/0 |
Mathlib/Order/RelIso/Basic.lean |
1 |
6 |
['IvanRenison', 'SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
12-18048 12 days ago |
37-47419 37 days ago |
38-63791 38 days |
| 37900 |
tb65536 author:tb65536 |
feat(RingTheory/Localization/FractionRing): add `IsFractionRing.ofAlgEquiv` and `IsFractionRing.ofAlgHom` |
This PR gives constructors for `IsFractionRing` from an `AlgEquiv` and from an `AlgHom`. The first is just a specialization of `IsLocalization.isLocalization_of_algEquiv`, but the second has a bit more content.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
9/0 |
Mathlib/RingTheory/Localization/FractionRing.lean |
1 |
3 |
['github-actions', 'tb65536'] |
alreadydone assignee:alreadydone |
12-16871 12 days ago |
32-44715 32 days ago |
32-44444 32 days |
| 37870 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): `Simple` typeclass for `Graph` |
This PR introduces two type classes on `Graph`: `Loopless` and `Simple`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
93/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Simple.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
12-14935 12 days ago |
12-14265 12 days ago |
31-44491 31 days |
| 38716 |
YaelDillies author:YaelDillies |
feat(Algebra/Order): `NNRat.cast_sub` |
From AddCombi
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
29/22 |
Mathlib/Algebra/Order/Field/Rat.lean,Mathlib/Algebra/Order/Ring/Rat.lean,Mathlib/Combinatorics/SetFamily/LYM.lean,Mathlib/Data/Finset/Density.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/Data/NNRat/Floor.lean,Mathlib/Data/NNRat/Order.lean,Mathlib/Data/Rat/Star.lean,Mathlib/RingTheory/Binomial.lean,Mathlib/Topology/Instances/Rat.lean |
10 |
1 |
['github-actions'] |
nobody |
11-82698 11 days ago |
11-80941 11 days ago |
11-80670 11 days |
| 38795 |
YaelDillies author:YaelDillies |
feat(Algebra/Group/Action/Pointwise): `#(s ∩ (a • t)) = #{x ∈ s ×ˢ t | x.1 / x.2 = a}` |
The `Finset` lemma already exists.
From AddCombi
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
37/18 |
Mathlib/Algebra/Group/Action/Pointwise/Finset.lean,Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean,Mathlib/Algebra/GroupWithZero/Action/Pointwise/Finset.lean |
3 |
1 |
['github-actions'] |
nobody |
11-76491 11 days ago |
11-75810 11 days ago |
11-75539 11 days |
| 38169 |
tb65536 author:tb65536 |
chore(GroupTheory/Finiteness): make `Subgroup.FG` a class |
This PR refactors `Subgroup.FG` to be a class to match `Group.FG`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
37/20 |
Mathlib/GroupTheory/Commutator/Finite.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/Rank.lean,Mathlib/GroupTheory/Schreier.lean |
4 |
10 |
['JovanGerb', 'github-actions', 'mathlib-bors', 'riccardobrasca', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
11-41478 11 days ago |
11-55546 11 days ago |
25-43432 25 days |
| 38420 |
eliasjudin author:eliasjudin |
feat(Algebra/MvPolynomial): add coefficient lemma for uniqueAlgEquiv |
Adds `MvPolynomial.coeff_uniqueAlgEquiv` and `MvPolynomial.coeff_uniqueAlgEquiv_symm`,
identifying coefficients under `MvPolynomial.uniqueAlgEquiv` in both directions.
|
new-contributor
t-algebra
label:t-algebra$ |
19/0 |
Mathlib/Algebra/MvPolynomial/Equiv.lean |
1 |
5 |
['eliasjudin', 'eric-wieser', 'github-actions'] |
kim-em assignee:kim-em |
11-32071 11 days ago |
18-72789 18 days ago |
19-45907 19 days |
| 38825 |
tb65536 author:tb65536 |
feat(RingTheory/Spectrum/FreeLocus): rank of fiber over residue field |
This PR proves the formula `finrank p.ResidueField (p.Fiber M) = finrank R M`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
9/0 |
Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean |
1 |
1 |
['github-actions'] |
nobody |
11-27472 11 days ago |
11-27472 11 days ago |
11-27201 11 days |
| 37784 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Basic): `ConditionallyCompleteLinearOrderBot (WithBot α)` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
29/0 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
11-17343 11 days ago |
35-10916 35 days ago |
35-10645 35 days |
| 38821 |
Jun2M author:Jun2M |
feat(Data/List): rotation of sublist is sublist of rotation |
This PR proves `(∃ L₁ : List α, L ~r L₁ ∧ L₁ <+ L') ↔ (∃ L₂ : List α, L <+ L₂ ∧ L₂ ~r L')`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
10/0 |
Mathlib/Data/List/Rotate.lean |
1 |
3 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
11-12423 11 days ago |
11-12292 11 days ago |
11-29226 11 days |
| 38092 |
SnirBroshi author:SnirBroshi |
chore(Order/Defs/Unbundled): deprecate `def Symmetric` in favor of `class Std.Symm` |
---
[Mathlib's `def Symmetric`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#Symmetric)
[Core's `class Std.Symm`](https://leanprover-community.github.io/mathlib4_docs/Init/Core.html#Std.Symm)
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Relation.20properties.20duplication/near/544638270)
[](https://gitpod.io/from-referrer/)
|
t-order |
468/412 |
Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/Konigsberg.lean,Counterexamples/HeawoodUnitDistance.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/Divisibility/Units.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/InnerProductSpace/Orthogonal.lean,Mathlib/Analysis/Normed/Operator/Compact/FredholmAlternative.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/IsConnected.lean,Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Graph/Basic.lean,Mathlib/Combinatorics/Graph/Delete.lean,Mathlib/Combinatorics/Graph/Lattice.lean,Mathlib/Combinatorics/Graph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Dart.lean,Mathlib/Combinatorics/SimpleGraph/Density.lean,Mathlib/Combinatorics/SimpleGraph/Hall.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/LineGraph.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Sum.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Data/Finset/Pairwise.lean,Mathlib/Data/Finsupp/BigOperators.lean,Mathlib/Data/List/Pairwise.lean,Mathlib/Data/List/Sigma.lean,Mathlib/Data/Multiset/Bind.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/Data/Multiset/Pairwise.lean,Mathlib/Data/Multiset/Replicate.lean,Mathlib/Data/Nat/GCD/Basic.lean,Mathlib/Data/Rel/Separated.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/Data/Set/Pairwise/List.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/WSeq/Relation.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/MeasureTheory/Measure/AEDisjoint.lean,Mathlib/MeasureTheory/Measure/NullMeasurable.lean,Mathlib/ModelTheory/Graph.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/Order/Antichain.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/Preorder/Chain.lean,Mathlib/Order/PropInstances.lean,Mathlib/RingTheory/Coprime/Ideal.lean,Mathlib/RingTheory/Radical/Basic.lean,Mathlib/Topology/CWComplex/Classical/Graph.lean,Mathlib/Topology/CompactOpen.lean,Mathlib/Topology/Connected/Clopen.lean,Mathlib/Topology/MetricSpace/MetricSeparated.lean,Mathlib/Topology/Separation/Basic.lean,Mathlib/Topology/Separation/GDelta.lean |
81 |
5 |
['SnirBroshi', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] |
nobody |
11-11755 11 days ago |
11-8494 11 days ago |
25-74254 25 days |
| 38142 |
SnirBroshi author:SnirBroshi |
feat(Order/SuccPred/CompleteLinearOrder): generalize `csSup_mem_of_not_isSuccLimit` |
Given `s.Nonempty` and `BddAbove s` we can conclude `sSup s ∈ s` using either:
- `csSup_mem_of_not_isSuccPrelimit`, given `ConditionallyCompleteLinearOrder` and `¬IsSuccPrelimit (sSup s)`
- `csSup_mem_of_not_isSuccLimit`, given `ConditionallyCompleteLinearOrderBot` and `¬IsSuccLimit (sSup s)`
We generalize both to a theorem that requires `ConditionallyCompleteLinearOrder` and `¬IsSuccLimit (sSup s)`.
This creates 8 theorems that require `¬IsSuccPrelimit` but are now easily proved with the `¬IsSuccLimit` theorems, we replace `csSup_mem_of_not_isSuccPrelimit`/`exists_eq_ciSup_of_not_isSuccPrelimit` with their primed `ConditionallyCompleteLinearOrderBot` theorems, and deprecates the other 6.
Tags a random `to_dual` (in `ConditionallyCompleteLattice/Basic.lean`) to let us `to_dual`ize the new lemmas.
---
~~Should we also deprecate the 8 theorems that require `¬IsSuccPrelimit` and now use `mt`?~~
[](https://gitpod.io/from-referrer/)
|
t-order |
55/42 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/SuccPred/CompleteLinearOrder.lean,Mathlib/SetTheory/Cardinal/Order.lean |
3 |
9 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
11-11632 11 days ago |
11-8896 11 days ago |
25-85439 25 days |
| 38841 |
SnirBroshi author:SnirBroshi |
feat(Mathlib/Order/SuccPred/Limit): more `WithTop` lemmas about `IsMin`/`CovBy`/`IsSuccLimit` |
---
Continues the work from #38244
We should probably also have such lemmas for `WithTopBot`/`WithBotTop`, but that's for another day
[](https://gitpod.io/from-referrer/)
|
t-order |
111/30 |
Mathlib/Order/Cover.lean,Mathlib/Order/SuccPred/Limit.lean,Mathlib/Order/WithBot.lean |
3 |
1 |
['github-actions'] |
nobody |
10-67594 10 days ago |
10-74852 10 days ago |
10-74581 10 days |
| 38830 |
Jun2M author:Jun2M |
feat(Data/List): Nodup and head & getLast lemmas |
Given a Nodup list:
* If a prefix contains the last element, they are equal
* If a suffix contains the first element, they are equal
* If an infix contains the first element, it is a prefix
* If an infix contains the last element, it is a suffix
* If the first and the last element are the same, it is a singleton
* `countP` is cardinality of the filter of `toFinset`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
29/0 |
Mathlib/Data/Finset/Card.lean,Mathlib/Data/List/Nodup.lean |
2 |
6 |
['SnirBroshi', 'github-actions'] |
nobody |
10-60105 10 days ago |
10-57056 10 days ago |
11-1183 11 days |
| 37618 |
WenrongZou author:WenrongZou |
feat(PowerSeries): rename a power series as multivariate power series |
---
In this PR, I define the `PowerSeries.toMvPowerSeries` which use `Polynomial.toMvPolynomial` as reference. Also there is some missing APIs in `MvPowerSeries/Equiv.lean` with respect to `MvPolynomial/Equiv.lean`. I will try to add them in next several PRs.
- [x] depends on: #37576
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
80/1 |
Mathlib/RingTheory/MvPowerSeries/Equiv.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
10-58749 10 days ago |
10-58099 10 days ago |
10-75935 10 days |
| 38316 |
tannerduve author:tannerduve |
feat(Order/OmegaCompletePartialOrder): least fixed point and Scott induction |
Adds `ContinuousHom.lfp` for endomorphisms on an ωCPO with `⊥`, as the `ωSup` of the iterate chain from `⊥`, together with `map_lfp`, `isFixedPt_lfp`, `lfp_le_fixed`, `isLeast_lfp`, and the Scott induction theorem `lfp_induction` (specialized from a more general seed-based `ωSup_iterate_induction`).
For `Part.fix`, adds:
* `Part.exists_mem_approx_of_mem_fix`: if `y ∈ Part.fix g x`, some finite approximation of `g` already contains `y`.
* `Part.Fix.approx_eq_iterate_bot` and `Part.Fix.approxChain_eq_iterateChain`: bridges between `Fix.approx`/`approxChain` and `f^[n] ⊥`/`iterateChain`.
* `Part.fix_eq_lfp`: `Part.fix g = ContinuousHom.lfp (.ofFun g hc)` when `g` is ω-Scott continuous.
* `Part.fix_scott_induction`: Scott induction specialized to `Part.fix`.
* `Part.fix_induction_mem`: membership induction on `Part.fix`, derived from `fix_scott_induction`. |
new-contributor |
114/0 |
Mathlib/Control/LawfulFix.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,docs/references.bib |
3 |
2 |
['github-actions'] |
nobody |
10-42419 10 days ago |
10-41722 10 days ago |
22-10995 22 days |
| 38018 |
matthewjasper author:matthewjasper |
feat(Algebra): expand Subalgebra.restrictScalars API |
Add an instance for the original algebra structure, the implied scalar tower instances, and the algebra equivalence with the original subalgebra. Use this to remove some `set_option backward.isDefEq.respectTransparency`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
53/14 |
Mathlib/Algebra/Algebra/Subalgebra/Tower.lean,Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean |
4 |
2 |
['eric-wieser', 'github-actions'] |
mariainesdff assignee:mariainesdff |
10-17001 10 days ago |
28-31499 28 days ago |
29-25875 29 days |
| 38589 |
vlad902 author:vlad902 |
feat(SimpleGraph): add universal vertex predicate |
Add the predicate `G.IsUniversal v` to indicate that `v` is a universal vertex, i.e. connected to all other vertices in `G`. This matches the recently added `G.IsIsolated v` predicate for isolated vertices.
Co-authored-by: Justin Lai
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
63/10 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/Combinatorics/SimpleGraph/UniversalVerts.lean |
5 |
4 |
['8e7', 'github-actions', 'vlad902'] |
nobody |
10-2139 10 days ago |
10-1445 10 days ago |
15-32270 15 days |
| 38358 |
yuanyi-350 author:yuanyi-350 |
doc(1000.yaml): note more formalised theorems |
---
[](https://gitpod.io/from-referrer/)
|
documentation
maintainer-merge
|
9/2 |
docs/1000.yaml |
1 |
12 |
['YaelDillies', 'github-actions', 'grunweg', 'vihdzp', 'yuanyi-350'] |
nobody |
9-72496 9 days ago |
9-71937 9 days ago |
20-68604 20 days |
| 38634 |
Maldooor author:Maldooor |
feat(MeasureTheory): `restrict_absolutelyContinuous_restrict` |
Adding three lemmas about absolute continuity of restrictions of measures to subsets.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
19/0 |
Mathlib/MeasureTheory/Measure/Restrict.lean |
1 |
4 |
['EtienneC30', 'Maldooor', 'github-actions'] |
EtienneC30 assignee:EtienneC30 |
9-71532 9 days ago |
9-71532 9 days ago |
12-13790 12 days |
| 38823 |
matthewjasper author:matthewjasper |
chore(LinearAlgebra/TensorProduct): fix diamond in `AddCommGroup` instance |
The `SMul` instance for tensor products directly used `AddCon.lift`, so wasn't type correct at instance transparency. This caused a diamond with the `AddCommGroup` instance on tensor products because after unfolding some types didn't match, so I've wrapped the sMul function in a semireducible def to prevent this.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
30/23 |
Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean |
2 |
5 |
['github-actions', 'kbuzzard', 'leanprover-radar'] |
nobody |
9-55603 9 days ago |
9-53468 9 days ago |
11-26207 11 days |
| 38890 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Basic): more `WithTop` instances |
Adds the following instances:
```
CompleteLattice α → CompleteLattice (WithTop α)
CompleteLinearOrder α → CompleteLinearOrder (WithBot α)
ConditionallyCompleteLinearOrder α → ConditionallyCompleteLinearOrder (WithTop α)
ConditionallyCompleteLinearOrder α → ConditionallyCompleteLinearOrderBot (WithBot α)
```
and some simp lemmas to help.
---
These `#synth`s all succeed after this PR:
(code)
```lean
variable {α : Type*} [Preorder α]
#synth Preorder αᵒᵈ
#synth Preorder <| WithTop α
#synth Preorder <| WithBot α
#synth Preorder <| WithTopBot α
#synth Preorder <| WithBotTop α
variable {α : Type*} [PartialOrder α]
#synth PartialOrder αᵒᵈ
#synth PartialOrder <| WithTop α
#synth PartialOrder <| WithBot α
#synth PartialOrder <| WithTopBot α
#synth PartialOrder <| WithBotTop α
variable {α : Type*} [LinearOrder α]
#synth LinearOrder αᵒᵈ
#synth LinearOrder <| WithTop α
#synth LinearOrder <| WithBot α
#synth LinearOrder <| WithTopBot α
#synth LinearOrder <| WithBotTop α
variable {α : Type*} [CompleteLattice α]
#synth CompleteLattice αᵒᵈ
#synth CompleteLattice <| WithTop α -- new
#synth CompleteLattice <| WithBot α
#synth CompleteLattice <| WithTopBot α
#synth CompleteLattice <| WithBotTop α
variable {α : Type*} [CompleteLinearOrder α]
#synth CompleteLinearOrder αᵒᵈ
#synth CompleteLinearOrder <| WithTop α
#synth CompleteLinearOrder <| WithBot α -- new
#synth CompleteLinearOrder <| WithTopBot α
#synth CompleteLinearOrder <| WithBotTop α
variable {α : Type*} [ConditionallyCompleteLattice α]
#synth ConditionallyCompleteLattice αᵒᵈ
#synth ConditionallyCompleteLattice <| WithTop α
#synth ConditionallyCompleteLattice <| WithBot α
#synth CompleteLattice <| WithTopBot α
#synth CompleteLattice <| WithBotTop α
variable {α : Type*} [ConditionallyCompleteLinearOrder α]
#synth ConditionallyCompleteLinearOrder αᵒᵈ
#synth ConditionallyCompleteLinearOrder <| WithTop α -- new
#synth ConditionallyCompleteLinearOrderBot <| WithBot α -- new
#synth CompleteLinearOrder <| WithTopBot α
#synth CompleteLinearOrder <| WithBotTop α
variable {α : Type*} [ConditionallyCompleteLinearOrderBot α]
#synth ConditionallyCompleteLinearOrder αᵒᵈ
#synth CompleteLinearOrder <| WithTop α
#synth ConditionallyCompleteLinearOrderBot <| WithBot α -- new
#synth CompleteLinearOrder <| WithTopBot α
#synth CompleteLinearOrder <| WithBotTop α
```
[](https://gitpod.io/from-referrer/)
|
t-order |
63/9 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
9-20818 9 days ago |
9-18032 9 days ago |
9-17761 9 days |
| 37179 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph): add lemmas about left and right elements of `SimpleGraph.sum` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
18/0 |
Mathlib/Combinatorics/SimpleGraph/Sum.lean |
1 |
3 |
['WilliamCoram', 'github-actions'] |
b-mehta assignee:b-mehta |
9-17132 9 days ago |
41-65688 41 days ago |
48-31146 48 days |
| 38872 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable` |
- replaces the `aeSeq`-based construction in `measurable_limit_of_tendsto_metrizable_ae` with a direct choice of the pointwise limit
- proves a.e. measurability via `aemeasurable_of_tendsto_metrizable_ae` and then takes the measurable representative
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
11/19 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
9-17123 9 days ago |
9-61058 9 days ago |
9-60787 9 days |
| 38875 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Covering/Besicovitch` |
- shortens the proof of `r_t0` in `exists_closedBall_covering_tsum_measure_le` by turning the contradiction argument into a direct lambda
- replaces the manual `simp only` proof with `mem_iUnion₂` and a final `simp [r, this]`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
3/8 |
Mathlib/MeasureTheory/Covering/Besicovitch.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
RemyDegenne assignee:RemyDegenne |
9-17120 9 days ago |
9-59818 9 days ago |
9-59547 9 days |
| 38876 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable` |
- rewrites `memLp_trim_of_mem_lpMeasSubgroup` to use `hf.mk f` instead of unpacking `hf.choose`
- shortens the norm comparison to a direct rewrite with `eLpNorm_trim` and `hf.ae_eq_mk`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
3/8 |
Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
9-17119 9 days ago |
9-59523 9 days ago |
9-59252 9 days |
| 38881 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic` |
- shortens `stronglyMeasurable_in_set` by inlining the restricted approximation sequence and folding the `hg_eq` / `hg_zero` helper lemmas into the two `by_cases` branches
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
7/13 |
Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
9-17116 9 days ago |
9-57204 9 days ago |
9-56933 9 days |
| 38882 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/AEMeasurableOrder` |
- replaces the manual `μ t = 0` to `ae` conversion with `measure_eq_zero_iff_ae_notMem`
- rewrites the two density arguments in `aemeasurable_of_exist_almost_disjoint_supersets` using `s_dense.exists_between` and `mem_iUnion₂`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
7/18 |
Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
9-17115 9 days ago |
9-57311 9 days ago |
9-57040 9 days |
| 38871 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SimpleGraph): add parity lemmas for outer and inner vertices |
Adds three lemmas to `SimpleGraph.DegreeSum`:
- `sum_degrees_option_zmod_two`: the handshaking lemma for `Option I` over ZMod 2
- `degree_none_zmod_two_eq_sum`: simp-normal form of the above
- `card_degree_one_option_eq_outer_zmod_two`: under degree bound ≤ 2, count of degree-1 inner vertices equals outer vertex degree mod 2 |
t-combinatorics
new-contributor
|
65/3 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean |
1 |
6 |
['0xTerencePrime', 'SnirBroshi', 'github-actions'] |
nobody |
9-5504 9 days ago |
9-11450 9 days ago |
9-59121 9 days |
| 38897 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SetFamily): formalize 1D Sperner's Lemma parity |
Formalizes the 1-dimensional Sperner's Lemma (parity version): given a coloring of
the `n + 1` vertices of a subdivided line segment with two colors (`ZMod 2`), if the
two endpoints have different colors, then the number of color-changing edges is odd.
This is **distinct** from `IsAntichain.sperner` in `SetFamily.LYM`, which concerns
antichains in a power set. This file formalizes the topological/combinatorial parity
statement used as the base case in higher-dimensional Sperner arguments.
## Key declarations
- `SpernerColoring`: type-safe coloring via `Fin (n + 1) → ZMod 2`
- `edgeDiff`: color difference on adjacent vertices, computed in `ZMod 2`
- `totalDiff`: telescoping sum of all edge differences
- `diffEdges`: the `Finset` of bichromatic (color-changing) edges
- `sperner_1d`: main theorem — `Odd (diffEdges c).card`
## Design notes
- Using `Fin (n + 1) → ZMod 2` instead of `ℕ → ZMod 2` makes boundary conditions
unrepresentable at the type level, eliminating out-of-bounds cases entirely.
- The proof reduces to a telescoping sum in `ZMod 2`, using `CharTwo.add_self_eq_zero`
to cancel all interior vertices, avoiding parity case splits.
This is intended as the 1D base case, the approach generalizes to higher-dimensional
Sperner's Lemma in future work.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
133/0 |
Mathlib.lean,Mathlib/Combinatorics/SetFamily/Sperner1D.lean |
2 |
3 |
['github-actions', 'grunweg'] |
nobody |
8-83138 8 days ago |
9-6158 9 days ago |
9-5887 9 days |
| 38723 |
xgenereux author:xgenereux |
feat(EuclideanDomain.Basic): RingEquiv.euclideanDomain |
Add `RingEquiv.euclideanDomain` similar to other `RingEquiv` transport lemmas.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
26/1 |
Mathlib/Algebra/EuclideanDomain/Basic.lean |
1 |
3 |
['github-actions', 'wwylele'] |
nobody |
8-80528 8 days ago |
8-78845 8 days ago |
13-44238 13 days |
| 38912 |
yuanyi-350 author:yuanyi-350 |
chore(Algebra/Category/Grp/LeftExactFunctor): remove an erw |
- rewrites `unitIsoAux` by expanding the functorial unit and multiplication maps directly in the `rw` chain
- replaces the final `erw`/manual simplification mix with a `simp only [types_tensorObj_def]` proof step
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
8/6 |
Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean |
1 |
1 |
['github-actions'] |
nobody |
8-68252 8 days ago |
8-67728 8 days ago |
8-67457 8 days |
| 38915 |
yuanyi-350 author:yuanyi-350 |
chore(Algebra/Category/ModuleCat/Presheaf/Sheafification): remove an erw |
- rewrites `homEquiv_naturality_left_symm` by expanding the composite passed to `toSheaf_map_sheafificationHomEquiv_symm`
- replaces the `erw` step with a direct `rw`/`simp only [Functor.map_comp]` proof
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
3/4 |
Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean |
1 |
1 |
['github-actions'] |
nobody |
8-68245 8 days ago |
8-67727 8 days ago |
8-67456 8 days |
| 38916 |
yuanyi-350 author:yuanyi-350 |
chore(CategoryTheory/CatCommSq): remove an erw |
- rewrites `hInv_hInv` by using `conv_rhs` with `iso_hom_naturality`
- removes the `rw`/`erw` pair around `Functor.comp_map`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
3/2 |
Mathlib/CategoryTheory/CatCommSq.lean |
1 |
1 |
['github-actions'] |
nobody |
8-68243 8 days ago |
8-67656 8 days ago |
8-67385 8 days |
| 38917 |
yuanyi-350 author:yuanyi-350 |
chore(CategoryTheory/Comma/Basic): remove an erw |
- rewrites the `full_map` proof by pushing `Functor.comp_map` and the naturality equalities into a single `rw`/`simp only` chain
- removes the `erw`-based transport of `α.naturality_assoc` and `β.naturality`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
5/5 |
Mathlib/CategoryTheory/Comma/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
8-68241 8 days ago |
8-67632 8 days ago |
8-67361 8 days |
| 38127 |
riccardobrasca author:riccardobrasca |
feat: add ClassGroup.extendedHom |
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-algebra
t-ring-theory
label:t-algebra$ |
110/6 |
Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/NumberTheory/ClassNumber/Finite.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean,Mathlib/RingTheory/ClassGroup/Basic.lean,Mathlib/RingTheory/ClassGroup/ExtendedHom.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean,Mathlib/RingTheory/PicardGroup.lean,Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean |
9 |
17 |
['faenuccio', 'github-actions', 'mathlib-merge-conflicts', 'riccardobrasca'] |
mattrobball assignee:mattrobball |
8-58568 8 days ago |
12-42780 12 days ago |
26-4417 26 days |
| 37295 |
wwylele author:wwylele |
feat(Analysis/InnerProductSpace): generalized determinant of a rectangle matrix / linear map |
This is the volume factor of a linear map
---
I have encountered the expression `sqrt(det(T' * T))` a few times in various places but it doesn't look like it has a standard name and entry in mathlib, so this adds it.
Zulip thread [#Is there code for X? > (norm of) "determinant" of map between inner product spaces](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.28norm.20of.29.20.22determinant.22.20of.20map.20between.20inner.20product.20spaces/with/581776873)
One motivation to define this is to state volume formula under transformations. From *Measure theory and fine properties of functions*:
- Lemma 3.1: for linear map $L : \mathbb{R}^n \to \mathbb{R}^m$, we have $\mathcal{H}^n(L(A)) = [ L ] \mathcal{L}^n(A)$. This is proved in this PR at `euclideanHausdorffMeasure_image_eq_normDet_mul_volume`
- Theorem 3.8, for (not necessarily linear) $f : \mathbb{R}^n \to \mathbb{R}^m$ ($n \le m$) and $\mathcal{L}^n$-measurable set $A \subset \mathbb{R}^n$, we have $\int_A J f dx = \int_{\mathbb{R}^m} \mathcal{H}^0(A \cap f\^{-1}\{y\}) d\mathcal{H}^n(y)$, where $J f$ is the `normDet` of the rectangular Jacobian matrix
AI usage disclosure: AI was used in the following parts
- searching for related literature for an appropriate name
- generate draft proofs for some lemma to verify their correctness, though the final code has been completely rewritten by me.
- [ ] depends on: #37918
[](https://gitpod.io/from-referrer/)
|
t-analysis
maintainer-merge
|
480/0 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/NormDet.lean,docs/references.bib |
4 |
18 |
['copilot-pull-request-reviewer', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'themathqueen', 'wwylele'] |
j-loreaux assignee:j-loreaux |
8-40187 8 days ago |
8-39187 8 days ago |
42-18991 42 days |
| 38002 |
Raph-DG author:Raph-DG |
feat(Topology): Relating irreducible components of a space to codimension one points in non dense subsets |
In this PR we show that the coheight zero points of a sober space (in the specialization order) correspond to the irreducible components. Furthermore, we show that the coheight one points of any non dense subset p of X (in the specialization order on p) have coheight zero in the specialization order on X.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-topology
|
103/0 |
Mathlib/Order/Hom/Basic.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/Minimal.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Sober.lean |
5 |
3 |
['ADedecker', 'github-actions', 'mathlib-merge-conflicts'] |
urkud assignee:urkud |
8-39596 8 days ago |
8-36513 8 days ago |
25-7640 25 days |
| 38816 |
tb65536 author:tb65536 |
refactor(GroupTheory/Finiteness): make duplicate definitions into abbrevs |
The definitions `Submonoid.FG`, `Group.FG`, and `Subgroup.FG` are all equivalent to `Monoid.FG`, so I've made them into abbrevs. In the future we might even want to consider deprecating all but one to avoid having four ways to write the same thing.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
140/122 |
Mathlib/Algebra/AffineMonoid/Irreducible.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/MonoidLocalization/Finite.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Basic.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Defs.lean,Mathlib/RingTheory/Localization/InvSubmonoid.lean |
9 |
5 |
['eric-wieser', 'github-actions', 'j-loreaux', 'tb65536'] |
nobody |
8-24668 8 days ago |
11-39701 11 days ago |
11-39430 11 days |
| 32294 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): distance from second intersection with circumcircle |
Add the following lemma: given a triangle ABC, suppose an angle bisector from A through the incenter or excenter I meets the circumcircle again at X (including the case of an external bisector at A tangent to the circle, in which case X = A). Then XB = XI (= XC, by applying this lemma again). This is a standard configuration: https://en.wikipedia.org/wiki/Incenter%E2%80%93excenter_lemma
---
- [ ] depends on: #30981
- [ ] depends on: #30982
- [ ] depends on: #32019
- [ ] depends on: #32021
- [ ] depends on: #32023
- [ ] depends on: #32270
- [ ] depends on: #32290
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
189/0 |
Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
1 |
5 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'peakpoint'] |
eric-wieser assignee:eric-wieser |
8-17350 8 days ago |
46-42004 46 days ago |
46-41733 46 days |
| 37522 |
matthewjasper author:matthewjasper |
chore: adjust Module.Finite instance priority |
Make instances that are rarely going to be helpful lower priority.
Increase the priority of `FiniteDimensional.complexToReal`, because it's more likely correct than the other priority 100 `Module.Finite` instances.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
6/4 |
Mathlib/LinearAlgebra/Complex/FiniteDimensional.lean,Mathlib/LinearAlgebra/Dimension/Free.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean |
3 |
3 |
['github-actions', 'grunweg', 'leanprover-radar'] |
themathqueen assignee:themathqueen |
8-17346 8 days ago |
41-29188 41 days ago |
41-28917 41 days |
| 37984 |
loefflerd author:loefflerd |
feat: abstract theory of measures |
General foundations of non-archimedean measure theory (intended for applications to Iwasawa algebras)
---
- [x] depends on: #38701 |
t-topology |
458/0 |
Mathlib.lean,Mathlib/NumberTheory/Padics/Measure/Basic.lean,Mathlib/NumberTheory/Padics/Measure/Group.lean,Mathlib/NumberTheory/Padics/Measure/Topology.lean |
4 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
PatrickMassot assignee:PatrickMassot |
8-17344 8 days ago |
8-31239 8 days ago |
8-30968 8 days |
| 38049 |
WilliamCoram author:WilliamCoram |
feat: lemmas towards showing gaussNorm on MvPowerSeries is an absolute value |
We prove lemmas: ``gaussNorm_mul_le`` and ``gaussNorm_le_mul`` which will allow us to show it is an absolute value on Mv restricted power series.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
144/1 |
Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean |
1 |
4 |
['WilliamCoram', 'github-actions'] |
alreadydone assignee:alreadydone |
8-17343 8 days ago |
25-36050 25 days ago |
28-44946 28 days |
| 38098 |
astrainfinita author:astrainfinita |
chore: make `SMul.comp.smul` `implicit_reducible` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
2/1 |
Mathlib/Algebra/Group/Action/Defs.lean |
1 |
3 |
['astrainfinita', 'github-actions', 'leanprover-radar'] |
themathqueen assignee:themathqueen |
8-17342 8 days ago |
27-4843 27 days ago |
27-4572 27 days |
| 38880 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/LpSpace/Complete` |
- shortens `ae_tendsto_of_cauchy_eLpNorm'` by rewriting the telescoping partial sums in `hx.hasSum.tendsto_sum_nat` directly and concluding with `add_const`, instead of introducing an intermediate eventual `∃ l`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
4/20 |
Mathlib/MeasureTheory/Function/LpSpace/Complete.lean |
1 |
2 |
['Parcly-Taxel', 'github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
8-17337 8 days ago |
9-57779 9 days ago |
9-57508 9 days |
| 38883 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/AEMeasurableSequence` |
- rewrites `iSup` by filtering directly along `aeSeq_eq_fun_ae hf hp`, instead of proving a subset statement about `aeSeqSet` and then using `measure_mono_null`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
2/6 |
Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
8-17336 8 days ago |
9-57064 9 days ago |
9-56793 9 days |
| 38895 |
emlis42 author:emlis42 |
chore(Algebra/ContinuedFractions): golf |
This PR simplifies some proofs in `Algebra/ContinuedFractions` |
t-algebra
new-contributor
label:t-algebra$ |
39/63 |
Mathlib/Algebra/ContinuedFractions/Computation/ApproximationCorollaries.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/ContinuedFractions/ContinuantsRecurrence.lean,Mathlib/Algebra/ContinuedFractions/ConvergentsEquiv.lean |
7 |
2 |
['github-actions'] |
nobody |
8-15854 8 days ago |
8-15234 8 days ago |
9-6713 9 days |
| 37714 |
mortarsanjaya author:mortarsanjaya |
feat(Algebra/Order/Floor/Defs): `Nat.cast` is strictly monotone in `FloorSemiring` and `FloorRing` |
As title says, and without the `IsOrderedRing` assumption.
Other than that, I removed the `IsOrderedRing` assumption from pretty much all the lemmas in `Algebra/Order/Floor/Defs` that could possibly have this assumption removed, and reduced some `IsStrictOrderedRing` assumptions to `IsOrderedRing` + `Nontrivial`.
Due to strict monotonicity, we can also provide `CharZero` instance on `FloorSemiring` and `FloorRing`. Thus we can remove the `NeZero` and `Nontrivial` instances on them.
The changes on `/Ring` and `/Semiring` are trivial changes due to some lemmas not requiring an `IsOrderedRing` instance anymore.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
96/39 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean |
5 |
24 |
['dagurtomas', 'eric-wieser', 'github-actions', 'mathlib-bors', 'mortarsanjaya'] |
eric-wieser assignee:eric-wieser |
8-1648 8 days ago |
11-63819 11 days ago |
35-57665 35 days |
| 37062 |
tannerduve author:tannerduve |
feat(Computability): Turing join and semilattice structure on Turing degrees |
## Summary
- Add `Partrec.kronecker` (equality test) and `Partrec.join` (disjoint union by parity) in `Partrec.lean`
- Prove `Nat.RecursiveIn` is closed under computable conditionals (`cond_const`, `cond`)
- Show each component reduces to the join (`left_le_join`, `right_le_join`) and the join is the least upper bound (`join_le`)
- Establish `SemilatticeSup` instance on `TuringDegree` |
t-computability
new-contributor
large-import
|
311/15 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
7 |
['Komyyy', 'github-actions', 'mathlib-merge-conflicts', 'tannerduve'] |
Komyyy assignee:Komyyy |
8-1556 8 days ago |
29-31687 29 days ago |
30-21764 30 days |
| 36815 |
EtienneC30 author:EtienneC30 |
feat: a measurable space structure on the type of continuous maps |
Endow the type `C(X, Y)` of continuous maps from `X` to `Y` with the Borel sigma-algebra coming from the compact-open topology and show that, under some assumptions on `X` and `Y`, this is equal to the restriction of the product sigma-algebra over `X → Y`.
Provide a measurable equivalence between `{f : X → Y // Continuous f}` and `C(X, Y)`.
Co-authored-by: @RemyDegenne
---
[](https://gitpod.io/from-referrer/)
|
t-topology
brownian
t-measure-probability
|
256/0 |
Mathlib.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousMap.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Basic.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Separation/Regular.lean |
6 |
27 |
['ADedecker', 'EtienneC30', 'felixpernegger', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
7-77251 7 days ago |
7-75416 7 days ago |
47-64851 47 days |
| 38951 |
thomaskwaring author:thomaskwaring |
feat(Order/PrimeSeparator): remove unnecessary hypotheses |
In `mem_ideal_sup_principal`, boundedness and distributivity were unused, and in `prime_ideal_of_disjoint_filter_ideal`, boundedness was only used to produce an element of the filter `F`, which is already nonempty by definition.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
9/19 |
Mathlib/Order/PrimeSeparator.lean |
1 |
2 |
['github-actions'] |
nobody |
7-75829 7 days ago |
7-75169 7 days ago |
7-74898 7 days |
| 36954 |
FMLJohn author:FMLJohn |
feat(Topology/ClosedBases): `TopologicalSpace.IsClosedBasis` and `TopologicalSpace.IsClosedSubbasis s` |
In this pull request, I have defined closed bases and closed subbases of topologies, and proved some basic properties of them.
## Main definitions
* `TopologicalSpace.IsClosedBasis s`: A closed basis of a topological space `α` is a collection of closed sets `s : Set (Set α)` such that every closed subset of `α` can be written as an intersection of elements of `s`.
---
[](https://gitpod.io/from-referrer/) |
t-topology |
117/0 |
Mathlib.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/ClosedBases.lean |
3 |
19 |
['github-actions', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
7-53566 7 days ago |
7-51751 7 days ago |
48-25023 48 days |
| 38667 |
SnirBroshi author:SnirBroshi |
feat(Order/Hom/Basic): equivalences of `Order{Hom/Embedding/Iso}` |
- `OrderHom`s are equivalent to `RelHom`s of `LE` (unlike `OrderEmbedding`/`OrderIso` they aren't defined using it)
- Congruence equivs for `OrderEmbedding`/`OrderIso` when the two sides are order-isomorphic. This already exists for `OrderHom`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
55/1 |
Mathlib/Order/Hom/Basic.lean |
1 |
3 |
['SnirBroshi', 'dagurtomas', 'github-actions'] |
nobody |
7-26479 7 days ago |
7-26479 7 days ago |
14-16495 14 days |
| 38975 |
ldct author:ldct |
feat(EReal): Add equations for EReal |
Add equational lemmas for the simplifier to simplify `[natural number literal] + ⊤` in `EReal`, and add a test file in `MathlibTest/EReal.lean`.
Without these lemmas, `simp` fails to close many of the goals in `MathlibTest/EReal.lean`. I believe simp should close all of them.
An alternative is to add something like this as a simp lemma, to allow `top_add_of_ne_bot` to make progress, but it's not clear to me that this is desirable as a simp lemma, since it's not equational
```
example {n : ℕ} [n.AtLeastTwo] : (ofNat(n) : EReal) ≠ ⊤ := by
exact Ne.symm (not_eq_of_beq_eq_false rfl)
```
---
[](https://gitpod.io/from-referrer/)
|
t-data |
32/0 |
Mathlib/Data/EReal/Operations.lean,MathlibTest/EReal.lean |
2 |
2 |
['github-actions', 'vihdzp'] |
nobody |
7-22246 7 days ago |
7-23711 7 days ago |
7-23440 7 days |
| 37584 |
kennethgoodman author:kennethgoodman |
feat(Data/Nat/Fib): formalize Lamé's theorem |
## Summary
Formalize [Lamé's theorem](https://en.wikipedia.org/wiki/Lam%C3%A9%27s_theorem) (1844), the founding result of computational complexity theory.
**Lamé's Theorem:** If the Euclidean algorithm on inputs `(a, b)` with `b ≤ a` takes `n + 1` division steps, then `b ≥ fib(n + 1)` and `a ≥ fib(n + 2)`.
### New definitions
- `Nat.euclidSteps`: counts the number of division steps in the Euclidean algorithm on natural number inputs.
### New theorems
- `Nat.fib_le_of_euclidSteps`: the main Lamé bound — Fibonacci lower bound on inputs given a step count.
- `Nat.euclidSteps_le_of_lt_fib`: the contrapositive — step count upper bound given a Fibonacci bound on the smaller input.
- `Nat.add_mod_le`: helper lemma that `b + a % b ≤ a` when `b ≤ a` and `0 < b`.
### Proof strategy
Induction on `n`, tracking both elements of the pair. The key insight is that each Euclidean step replaces `(a, b)` with `(b, a % b)`, and since `a ≥ b + a % b` (because `a / b ≥ 1`), the Fibonacci recurrence `fib(n+3) = fib(n+2) + fib(n+1)` matches the structure of the algorithm.
### References
- Gabriel Lamé, *Note sur la limite du nombre des divisions dans la recherche du plus grand commun diviseur entre deux nombres entiers*, Comptes rendus de l'Académie des sciences, 1844.
---
### AI usage disclosure
Per the [Mathlib AI guidelines](https://leanprover-community.github.io/contribute/index.html#use-of-ai): Claude Code (Claude Opus 4.6) was used to assist with writing the Lean 4 proof code, fixing tactic errors, and drafting this PR description. The mathematical proof (induction on step count, tracking both pair elements through the Fibonacci recurrence) was designed by hand and verified on paper before formalization. I have reviewed and understand every line of the resulting Lean code and can explain all proof steps.
---
- [x] builds cleanly (`lake build Mathlib.Data.Nat.Fib.Lame`)
- [x] no `sorry`
- [x] lines ≤ 100 characters, no trailing whitespace
- [x] `autoImplicit false`
- [x] docstrings on all public declarations |
new-contributor
LLM-generated
t-data
|
121/0 |
Mathlib.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Fib/Lame.lean,docs/1000.yaml |
5 |
24 |
['euprunin', 'github-actions', 'kennethgoodman', 'vihdzp', 'wwylele'] |
TwoFX assignee:TwoFX |
7-17364 7 days ago |
31-57587 31 days ago |
39-3462 39 days |
| 38052 |
WenrongZou author:WenrongZou |
feat(FormalGroup): `F(X,0)=X` and `F(0,X)=X` |
In this PR, I prove that given a formal group law `F`, then `F(X,0) = X` and `F(0,X) = X`. And modify the definition of `FormalGroup.Point` to be a subtype. And prove that this subtype is a `AddZeroClass`. Eventually we will prove that this is a `AddGroup`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
257/33 |
Mathlib/RingTheory/FormalGroup/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/Evaluation.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
5 |
17 |
['WenrongZou', 'eric-wieser', 'github-actions', 'mariainesdff'] |
mattrobball assignee:mattrobball |
7-17360 7 days ago |
10-29624 10 days ago |
28-20969 28 days |
| 38231 |
NoneMore author:NoneMore |
feat(ModelTheory/Definablity): add syntax-to-definability bridge lemmas |
Add bridge lemmas from syntax to definability and refactor downstream proofs to use them.
---
[](https://gitpod.io/from-referrer/) |
t-logic |
88/56 |
Mathlib/ModelTheory/Definability.lean,Mathlib/ModelTheory/ElementarySubstructures.lean |
2 |
1 |
['github-actions'] |
fpvandoorn assignee:fpvandoorn |
7-17359 7 days ago |
24-2047 24 days ago |
24-1776 24 days |
| 38778 |
felixpernegger author:felixpernegger |
feat(Topology/EMetricSpace): instances of weak extended metric spaces |
Continuation of #38105.
In particular, this makes `ENNReal` and `EReal` weak extended metric spaces. After this PR one can probably generalise various results/definition which use `(Pseudo)EMetricSpace` to use `Weak(Pseudo)EMetricSpace` (so that they in particular also hold for `ENNReal` and `EReal`) |
t-topology |
247/0 |
Mathlib.lean,Mathlib/Topology/EMetricSpace/Weak.lean |
2 |
1 |
['github-actions'] |
PatrickMassot assignee:PatrickMassot |
7-17354 7 days ago |
8-15258 8 days ago |
8-14987 8 days |
| 38815 |
dagurtomas author:dagurtomas |
feat(Tactic/CategoryTheory): extend `@[to_app]` to natural transformations |
This extends the `@[to_app]` attribute so it also generates componentwise lemmas from equalities of natural transformations between functors, while preserving the existing bicategory behavior. It also ensures generated component lemmas remain usable by dsimp when they are definitionally true. |
t-category-theory
LLM-generated
t-meta
|
148/22 |
Mathlib/Tactic/CategoryTheory/ToApp.lean,Mathlib/Util/AddRelatedDecl.lean,MathlibTest/CategoryTheory/ToApp.lean |
3 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
7-17353 7 days ago |
11-40250 11 days ago |
11-39979 11 days |
| 37707 |
MavenRain author:MavenRain |
feat(Combinatorics/SimpleGraph): add IsMaximalClique/IsMaximalIndepSet, refactor IsMaximum* to MaximalFor |
Addresses #34962
|
new-contributor
t-combinatorics
|
44/31 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
4 |
['MavenRain', 'SnirBroshi', 'github-actions'] |
nobody |
7-10329 7 days ago |
7-10699 7 days ago |
7-10428 7 days |
| 38009 |
CBirkbeck author:CBirkbeck |
feat(RingTheory/Valuation): define the valuation spectrum and its topology |
## Summary
Define the valuation spectrum `Spv A` of a commutative ring and equip it with the topology generated by basic open sets, following Wedhorn's *Adic Spaces*. Also define the pullback (`comap`) of a `ValuativeRel` along a ring homomorphism. This is preparation for later defining adic spaces.
Note the code was generated by claude code, but I have cleaned up and pre-reviewed the work.
|
t-ring-theory
LLM-generated
|
362/0 |
Mathlib.lean,Mathlib/RingTheory/Valuation/ValuationSpectrum.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Comap.lean |
3 |
40 |
['CBirkbeck', 'adamtopaz', 'chrisflav', 'dagurtomas', 'faenuccio', 'github-actions', 'jjdishere', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
6-82890 6 days ago |
28-54998 28 days ago |
28-63098 28 days |
| 36785 |
hommmmm author:hommmmm |
feat(RingTheory/Localization): Nagata's criterion for primality in localization away |
## Summary
- Add `dvd_of_mem_span_singleton_localization`: if `p` is prime and `p ∤ x`, then
membership in the span of the image of `x` in `R[1/p]` implies divisibility by `x`.
- Add `prime_of_prime_in_localization` (Nagata's criterion): if `p` is prime, `x` is
irreducible, and the image of `x` in `R[1/p]` is prime, then `x` is prime.
## References
- [Stacks Project, Tag 0AFU](https://stacks.math.columbia.edu/tag/0afu)
## AI Disclosure
This code is written without AI, then uses Claude Code with cameronfreer's [Lean4-skills](https://github.com/cameronfreer/lean4-skills) (specifically, the `review`, `refactor`, and `golf` workflow) for style changes, refactoring and golfing.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
50/0 |
Mathlib/RingTheory/Localization/Away/Basic.lean |
1 |
8 |
['chrisflav', 'github-actions', 'hommmmm'] |
chrisflav assignee:chrisflav |
6-81960 6 days ago |
6-81960 6 days ago |
29-64375 29 days |
| 38950 |
smmercuri author:smmercuri |
chore(Algebra): `coe_algHom` -> `coe_toAlgHom` |
---
There are also instances of `coe_ringHom`, `coe_linearMap` etc which I can fix in follow-up PRs
[](https://gitpod.io/from-referrer/)
|
|
78/64 |
Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean,Mathlib/Algebra/Azumaya/Basic.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/AlgebraicGeometry/AffineSpace.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean,Mathlib/FieldTheory/Extension.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Isaacs.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/FieldTheory/LinearDisjoint.lean,Mathlib/FieldTheory/Minpoly/Field.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/LinearAlgebra/Charpoly/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean,Mathlib/NumberTheory/Cyclotomic/Gal.lean,Mathlib/RingTheory/Algebraic/MvPolynomial.lean,Mathlib/RingTheory/Bialgebra/Equiv.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/DividedPowerAlgebra/Init.lean,Mathlib/RingTheory/Extension/Presentation/Basic.lean,Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/RingTheory/GradedAlgebra/AlgHom.lean,Mathlib/RingTheory/GradedAlgebra/TensorProduct.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean,Mathlib/RingTheory/NoetherNormalization.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Factorization.lean,Mathlib/RingTheory/Smooth/Basic.lean,Mathlib/RingTheory/Smooth/IntegralClosure.lean,Mathlib/RingTheory/TensorProduct/Maps.lean |
33 |
2 |
['github-actions'] |
nobody |
6-77314 6 days ago |
6-74927 6 days ago |
7-70365 7 days |
| 38557 |
SnirBroshi author:SnirBroshi |
feat(Order/Monotone/Defs): weaken `Preorder` to `LE`/`LT` |
`Monotone`/`Antitone`/`MonotoneOn`/`AntitoneOn` can use any `LE`,
and `StrictMono`/`StrictAnti`/`StrictMonoOn`/`StrictAntiOn` can use any `LT`.
This makes it necessary to add some explicit type params (e.g. `(α := α)`) in some places that use monotone-related theorems (e.g. `Function.monotone_eval`).
---
Currently `OrderEmbedding` and `OrderIso` can use `LE` but `OrderHom` requires `Preorder` because it's defined using `Monotone`. Generalizing `Monotone` and friends will let us fix this oddity. This follows other basic definitions such as `IsMax`/`CovBy`.
[](https://gitpod.io/from-referrer/)
|
t-order |
21/15 |
Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Order/Interval/Lex.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean,Mathlib/Topology/Order/MonotoneConvergence.lean |
7 |
2 |
['JovanGerb', 'github-actions'] |
nobody |
6-75076 6 days ago |
16-17798 16 days ago |
16-17527 16 days |
| 37310 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): uniformly distributed outer regular measures in a second countable pseudometric space are unique up to a finite constant |
In this PR we define uniformly distributed measures and prove [Christensen's Lemma](https://en.wikipedia.org/wiki/Spherical_measure), which says that uniformly distributed outer regular measures in a second countable pseudometric space are unique up to a finite constant.
A classical application of Christensen's Lemma is to show that the restriction of the `n - 1`-dimensional
Hausdorff measure onto an `n`-dimensional sphere coincides with the spherical measure. This will be done in another PR.
---
- [x] depends on: #37311
- [x] depends on: #37312
- [x] depends on: #37313
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
201/1 |
Mathlib.lean,Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/MeasureTheory/Measure/UniformlyDistributed.lean,Mathlib/Order/LiminfLimsup.lean |
4 |
17 |
['CoolRmal', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'wwylele'] |
RemyDegenne assignee:RemyDegenne |
6-62375 6 days ago |
8-17527 8 days ago |
11-44094 11 days |
| 38989 |
grunweg author:grunweg |
chore: remove `(d)simp only []` |
Either remove them (when they were unnecessary), or replace by something more low-level.
---
I'm happy to make them `simp only` instead, if that is preferred.
[](https://gitpod.io/from-referrer/)
|
|
10/17 |
Counterexamples/AharoniKorman.lean,Mathlib/Analysis/SpecialFunctions/Integrals/PosLogEqCircleAverage.lean,Mathlib/CategoryTheory/Limits/Fubini.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RE.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Computability/TuringMachine/StackTuringMachine.lean,Mathlib/LinearAlgebra/Matrix/Basis.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Measure/Restrict.lean,Mathlib/ModelTheory/Encoding.lean |
11 |
4 |
['b-mehta', 'github-actions', 'grunweg'] |
nobody |
6-61918 6 days ago |
6-76337 6 days ago |
6-76066 6 days |
| 37553 |
grunweg author:grunweg |
chore: golf using .ne and friends |
ne_of_gt -> .ne'
ne_of_lt -> .ne
le_of_lt -> .le
Drive-by golfs using gcongr and positivity and been split into separate PRs.
---
- [x] depends on: #37462
- [x] depends on: #37715
- [x] depends on: #37554
- [x] depends on: #37845
[](https://gitpod.io/from-referrer/)
|
|
302/321 |
Archive/Imo/Imo1981Q3.lean,Archive/Imo/Imo2011Q3.lean,Archive/Imo/Imo2013Q5.lean,Archive/Imo/Imo2019Q4.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Counterexamples/NowhereDifferentiable.lean,Counterexamples/TopologistsSineCurve.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/CharP/Defs.lean,Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Finite.lean,Mathlib/Algebra/Lie/Nilpotent.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/Order/Antidiag/Nat.lean,Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Algebra/Order/CauSeq/BigOperators.lean,Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Algebra/Order/Interval/Set/Instances.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Order/Round.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Polynomial/DenomsClearable.lean,Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/QuadraticDiscriminant.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/Analytic/Uniqueness.lean,Mathlib/Analysis/Asymptotics/ExpGrowth.lean,Mathlib/Analysis/Asymptotics/LinearGrowth.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/BoxIntegral/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Tagged.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/DerivativeTest.lean,Mathlib/Analysis/Calculus/FDeriv/Extend.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean,Mathlib/Analysis/Calculus/LHopital.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/OpenMapping.lean,Mathlib/Analysis/Complex/Poisson.lean,Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Convex/Caratheodory.lean,Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/Analysis/Convex/Radon.lean,Mathlib/Analysis/Convex/SpecificFunctions/Deriv.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/MellinInversion.lean,Mathlib/Analysis/MellinTransform.lean,Mathlib/Analysis/Normed/Field/Approximation.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean,Mathlib/Analysis/Normed/Ring/Units.lean,Mathlib/Analysis/Normed/Unbundled/IsPowMulFaithful.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Analysis/Real/Hyperreal.lean,Mathlib/Analysis/Real/Pi/Bounds.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/PolarCoord.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Int/Interval.lean,Mathlib/Data/Int/ModEq.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Nat/Log.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Real/ConjExponents.lean,Mathlib/Dynamics/Circle/RotationNumber/TranslationNumber.lean |
114 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
6-60960 6 days ago |
6-60075 6 days ago |
12-77206 12 days |
| 38979 |
ldct author:ldct |
feat(EReal): simplify nat + ⊤ |
Alternative version of https://github.com/leanprover-community/mathlib4/pull/38975
---
[](https://gitpod.io/from-referrer/)
|
t-data |
28/2 |
Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/Operations.lean,MathlibTest/EReal.lean |
3 |
6 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'ldct', 'leanprover-radar'] |
nobody |
6-56761 6 days ago |
6-54988 6 days ago |
6-54729 6 days |
| 39006 |
tb65536 author:tb65536 |
feat(Algebra/Field/Subfield/Basic): add definition of finitely generated fields |
This PR adds a definition of finitely generated fields with API relating this definition to the existing definitions.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
18/0 |
Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean |
3 |
1 |
['github-actions'] |
nobody |
6-50765 6 days ago |
6-50765 6 days ago |
6-50494 6 days |
| 38553 |
Whysoserioushah author:Whysoserioushah |
feat(RepresentationTheory/Homological): define Tate cohomology |
co-authored-by : class field theory team
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
CFT
label:t-algebra$ |
287/1 |
Mathlib.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/LongExactSequence.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LongExactSequence.lean,Mathlib/RepresentationTheory/Homological/TateCohomology/Basic.lean |
4 |
30 |
['Multramate', 'Whysoserioushah', 'faenuccio', 'github-actions', 'kbuzzard', 'riccardobrasca'] |
faenuccio assignee:faenuccio |
6-49455 6 days ago |
10-57733 10 days ago |
16-32879 16 days |
| 38968 |
eric-wieser author:eric-wieser |
fix: improve defeqs of comp actions |
The (deliberately) non-reducible `SMul.comp.smul` definition caused us to end with these failing unification examples at instance reducibility:
```lean
example : (Module.compHom ℕ (RingHom.id ℕ)).toSMul = SMul.comp ℕ (RingHom.id ℕ) := by
with_reducible_and_instances rfl
example : (Module.compHom ℕ (RingHom.id ℕ)).toMulAction = MulAction.compHom ℕ (MonoidHom.id ℕ) := by
with_reducible_and_instances rfl
```
There are two issues this fixes:
* the `compHom` constructors are inconsistent on whether they use `SMul.comp.smul` or reimplement its contents
* we need `SMul.comp.smul` to be instance-reducible, so that when invoked with the identity function it is instance-defeq to the original action.
As a bonus, allowing these to unify means we can have a single `SMul.comp_smul_def` lemma that works for all of the `compHom` definitions.
We could also consider changing `compHom` to take a `HomClass` in order to remove the casts entirely, which would remove the need to add these `SMul.comp` terms. This PR leaves that for possible future work, noting that in the past we have moved away from writing `def`s taking `HomClass`es.
Co-authored-by: Junye Ji
---
[](https://gitpod.io/from-referrer/)
Refined from #38777 |
t-algebra label:t-algebra$ |
35/19 |
Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/Module/RingHom.lean |
5 |
3 |
['JJYYY-JJY', 'eric-wieser', 'github-actions'] |
nobody |
6-22396 6 days ago |
6-31826 6 days ago |
6-31555 6 days |
| 37718 |
SabrinaJewson author:SabrinaJewson |
feat(Order): add conversions from `Std` order typeclasses to Mathlib ones |
`{Preorder, PartialOrder, LinearOrder}.ofStd` exist to facilitate convenient translation from `Std` order typeclasses to Mathlib ones.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
366/0 |
Mathlib.lean,Mathlib/Order/Std.lean,MathlibTest/OrderOfStd.lean |
3 |
2 |
['github-actions'] |
nobody |
6-18049 6 days ago |
36-20238 36 days ago |
36-19967 36 days |
| 38014 |
cduenasnavarro author:cduenasnavarro |
feat(InformationTheory): linear codes over finite fields and minimum distance properties |
Define linear codes over a finite field `F` as finite-dimensional subspaces of `Fin n → F`,
together with their minimum Hamming distance.
Main definitions:
* `LinearCode`
* `minDist`
* `LinearCodeWithDist`
* `hammingSphere`
Main results:
* `minDist_eq_sInf_pairwiseDist`: characterisation of the minimum distance via pairwise distances
* `disjoint_spheres`: Hamming spheres of radius `t` around distinct codewords are disjoint
if `2 * t < d`
Pending:
* Choosing an adequate book reference
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
143/0 |
Mathlib.lean,Mathlib/InformationTheory/Coding/LinearCode.lean |
2 |
37 |
['cduenasnavarro', 'github-actions', 'linesthatinterlace', 'rkirov', 'vihdzp', 'wwylele'] |
EtienneC30 assignee:EtienneC30 |
6-17149 6 days ago |
17-41573 17 days ago |
29-31399 29 days |
| 38885 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/LpOrder` |
- rewrites `coeFn_nonneg` to use the `Lp.coeFn_zero` eventual equality directly via `trans_le`, instead of a separate `filter_upwards` proof
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
1/4 |
Mathlib/MeasureTheory/Function/LpOrder.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
RemyDegenne assignee:RemyDegenne |
6-17142 6 days ago |
9-56650 9 days ago |
9-56379 9 days |
| 38886 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/SimpleFuncDenseLp` |
- rewrites `measure_preimage_lt_top_of_memLp` via `FinMeasSupp.of_lintegral_ne_top` and `FinMeasSupp.map_iff`, instead of expanding `eLpNorm'` and splitting through `ENNReal.mul_lt_top_iff`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
9/21 |
Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
RemyDegenne assignee:RemyDegenne |
6-17141 6 days ago |
9-56448 9 days ago |
9-56177 9 days |
| 39004 |
zhuyizheng author:zhuyizheng |
chore(ModelTheory): fix hypo of `realize_liftAt` |
changes the hypo of `realize_liftAt` from the incorrect `(hmn : m + n' ≤ n + 1)` to the correct `(hmn : m ≤ n)`
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
2/2 |
Mathlib/ModelTheory/Semantics.lean |
1 |
3 |
['github-actions', 'plp127', 'zhuyizheng'] |
nobody |
6-16990 6 days ago |
6-52405 6 days ago |
6-52134 6 days |
| 38310 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics/Quiver/Schreier): word evaluation and reachability |
Adds word evaluation and reachability results to the Schreier graph API.
* `SchreierGraph.evalWord` : evaluates a word `List (S × Bool)` as an element of the ambient group, where `(s, true)` contributes `ι s` and `(s, false)` contributes `(ι s)⁻¹`.
* `SchreierGraph.evalWord_eq_lift` : agreement with `FreeGroup.lift`.
* `SchreierGraph.evalWord_mem_closure` : every word evaluates into the subgroup generated by `ι`.
* `SchreierGraph.pathFromWord` : a Bool-tagged word yields a path in `Symmetrify (SchreierGraph V ι)` from `x` to `evalWord ι w • x`.
* `SchreierGraph.reachable_iff` : two vertices are connected by a path in the symmetrification iff some element of the subgroup closure carries one to the other.
Follow-up to #36320.
This PR was written with AI assistance (Claude). The code has been reviewed by the author.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
large-import
LLM-generated
|
157/0 |
Mathlib/Combinatorics/Quiver/Schreier.lean |
1 |
2 |
['github-actions'] |
nobody |
6-3444 6 days ago |
22-36210 22 days ago |
22-35939 22 days |
| 38873 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Constructions/BorelSpace/Real` |
- rewrites `measurable_const_mul` by splitting off the `c = 0` case and proving the nonzero case via `measurable_of_continuousOn_compl_singleton`
- replaces the ad hoc case analysis on `⊥`, `⊤`, and real coefficients with a direct continuity argument for multiplication on `EReal`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
5/19 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean |
1 |
3 |
['LorenzoLuccioli', 'github-actions', 'yuanyi-350'] |
kex-y assignee:kex-y |
6-1254 6 days ago |
6-19813 6 days ago |
9-29883 9 days |
| 39016 |
vihdzp author:vihdzp |
chore: deprecate `WithZero.zero_le` |
This is a duplicate of `zero_le` in the root namespace.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
14/24 |
Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/FieldTheory/RatFunc/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
4 |
1 |
['github-actions'] |
nobody |
5-84331 5 days ago |
5-84789 5 days ago |
5-84518 5 days |
| 39023 |
TBUGTB author:TBUGTB |
feat(Algebra/Order): API lemmas on floor and abs |
Co-authored-by: Etienne Marion @EtienneC30
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
brownian
new-contributor
label:t-algebra$ |
9/0 |
Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Algebra/Order/Ring/Abs.lean |
2 |
3 |
['TBUGTB', 'github-actions'] |
nobody |
5-71570 5 days ago |
5-72285 5 days ago |
5-72014 5 days |
| 39029 |
felixpernegger author:felixpernegger |
chore: remove redundant `unfold`s |
This PR removed roughly (estimated by files I went through) half of the `unfold`'s in mathlib which can be removed such that the proof still works (found by searching `unfold ` in VSCode in manually going through ~600/1100 occurences).
I originally planned to replace all, but I couldn't find any relevant discussion if this is actually a good practice, so to save potentially wasted time, I make this PR now. (similarly with the `clear` tactic)
---
[](https://gitpod.io/from-referrer/)
|
|
63/108 |
Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2001Q5.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Mathlib/Algebra/EuclideanDomain/Basic.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Coskeletal.lean,Mathlib/Analysis/Asymptotics/SuperpolynomialDecay.lean,Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Convex/Strict.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean,Mathlib/CategoryTheory/Functor/Flat.lean,Mathlib/CategoryTheory/Functor/FullyFaithful.lean,Mathlib/CategoryTheory/Monoidal/Closed/Functor.lean,Mathlib/Combinatorics/Enumerative/Partition/Basic.lean,Mathlib/Combinatorics/Graph/Delete.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RegularExpressions.lean,Mathlib/Computability/TuringMachine/PostTuringMachine.lean,Mathlib/Computability/TuringMachine/StackTuringMachine.lean,Mathlib/Condensed/Light/TopCatAdjunction.lean,Mathlib/Data/Fintype/EquivFin.lean,Mathlib/Data/Fintype/List.lean,Mathlib/Data/Int/GCD.lean,Mathlib/Data/List/Intervals.lean,Mathlib/Data/Matrix/Basis.lean,Mathlib/Data/Nat/BinaryRec.lean,Mathlib/Data/Nat/ChineseRemainder.lean,Mathlib/Data/Nat/Digits/Div.lean,Mathlib/Data/Nat/Dist.lean,Mathlib/Data/Ordmap/Ordset.lean,Mathlib/Data/PNat/Prime.lean,Mathlib/Data/Real/Embedding.lean,Mathlib/Data/Seq/Defs.lean,Mathlib/Data/Stream/Init.lean,Mathlib/Data/WSeq/Basic.lean,Mathlib/Data/ZMod/Basic.lean |
44 |
3 |
['felixpernegger', 'github-actions', 'leanprover-radar'] |
nobody |
5-64689 5 days ago |
5-66104 5 days ago |
5-65833 5 days |
| 36832 |
KryptosAI author:KryptosAI |
chore(Data/Finset/Card): rename `pred_card_le_card_erase` to `sub_one_card_le_card_erase` |
## Summary
The name `pred_card_le_card_erase` suggests `Nat.pred` but the statement uses `- 1` (i.e., `Nat.sub 1`). Rename to `sub_one_card_le_card_erase` to match the actual statement.
A deprecated alias is added for backwards compatibility.
### Files changed
- `Mathlib/Data/Finset/Card.lean` — definition renamed + deprecated alias
- `Mathlib/Data/Finset/Powerset.lean` — reference updated
- `Mathlib/Combinatorics/Additive/SubsetSum.lean` — reference updated
- `Mathlib/Algebra/Polynomial/EraseLead.lean` — reference updated
Addresses the `Finset.pred_card_le_card_erase` item in #21584.
## AI disclosure
I used Claude Code to explore the codebase (finding all references to rename) and to draft the PR description. I reviewed and understand all changes — these are straightforward renames with a deprecated alias. |
new-contributor |
22/15 |
Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean,Mathlib/Combinatorics/SetFamily/Shadow.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Set/Card.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/RingTheory/Ideal/Operations.lean |
9 |
8 |
['KryptosAI', 'Multramate', 'dagurtomas', 'github-actions', 'mattrobball', 'ooovi'] |
nobody |
5-58590 5 days ago |
40-11136 40 days ago |
54-16801 54 days |
| 38867 |
jvanwinden author:jvanwinden |
feat(Probability/Process/Adapted): add IsProgressive and basic API |
This PR is a follow-up of #38254 and introduces a `Measurable` variant of `IsStronglyProgressive` with basic API. The statements of the lemmas are modeled after the corresponding lemma's for `Measurable`, and the proof is simply to apply them pointwise in `i`.
I have refrained from adding too many basic lemma's, since it remains to be seen if `IsProgressive` will see extensive use.
Zulip discussion at [#Brownian motion > Adapted Filtrations for Markov Chains and Markov Processes](https://leanprover.zulipchat.com/#narrow/channel/509433-Brownian-motion/topic/Adapted.20Filtrations.20for.20Markov.20Chains.20and.20Markov.20Processes/with/563702867)
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
91/9 |
Mathlib/Probability/Process/Adapted.lean |
1 |
3 |
['RemyDegenne', 'github-actions', 'jvanwinden'] |
kex-y assignee:kex-y |
5-39624 5 days ago |
5-38969 5 days ago |
9-67008 9 days |
| 38527 |
archiebrowne author:archiebrowne |
feat(Analysis/Calculus): continuously differentiable actions |
define the class `ContDiffSMul 𝕜 M X n` which asserts that the map `(c, x) ↦ c • x` is `n` times continuously differentiable on `M × X`.
Many of the results are the C^n analogues of those in the module Mathlib.Topology.Algebra.MulAction.
|
t-differential-geometry
new-contributor
|
317/24 |
Mathlib.lean,Mathlib/Analysis/Calculus/BumpFunction/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean,Mathlib/Analysis/ContDiffMulAction.lean,Mathlib/Analysis/InnerProductSpace/Calculus.lean |
6 |
11 |
['archiebrowne', 'github-actions', 'grunweg', 'peabrainiac'] |
PatrickMassot and grunweg assignee:grunweg assignee:PatrickMassot |
5-33831 5 days ago |
5-32992 5 days ago |
13-12926 13 days |
| 37928 |
AlexeyMilovanov author:AlexeyMilovanov |
refactor(Computability.Encoding): unbundle Γ and remove FinEncoding |
This PR unbundles the alphabet `Γ` from the `Encoding` structure and completely removes `FinEncoding`.
`Encoding`: The alphabet `Γ` is now an explicit parameter: `structure Encoding (α : Type u) (Γ : Type v)`.
`FinEncoding`: Removed. Finiteness is now handled via standard typeclasses (e.g., `[Fintype Γ] (e : Encoding α Γ)`).
Combinators: Functions like `finEncodingPair` are simplified to `encodingPair`, dropping the `fin` prefix and `[Fintype]` requirements where no longer needed.
Downstream: Mechanically updated `Mathlib.Computability` and `Mathlib.ModelTheory` to pass the explicit `Γ` and use `[Fintype Γ]` where `FinEncoding` was previously required.
|
new-contributor |
87/67 |
Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean |
2 |
7 |
['AlexeyMilovanov', 'dagurtomas', 'github-actions', 'vihdzp'] |
nobody |
5-32610 5 days ago |
5-72615 5 days ago |
31-50731 31 days |
| 38903 |
lua-vr author:lua-vr |
feat(Covering/Vitali): add `exists_disjoint_subfamily_covering_enlargement_ball` |
Adds the analogous version `exists_disjoint_subfamily_covering_enlargement_ball` of the Vitali covering theorem for open balls.
For the Carleson project.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
37/0 |
Mathlib/MeasureTheory/Covering/Vitali.lean |
1 |
2 |
['github-actions'] |
EtienneC30 assignee:EtienneC30 |
5-29966 5 days ago |
8-78299 8 days ago |
8-78028 8 days |
| 39055 |
vihdzp author:vihdzp |
chore: deprecate `not_lt_zero'` and `bot_eq_zero''` |
Two easy pickings from #38663.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
24/37 |
Mathlib/Algebra/Order/Floor/Extended.lean,Mathlib/Algebra/Order/IsBotOne.lean,Mathlib/AlgebraicTopology/AlternatingFaceMapComplex.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Data/Int/WithZero.lean,Mathlib/Data/List/Shortlex.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/GroupTheory/Coxeter/Basic.lean,Mathlib/GroupTheory/GroupAction/Blocks.lean,Mathlib/RingTheory/Perfection.lean,Mathlib/Topology/MetricSpace/PiNat.lean |
11 |
1 |
['github-actions'] |
nobody |
5-20474 5 days ago |
5-20884 5 days ago |
5-20613 5 days |
| 39059 |
vihdzp author:vihdzp |
feat: `IsBotOneClass (Associates M)` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
11/9 |
Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/RingTheory/ChainOfDivisors.lean |
2 |
1 |
['github-actions'] |
nobody |
5-18149 5 days ago |
5-17517 5 days ago |
5-17246 5 days |
| 37598 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Coloring): add lemmas about coloring and maps |
---
Idea from this Zulip thread: [graph theory>Second Order Monadic Logic for Graph](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Second.20Order.20Monadic.20Logic.20for.20Graph/with/583013775)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
37/13 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
18 |
['IvanRenison', 'SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] |
nobody |
5-18049 5 days ago |
26-34690 26 days ago |
37-61949 37 days |
| 38021 |
IvanRenison author:IvanRenison |
feat(Data/Int/ModEq): add theorem `modEq_two_abs` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
4/0 |
Mathlib/Data/Int/ModEq.lean |
1 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
5-17094 5 days ago |
29-25487 29 days ago |
29-25216 29 days |
| 38095 |
astrainfinita author:astrainfinita |
perf(Algebra/*/{InjSurj, TransferInstance}): reduce instance `Expr`s |
---
We can not just use `fast_instance%`, because `fast_instance%` reduces instances into constructor applications, but their arguments may still not be reduced.
This PR continues the work from #13795.
Original PR: https://github.com/leanprover-community/mathlib4/pull/13795
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/instance.20unfolding.20phenomenon/) |
t-algebra label:t-algebra$ |
401/219 |
Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/TransferInstance.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/TransferInstance.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/Group/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/GroupWithZero/Action/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Ring/InjSurj.lean,Mathlib/Algebra/Ring/TransferInstance.lean,Mathlib/Util/TermReduce.lean,scripts/noshake.json |
16 |
7 |
['astrainfinita', 'github-actions', 'leanprover-radar'] |
dagurtomas assignee:dagurtomas |
5-17092 5 days ago |
26-84508 26 days ago |
27-1464 27 days |
| 38198 |
JovanGerb author:JovanGerb |
chore(Data/Real/Basic): `no_expose` the private operations |
This PR puts `no_expose` on all of the operations on `Real` that are defined in terms of quotients. This is a step in the direction of not exposing the definiton of `Real`.
Note that I leave the `irreducible_def`s as is. This is because the `simpNF` linter does not participate in the module system, and it would time out otherwise.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
11/32 |
Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean |
3 |
11 |
['JovanGerb', 'eric-wieser', 'github-actions', 'leanprover-radar'] |
TwoFX assignee:TwoFX |
5-17091 5 days ago |
24-74229 24 days ago |
24-73958 24 days |
| 38282 |
JovanGerb author:JovanGerb |
chore(Algebra/Lie/Submodule): remove duplicate instance |
This PR removes the explicit `CoeSort` instance on `LieSubmodule`, because it is identical to the one inherited from its `SetLike` instance.
This instance was added in #16509, and I'm not quite sure why it was needed then and not anymore.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
0/3 |
Mathlib/Algebra/Lie/Submodule.lean |
1 |
1 |
['github-actions'] |
ocfnash assignee:ocfnash |
5-17089 5 days ago |
22-73259 22 days ago |
22-72988 22 days |
| 38725 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/ProjectiveSpectrum): remove `erw`s |
- folds the `erw` steps in `isSeparated` into the surrounding `simp only` rewrites, including `affineOpenCover_f`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
t-algebraic-geometry |
9/12 |
Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Proper.lean |
1 |
2 |
['dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
5-17087 5 days ago |
11-46093 11 days ago |
12-60549 12 days |
| 38762 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/EllipticCurve/Projective/Point): remove erws |
- rewrites `neg_of_Z_ne_zero` by splitting the `Fin 3` equality and closing the coordinates with `rw`
- rewrites `addXYZ_neg` with `rw` followed by `simp`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebraic-geometry
LLM-generated
|
6/3 |
Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean |
1 |
3 |
['dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
5-17086 5 days ago |
12-20094 12 days ago |
12-57661 12 days |
| 39056 |
vihdzp author:vihdzp |
feat: `IsBotOneClass ℕ+` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
17/14 |
Mathlib/Data/PNat/Basic.lean,Mathlib/Data/PNat/Defs.lean,Mathlib/Data/PNat/Prime.lean |
3 |
1 |
['github-actions'] |
nobody |
5-14895 5 days ago |
5-14205 5 days ago |
5-13934 5 days |
| 38970 |
themathqueen author:themathqueen |
chore(Analysis/InnerProductSpace/Projection): rename `orthogonalProjection` to `orthogonalProjectionOnto` |
To match the current (continuous) linear projection to a submodule along its complement `Submodule.projection(Onto)(L)`, we change `Submodule.orthogonalProjection` to `Submodule.orthogonalProjectionOnto` (and later will change `Submodule.starProjection` to `Submodule.orthogonalProjection`).
---
Zulip thread: [#**mathlib4>Two variants of linear projections**](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Two.20variants.20of.20linear.20projections/with/591234152)
[](https://gitpod.io/from-referrer/)
|
t-analysis |
267/183 |
Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/MeanErgodic.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/InnerProductSpace/Positive.lean,Mathlib/Analysis/InnerProductSpace/ProdL2.lean,Mathlib/Analysis/InnerProductSpace/Projection/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean,Mathlib/Analysis/InnerProductSpace/Projection/Reflection.lean,Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/InnerProductSpace/l2Space.lean,Mathlib/Geometry/Euclidean/Projection.lean,Mathlib/Geometry/Euclidean/Volume/Measure.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondexpL2.lean,Mathlib/MeasureTheory/Measure/Hausdorff.lean,Mathlib/Topology/MetricSpace/HausdorffDimension.lean,docs/overview.yaml,docs/undergrad.yaml |
20 |
16 |
['ADedecker', 'eric-wieser', 'github-actions', 'themathqueen'] |
mcdoll assignee:mcdoll |
4-77891 4 days ago |
4-76950 4 days ago |
6-86047 6 days |
| 39078 |
fpvandoorn author:fpvandoorn |
feat: add lemmas about products over Finset.Iio |
* Mostly useful for `ℕ`
* I added the `Finset.Iic` lemmas by symmetry, but I'm happy to remove them if we think they are redundant.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
29/0 |
Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean |
1 |
1 |
['github-actions'] |
nobody |
4-62215 4 days ago |
4-60225 4 days ago |
4-59954 4 days |
| 39091 |
tb65536 author:tb65536 |
feat(FieldTheory/Galois/IsGaloisGroup): add version of `IsGaloisGroup.to_isFractionRing` assuming only `IsIntegral` |
This PR adds a version of `IsGaloisGroup.to_isFractionRing` assuming only `Algebra.IsIntegral A B` (which is weaker than the existing assumption `Finite G`).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
22/9 |
Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/RingTheory/Invariant/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
4-48823 4 days ago |
4-48823 4 days ago |
4-48552 4 days |
| 38899 |
thorimur author:thorimur |
feat: `#scope` |
This PR is the first step in creating a toolset of (transient) utilities for assisting with moving declaration commands between files (including sorting out their dependencies, and integrating their needs into the new location).
Capturing the current scope necessary for the command is the first task, and to that end this PR contributes the command `#scope`, which reifies the current scope into portable syntax. `#scope` by itself produces a try-this suggestion placing a scope specification after `#scope`, of the following form:
```
#scope
(@[expose])? (public)? (noncomputable)? (section)? scope
(universe ...)?
(namespace ...)?
(open @id₁ @id₂ ...)?
(open scoped @id₁ @id₂ ...)?
(set_options key₁ val₁, key₂ val₂ ...)?
(variable ...)?
(include ...)?
(omit ...)?
```
This is intended to fully capture the "semantic" aspects of the current scope, but not the full scope stack (and so e.g. disregards `section`s). Likewise this slightly-unusual syntax (e.g. `open @Foo` instead of `open Foo`) is intended to act as a portable record of the open declaration which can be acted on by automation, and to discourage interpretation as a "normal" `open` statement.
By itself, this is only a slightly odd `#where`. Future PRs (e.g. #38900) will build on this in order to provide a suite of tools for transporting scopes between files and managing them once there, making it easier to move declarations.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
512/3 |
Mathlib.lean,Mathlib/Lean/Elab/Options.lean,Mathlib/Lean/Name.lean,Mathlib/Util/Scope.lean,MathlibTest/Scope.lean |
5 |
3 |
['JovanGerb', 'github-actions', 'thorimur'] |
JovanGerb assignee:JovanGerb |
4-42252 4 days ago |
8-79133 8 days ago |
8-78862 8 days |
| 39074 |
tb65536 author:tb65536 |
feat(RingTheory/RamificationInertia/Ramification): relate `ramificationIdx'` to `Algebra.IsUnramifiedAt` |
This PR relates the new `ramificationIdx'` (which will eventually replace `ramificationIdx`) to `Algebra.IsUnramifiedAt`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
large-import
label:t-algebra$ |
30/0 |
Mathlib/RingTheory/RamificationInertia/Ramification.lean |
1 |
1 |
['github-actions'] |
nobody |
4-39179 4 days ago |
4-38521 4 days ago |
4-52936 4 days |
| 38223 |
Deicyde author:Deicyde |
feat(Geometry/Manifold): add `MfldCat`, the category of `C^n` manifolds |
We define `MfldCat 𝕜 n`: the category of `C^n` manifolds over a field `𝕜`, following the pattern of `TopCat` in
`Mathlib.Topology.Category.TopCat.Basic`. We also implement `HasForget₂ (MfldCat 𝕜 n) TopCat`—the forgetful functor into the category of topological spaces. For more discussion see the Zulip thread: [#PR reviews > #38223 The Category of C^n Manifolds](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2338223.20The.20Category.20of.20C.5En.20Manifolds/with/587038032)
Also added: `ContMDiffMap.id_apply`, `.coe_id` and `.coe_comp` which are comparable to `ContinuousMap` API.
### Future work
- ✅ Define a Monoidal structure via product manifolds, analogous to `Manifold.Topology.Category.TopCat.Monoidal` #38560
- ✅ Define the tangent functor: `M ↦ TM`, `F ↦ F.tangentMap` from `MfldCat (n+1) 𝕜` to `MfldCat n 𝕜` #38270
- Functor `FGModuleCat 𝕜 ⥤ MfldCat 𝕜 n` sending a finite-dimensional `𝕜`-vector space to the manifold modeled on itself. Left as `TODO`.
- Define `FGModuleCat 𝕜` as an enriched category over `MfldCat n 𝕜`. Then _smooth functors_ can be realized as endofunctors on the enriched category. This is the main motivation for this construction.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
t-category-theory
|
224/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Category/MfldCat/Basic.lean,Mathlib/Geometry/Manifold/ContMDiffMap.lean |
3 |
57 |
['Deicyde', 'chrisflav', 'dagurtomas', 'github-actions', 'idontgetoutmuch', 'peabrainiac'] |
kim-em assignee:kim-em |
4-32801 4 days ago |
4-36225 4 days ago |
17-79396 17 days |
| 37190 |
cjrl author:cjrl |
feat(Combinatorics): Set-Valued Pigeonhole Principle |
This PR contributes two theorems to combinatorics:
- `exists_lt_card_cover_of_card_biUnion_lt_card` is a set-valued version of the pigeonhole principle.
- `sum_card_eq_sum_card_cover_biUnion` is a set theoretic corollary of a double counting result proved for bipartite graphs (`Finset.sum_card_bipartiteAbove_eq_sum_card_bipartiteBelow`). This was needed to prove the above pigeonhole principle.
The motivation for these results is our Latin Square PR #36698. These results were proved in less general terms in that PR, but are independent of Latin Square considerations and so we have generalized and moved them into more relevant files.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
38/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Pigeonhole.lean |
2 |
16 |
['IvanRenison', 'cjrl', 'ghseeli', 'github-actions', 'j-loreaux', 'vlad902'] |
b-mehta assignee:b-mehta |
4-17196 4 days ago |
30-36946 30 days ago |
46-1935 46 days |
| 37521 |
jessealama author:jessealama |
feat(Data/Part): add Part.bind_eq_some_iff |
Add `Part.bind_eq_some_iff`, the `Part` analogue of `Option.bind_eq_some_iff`. Noticed this small gap while working on some equivalence proofs with partial functions. |
t-data |
6/0 |
Mathlib/Data/Part.lean |
1 |
3 |
['github-actions', 'jessealama', 'vihdzp'] |
joneugster assignee:joneugster |
4-17194 4 days ago |
6-62206 6 days ago |
41-11572 41 days |
| 37534 |
EtienneC30 author:EtienneC30 |
feat: cardinality of subsets of a given cardinality |
Given a finite set `s`, the number of subsets of `s` with cardinality `n` is `s.ncard.choose n`. This is analog to [Finset.card_powersetCard](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/Powerset.html#Finset.card_powersetCard) and [Set.powersetCard.card](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Set/PowersetCard.html#Set.powersetCard.card) but with a set of sets rather than involving finsets.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
18/0 |
Mathlib/Data/Set/Card.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
4-17193 4 days ago |
40-69200 40 days ago |
40-68929 40 days |
| 37761 |
EtienneC30 author:EtienneC30 |
feat: define Bernoulli distribution |
Define the Bernoulli distribution over an arbitrary measurable space as
`Ber(x, y, p) := toNNReal p • dirac x + toNNReal (σ p) • dirac y`.
Deprecate `PMF.binomial`.
Co-authored-by: @DavidLedvinka
---
- [ ] depends on: #37762
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
|
206/7 |
Mathlib.lean,Mathlib/Data/ENNReal/Action.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean,Mathlib/Probability/Distributions/Bernoulli.lean,Mathlib/Probability/Distributions/SetBernoulli.lean,Mathlib/Probability/Moments/SubGaussian.lean,Mathlib/Probability/ProbabilityMassFunction/Binomial.lean,Mathlib/Probability/ProbabilityMassFunction/Constructions.lean,Mathlib/Probability/ProbabilityMassFunction/Integrals.lean |
9 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
sgouezel assignee:sgouezel |
4-17192 4 days ago |
4-55298 4 days ago |
4-55027 4 days |
| 38199 |
vihdzp author:vihdzp |
chore: add items to set theory overview |
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-set-theory
|
11/2 |
docs/overview.yaml |
1 |
3 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
alreadydone assignee:alreadydone |
4-17188 4 days ago |
24-76764 24 days ago |
24-76493 24 days |
| 38225 |
kim-em author:kim-em |
ci: block merging PRs with large import increases unless reviewed |
This PR makes the existing `large-import` label into a merge gate. PRs that significantly increase transitive imports (>2% for any modified file) are now blocked from merging until a reviewer adds the `allow-large-import` label.
### Why three labels?
Bors's `block_labels` has no conditional logic — if a label is in the list, merge is blocked unconditionally. We need "blocked unless a reviewer has approved", i.e. `large-import ∧ ¬allow-large-import`. Since bors can't express that, we use a derived label:
| Label | Managed by | Purpose |
|---|---|---|
| `large-import` | `build` job (import analysis) | Factual: this PR increases imports |
| `blocked-by-large-import` | `check-large-import` job | Operational: blocks bors |
| `allow-large-import` | Reviewer | Override: reviewer approves the increase |
Each label is managed by exactly one actor, so there is no label-fighting.
### How it works
1. The existing `build` job adds/removes `large-import` based on import analysis (unchanged).
2. A new `check-large-import` job (in the same workflow) waits for `build` to finish, then:
- If `large-import` is present and `allow-large-import` is absent → adds `blocked-by-large-import`
- Otherwise → removes `blocked-by-large-import`
3. `blocked-by-large-import` is added to `block_labels` in `bors.toml`.
When a reviewer adds `allow-large-import`, the `labeled` event re-triggers the workflow. The heavy `build` job is skipped (guarded by `github.event.action != 'labeled'`), but the lightweight `check-large-import` job runs, sees both labels, and removes `blocked-by-large-import`. Bors can now merge.
### Reviewer workflow
The CI failure message tells the reviewer to consider whether the PR could be improved by splitting files, rearranging material, or creating new intermediate files. If the import increase is reasonable, they add `allow-large-import`.
False positives can be reported on the [mathlib4 Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/large-import.20label).
🤖 Prepared with Claude Code |
CI |
78/2 |
.github/workflows/PR_summary.yml,bors.toml |
2 |
6 |
['SnirBroshi', 'github-actions', 'jcommelin', 'joneugster', 'kim-em'] |
joneugster assignee:joneugster |
4-17187 4 days ago |
22-22150 22 days ago |
22-21879 22 days |
| 38309 |
ntapiam author:ntapiam |
feat(Algebra/NonAssoc): dendriform algebras |
Define dendriform semirings and algebras
---
This PR introduces dendriform structures such as dendriform semirings
and algebras, and proves basic facts linking them to their pre-Lie
counterparts.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
270/0 |
Mathlib.lean,Mathlib/Algebra/NonAssoc/Dendriform/Defs.lean,docs/references.bib |
3 |
5 |
['dagurtomas', 'github-actions', 'ntapiam'] |
ocfnash assignee:ocfnash |
4-17186 4 days ago |
4-69364 4 days ago |
19-73577 19 days |
| 38317 |
WenrongZou author:WenrongZou |
feat(Date/Choose): add some lemmas about choose of prime pow |
In this PR, I add some lemma about choose of prime pow.
1) For primes `p` and positive integer `n`, assume that for all `i ∈ Icc 1 (n - 1)`, `choose n i` congruent to `0` module `p`, then `n = p ^ multiplicity p n`.
2) For a prime power `n`, the greatest common divisor of `choose n 1, ⋯, choose n (n - 1)` is actually the minimal prime factor of `n`.
3) For a natural number `n` greater than `1`, assume that `n` is not a prime power, then the greatest common divisor of `choose n 1, ⋯, choose n (n - 1)` is `1`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
88/1 |
Mathlib/Data/Nat/Choose/Lucas.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
4-17185 4 days ago |
22-26157 22 days ago |
22-25886 22 days |
| 38323 |
NoahW314 author:NoahW314 |
feat(RingTheory/MvPolynomial/MonomialOrder): remove unnecessary hypothesis |
Some results had a nonzero hypothesis which can be eliminated since the result holds trivially when the polynomial is zero.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
13/5 |
Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
4-17184 4 days ago |
22-9798 22 days ago |
22-9527 22 days |
| 38340 |
xroblot author:xroblot |
refactor(Data/ZMod): move `coe_int_isUnit_iff_isCoprime` to `ZMod.Units` |
Move `ZMod.coe_int_isUnit_iff_isCoprime` from `Mathlib.Data.ZMod.Coprime` to `Mathlib.Data.ZMod.Units`, where it more naturally belongs as a statement about units in `ZMod`. The proof is rewritten to only use tools available in `Mathlib.Data.ZMod.Units`, avoiding the dependency on `Mathlib.Algebra.EuclideanDomain.Int`.
This is motivated by the desire to use `coe_int_isUnit_iff_isCoprime` without the overhead of importing `Mathlib.Data.ZMod.Coprime` (see #38339 for a use case).
🤖 Co-Authored with [Claude Code](https://claude.com/claude-code) |
t-data |
10/7 |
Mathlib/Data/ZMod/Coprime.lean,Mathlib/Data/ZMod/Units.lean |
2 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
4-17182 4 days ago |
21-36207 21 days ago |
21-35965 21 days |
| 38343 |
mortarsanjaya author:mortarsanjaya |
chore(Data/Nat/Cast/Order/Ring): move two Nat lemmas to Data/Nat/Basic |
These two lemmas have no correlation with `Nat.cast`, and the proof can be golfed to fit `Data/Nat/Basic`.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
23/27 |
Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Cast/Order/Ring.lean |
2 |
6 |
['dagurtomas', 'github-actions', 'mortarsanjaya'] |
joneugster assignee:joneugster |
4-17181 4 days ago |
7-13376 7 days ago |
21-33822 21 days |
| 38347 |
artie2000 author:artie2000 |
doc(LinearAlgebra/FreeModule/StrongRankCondition): clarify context of `commRing_strongRankCondition` |
* Replace mathematical documentation in `Mathlib.LinearAlgebra.FreeModule.StrongRankCondition`, with explanation that the file comprises a shortcut instance `commRing_strongRankCondition`
* Signpost `commRing_strongRankCondition` at both its parent instances
* Increase priority of shortcut instance `commRing_strongRankCondition` above that of its parent instances
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
28/41 |
Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean,Mathlib/LinearAlgebra/InvariantBasisNumber.lean,Mathlib/RingTheory/FiniteType.lean |
3 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
4-17180 4 days ago |
16-39275 16 days ago |
21-902 21 days |
| 38373 |
Nicola9Falciola author:Nicola9Falciola |
feat (Algebra/FreeAbelianGroup /Finsupp) : The support of non zero element in a freeabeliangroup is non empty |
Add the lemma that for a nonzero a : FreeAbelianGroup X the support of it is non empty.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
3/0 |
Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean |
1 |
7 |
['Nicola9Falciola', 'SnirBroshi', 'github-actions'] |
ocfnash assignee:ocfnash |
4-17178 4 days ago |
19-57440 19 days ago |
20-42019 20 days |
| 38943 |
felixpernegger author:felixpernegger |
feat(Topology/CWComplex/Classical): discrete spaces are CW complexes |
as well as some useful lemmas
This is partly based on code by @scholzhannah
I think this is notable to include, since it is pretty much the only (easy) "topological" sufficient condition for something being a CW complex there is.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
89/3 |
Mathlib/Topology/CWComplex/Classical/Basic.lean,Mathlib/Topology/DiscreteSubset.lean |
2 |
28 |
['felixpernegger', 'github-actions', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
4-17175 4 days ago |
6-74064 6 days ago |
7-82987 7 days |
| 39064 |
kim-em author:kim-em |
feat: make showLinter detect tactics that assign metavariables |
This PR removes a short-circuit in `showLinter` that suppressed the
linter whenever the syntactic goal was unchanged by a `show` tactic.
A `show` invocation can still have side-effects on the metavariable
context — tactic elaboration may assign metavariables while leaving
the goal type unchanged — so the existing `instantiateMVars`-based
diff check should run unconditionally. The fast path for the genuine
no-op case is preserved: if `before` and `after` types still match
after `instantiateMVars`, the linter doesn't fire.
This was discovered while adapting Mathlib to nightly-2026-05-03 in
https://github.com/leanprover-community/mathlib4-nightly-testing/pull/215
and is being extracted here so it can land independently of that bump.
🤖 Prepared with Claude Code |
t-linter |
1/1 |
Mathlib/Tactic/Linter/Style.lean |
1 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
4-17174 4 days ago |
4-82301 4 days ago |
4-82030 4 days |
| 38859 |
SnirBroshi author:SnirBroshi |
feat(Order/CompleteLattice/Basic): tag `iSup_of_empty'` with `@[simp]` |
The theorem says `iSup f = sSup ∅` when the domain of `f` is empty, and dually `iInf f = sInf ∅`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
31/47 |
Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Data/ENat/Lattice.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Data/Set/Finite/Lattice.lean,Mathlib/LinearAlgebra/Eigenspace/Pi.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/ConditionallyCompletePartialOrder/Indexed.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Lift.lean |
14 |
1 |
['github-actions'] |
nobody |
3-83968 3 days ago |
3-83247 3 days ago |
9-70245 9 days |
| 38464 |
xroblot author:xroblot |
feat(FieldTheory/Galois/IsGaloisGroup): generalize mulEquivCongr |
Generalizes `mulEquivCongr` from field extensions to domain extensions. The field version is renamed to `mulEquivCongr'`.
Also adds some simp lemmas.
---
- [x] depends on: #38377 |
t-algebra label:t-algebra$ |
56/15 |
Mathlib/FieldTheory/Galois/IsGaloisGroup.lean |
1 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
3-83369 3 days ago |
3-82973 3 days ago |
4-49214 4 days |
| 38328 |
astrainfinita author:astrainfinita |
feat: `OrderSupSet` |
This PR introduces `OrderSupSet` and `OrderInfSet`, which are typeclasses expressing that `sSup` (resp., `sInf`) returns the least upper bound (resp., the greatest lower bound) of a set whenever one exists.
This allows us to prove properties about the `sSup` of specific sets (such as `∅`, singletons, finite sets, and `univ`) without any typeclasses asserting the existence of LUBs. For example, `sSup ∅ = ⊥` holds for any type equipped with `OrderBot` `OrderSupSet`, no longer requiring typeclasses like `ConditionallyCompleteLinearOrderBot`.
For a general set `s`, this gives a uniform way to extend results about `IsLUB s a → motive a` to `motive (sSup s)`, `motive (⨆ i, f i)`, `motive (a ⊔ b)`, etc., which allows proof reuse for basic API such as [`csSup_insert`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/ConditionallyCompleteLattice/Basic.html#csSup_insert), [`iSup_insert`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/CompleteLattice/Basic.html#iSup_insert), and [`sSup_insert`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/CompleteLattice/Basic.html#sSup_insert) and downstream code like [`csSup_add`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Pointwise/CompleteLattice.html#csSup_add), [`sSup_add`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Pointwise/CompleteLattice.html#sSup_add), and [`sup_add`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Lattice.html#sup_add).
Furthermore, this allows us to refactor incrementally, reducing the dependency of results about various completeness typeclasses on the specific implementation of `sSup`.
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Any.20infimum.20based.20version.20of.20.60OmegaCompletePartialOrder.60.3F)
[](https://gitpod.io/from-referrer/)
|
t-order |
156/73 |
Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/Bounds/Defs.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/SetNotation.lean,Mathlib/Topology/UniformSpace/OfCompactT2.lean |
7 |
16 |
['JovanGerb', 'astrainfinita', 'b-mehta', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'openendings', 'vihdzp'] |
nobody |
3-81725 3 days ago |
3-78570 3 days ago |
9-15342 9 days |
| 38536 |
CoolRmal author:CoolRmal |
feat: a lemma about the symmetric difference of unions |
Created with the help of Codex.
---
[](https://gitpod.io/from-referrer/)
|
t-data
easy
|
45/2 |
Mathlib/Data/Set/Lattice.lean,Mathlib/Order/CompleteBooleanAlgebra.lean |
2 |
12 |
['CoolRmal', 'SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
3-79759 3 days ago |
6-8514 6 days ago |
6-19794 6 days |
| 38234 |
vihdzp author:vihdzp |
chore: make `IsSuccLimit` a structure |
This lets us name the fields. Note that the `mk_iff` lemma overwrites a recently deprecated theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
40/33 |
Mathlib/Order/SuccPred/InitialSeg.lean,Mathlib/Order/SuccPred/Limit.lean |
2 |
5 |
['github-actions', 'plp127'] |
nobody |
3-79529 3 days ago |
3-77268 3 days ago |
19-61844 19 days |
| 38865 |
JovanGerb author:JovanGerb |
chore: adaptations for quote4#134 |
This PR adds imports that are now necessary
---
[](https://gitpod.io/from-referrer/)
|
|
4/2 |
Mathlib/Tactic/Nontriviality/Core.lean,Mathlib/Tactic/Tauto.lean,lake-manifest.json |
3 |
7 |
['JovanGerb', 'bryangingechen', 'eric-wieser', 'github-actions', 'leanprover-radar'] |
nobody |
3-58288 3 days ago |
3-64256 3 days ago |
9-63330 9 days |
| 37185 |
gasparattila author:gasparattila |
chore(Data/Finset/Lattice/Fold): rename `comp_sup_*` to `apply_sup_*` |
These lemmas are of the form `g (s.sup f) = s.sup (g ∘ f)` with no composition on the LHS.
---
- [x] depends on: #37047
[](https://gitpod.io/from-referrer/)
|
t-order |
44/26 |
Mathlib/Algebra/Order/Ring/Finset.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/Normed/Group/Ultra.lean,Mathlib/Data/ENNReal/Lemmas.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean,Mathlib/Topology/ContinuousMap/CompactlySupported.lean,Mathlib/Topology/ContinuousMap/Ordered.lean |
11 |
4 |
['gasparattila', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
3-45444 3 days ago |
3-42787 3 days ago |
34-24764 34 days |
| 39123 |
SnirBroshi author:SnirBroshi |
chore(Data/Matrix/Basic): mention `mopMatrix` in `transpose{Ring/Alg}Equiv`s docstring and vice versa |
- `RingEquiv.mopMatrix` and `transposeRingEquiv` differ by a `ᵐᵒᵖ` since the latter assumes `CommMagma α` instead of `Mul α`
- `AlgEquiv.mopMatrix` and `transposeAlgEquiv` differ by a `ᵐᵒᵖ` since the latter assumes `CommSemiring α` instead of `Semiring α`
---
Also slightly golfs `RingEquiv.mopMatrix` as a drive-by.
[](https://gitpod.io/from-referrer/)
|
t-data |
18/11 |
Mathlib/Data/Matrix/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
3-40185 3 days ago |
3-38574 3 days ago |
3-38303 3 days |
| 37649 |
IvanRenison author:IvanRenison |
feat(Data): add theorem `Finset.image_eq_iff_eq_preimage` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
23/0 |
Mathlib/Data/Finset/Preimage.lean,Mathlib/Data/Set/Function.lean |
2 |
7 |
['Rida-Hamadani', 'github-actions', 'joneugster', 'themathqueen'] |
joneugster assignee:joneugster |
3-34135 3 days ago |
3-30160 3 days ago |
36-68724 36 days |
| 39095 |
tb65536 author:tb65536 |
feat(FieldTheory/Galois/IsGaloisGroup): `IsGaloisGroup` instance for `FixedPoints.subalgebra` |
This PR generalizes the existing `IsGaloisGroup` instance for `FixedPoints.intermediateField` to `FixedPoints.subalgebra`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
23/3 |
Mathlib/Algebra/Algebra/Subalgebra/Operations.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/GroupTheory/GroupAction/Defs.lean |
3 |
5 |
['eric-wieser', 'github-actions', 'tb65536'] |
nobody |
3-32906 3 days ago |
3-30122 3 days ago |
3-79098 3 days |
| 38829 |
AnandGokhale author:AnandGokhale |
feat(Analysis/ODE/Gronwall): added gronwall-bellman inequality |
Added 2 lemmas and 1 theorem to Analysis.ODE.Gronwall, making progress towards a TODO.
Lemma 1: Wrapper for Fundamental Theorem of Calculus
Lemma 2: Wrapper for the continuity of an integral on a closed, ordered interval
Theorem: Gronwall bellman inequality, as stated with proof in Appendix of Hassan Khalil, Nonlinear control, 3rd edition.
|
t-analysis
new-contributor
large-import
|
125/2 |
Mathlib/Analysis/ODE/Gronwall.lean |
1 |
12 |
['AnandGokhale', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-bors'] |
j-loreaux assignee:j-loreaux |
3-30357 3 days ago |
3-29708 3 days ago |
5-75918 5 days |
| 37008 |
BryceT233 author:BryceT233 |
feat(RingTheory/LocalRing): `IsLocalRing` for pullbacks |
We provide basic lemmas for equalizers and pullbacks of `RingHom` and `AlgHom`, and show they are local rings under suitable condtions.
This is needed in #37940 to construct a residue algebra structure on pullbacks.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
167/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/Pullback.lean |
2 |
6 |
['BryceT233', 'github-actions', 'wwylele'] |
mattrobball assignee:mattrobball |
3-28551 3 days ago |
3-27929 3 days ago |
50-46861 50 days |
| 38324 |
BryceT233 author:BryceT233 |
chore(RingTheory/AdicCompletion): make `AdicCompletion.map` linear on linear maps |
This PR upgrades `AdicCompletion.map` to be an R-linear map on the space of linear maps `M →ₗ[R] N`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
38/12 |
Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
3-28538 3 days ago |
3-27704 3 days ago |
21-85471 21 days |
| 38318 |
JovanGerb author:JovanGerb |
feat(GRewrite): new `grw` implementation |
This PR adds a new implementation of the `grewrite` tactic. It replaces `grw` with the new implementation. The old implementation can be used with `grw +useKAbstract`.
New features:
- The new `grw` can rewrite terms with bound variables.
- The new `grw` will only rewrite in places where this is valid. Previously, if there were both valid and non-valid positions, it would try rewriting everywhere and then complain.
Future features that will build on the new implementation:
- I'd like to add support for strict rewrites that can change the strictness of parts of the goal. This would require the concept of asymmetric `gcongr` lemmas, something like `le_imp_lt_of_lt_left` and `le_imp_lt_of_lt_right`. An example of such a lemma that already exists in mathlib is `Ico_subset_Ioo_left`.
- I'd like to improve the support for rewriting with symmetric relations such as `=ᵥ`. The following doesn't work very well yet:
```
variable {R : Type*} [CommRing R] [ValuativeRel R] {x y z : R}
example (h : x =ᵥ y) : x <ᵥ z ↔ y <ᵥ z := by
grw [h]
```
Limitations:
- The new implementation does not support occurrences. So, `nth_grw` still uses the old `kabstract`-based implementation. The reason is that there are often multiple `gcongr` lemmas for rewriting in the same place (e.g. `add_le_add` and `add_le_add_left`), and it's tricky to keep track of exactly what is "the same" subexpression.
- The new implementation tries `gcongr` lemmas one by one, and commits to the first `gcongr` lemma that lets us do a rewrite. This means that we need to lower the priority of `add_le_add_left`, so that `add_le_add` is preferred, so that we can rewrite on both sides of `+` at the same time. However, `mul_le_mul_of_nonneg_left` and `mul_le_mul_of_nonneg_right` are still tried before `mul_le_mul`, to avoid getting unnecessary side goals.
- Because the new term is constructed from `gcongr` lemmas, rather than by instantiating the result of `kabstract`, it may be that metadata gets lost, or that some implicit arguments change. For example, rewriting inside `a ≤ b` for `a b : Nat` will change the instance argument from `Nat.instLE` to `Nat.instPreorder.toLE`. This is not really a problem.
- Some problems arise when implementing a rewriting tactic that can rewrite under binders, because metavariables have a fixed local context of free variables that they are allowed to depend on. This issue also affects the new `rw` tactic that the FRO is currenlty working on. This PR works around this by "illegally" changing the local context of metavariabes, so as to allow them to depend on bound variables. This has the unfortunate side effect that the "Expected Type" view can get messed up when rewriting bound variables, because the expression is being delaborated with the wrong local context. But I think this is only a minor problem. We coould reconsider this design when the new `rw` tactic is done.
Changes to `gcongr`:
- The `@[goncgr]` attribute now checks more thoroughly whether the given lemma is of the right form. Some lemmas are not suitable for use in `grw`, but they still "feel" like a `gcongr` lemma, so we still allow them to be used in `gcongr`. For such cases I've added a linter warning that can be turned off.
- I've refactored how `gcongr` lemmas are applied, in order to share this code between `gcongr` and `grw`. Now, binder names are taken from the goal when possible, rather than not giving any name to new free variables. This improves `gcongr` (as it means you don't anymore need to write `gcongr with ...` to give the variable a name), and allows `grw` to preserve binder names in the goal.
The grewrite test file now tests the new `grw` implementation. Should I make a copy of the test file to also test the old implementation?
I have put myself as the copyright holder, instead of Sebastian Zimmer, as I think this more accurately reflect code ownership. The original `grw` PR was by Sebastian in 2023, but it was majorly rewritten by me in 2025. Sebastian is still in the list of authors.
---
- [x] depends on: #38558
- [x] depends on: #38556
[](https://gitpod.io/from-referrer/)
|
t-meta |
632/236 |
Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/Order/Group/Indicator.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Sub/Defs.lean,Mathlib/Analysis/CStarAlgebra/Extreme.lean,Mathlib/Analysis/Convex/StrictCombination.lean,Mathlib/Analysis/Distribution/Support.lean,Mathlib/Combinatorics/Graph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Integral/Average.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean,Mathlib/Order/Basic.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Core.lean,Mathlib/Tactic/GRewrite/Elab.lean,Mathlib/Topology/MetricSpace/ThickenedIndicator.lean,MathlibTest/GCongr/GCongr.lean,MathlibTest/GCongr/implications.lean,MathlibTest/GRewrite.lean |
22 |
39 |
['JovanGerb', 'PatrickMassot', 'Vierkantor', 'github-actions', 'leanprover-radar', 'mathlib-bors', 'mathlib-dependent-issues'] |
dwrensha assignee:dwrensha |
3-23886 3 days ago |
3-23886 3 days ago |
4-39658 4 days |
| 38587 |
dagurtomas author:dagurtomas |
feat(Tactic/CategoryTheory): concrete category boilerplate |
Adds `mk_concrete_category`, a command for generating the initial boilerplate for concrete categories whose morphisms are given by a bundled function type.
The command creates the wrapper `Hom` type, named category and concrete category instances, `ofHom`, `Hom.hom`, and the basic dsimp lemmas.
It handles parameterized categories such as `ModuleCat`, and has a paired additive/multiplicative form for generating both structures at once (e.g. `MonCat`/`AddMonCat`).
Includes test categories checking the generated declarations.
[](https://gitpod.io/from-referrer/)
|
LLM-generated
t-meta
t-category-theory
|
905/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/MkConcreteCategory.lean,MathlibTest/CategoryTheory/MkConcreteCategory.lean |
4 |
8 |
['dagurtomas', 'eric-wieser', 'github-actions'] |
adamtopaz assignee:adamtopaz |
3-16856 3 days ago |
6-7595 6 days ago |
6-7324 6 days |
| 38713 |
justus-springer author:justus-springer |
feat(Algebra/Category/ModuleCat/Sheaf/ChangeOfRings): API for `restrictScalars` |
Extend the `restrictScalars` API for presheaves and sheaves of modules to match the existing API in `ModuleCat/ChangeOfRings`.
For both `PresheafOfModules` and `SheafOfModules` we add:
- `restrictScalarsCongr`: restriction of scalars along equal morphisms are naturally isomorphic
- `restrictScalarsId'/restrictScalarsId`: restriction along the identity is naturally isomorphic to the identity functor
- `restrictScalarsComp'/restrictScalarsComp`: restriction along a composition is naturally isomorphic to the composition of restriction functors
- `restrictScalarsEquivalenceOfIso`: an isomorphism `R ≅ R'` of (pre)sheaves of rings induces an equivalence of categories of (pre)sheaves of modules.
We also move up the "simp barrier": `PresheafOfModules.restrictScalars` and `SheafOfModules.restrictScalars` are no longer `@[simps]` as they have their own API now.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
t-algebra
label:t-algebra$ |
326/5 |
Mathlib/Algebra/Category/ModuleCat/Presheaf/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafification.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/ChangeOfRings.lean |
3 |
6 |
['dagurtomas', 'github-actions', 'justus-springer'] |
joelriou assignee:joelriou |
3-16855 3 days ago |
10-68000 10 days ago |
12-440 12 days |
| 38720 |
tb65536 author:tb65536 |
feat(GroupTheory/Rank): nontrivial groups have positive rank |
This PR proves that nontrivial groups have positive rank.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
18/0 |
Mathlib/GroupTheory/Rank.lean |
1 |
2 |
['github-actions', 'wwylele'] |
mattrobball assignee:mattrobball |
3-16854 3 days ago |
8-35585 8 days ago |
13-49521 13 days |
| 38761 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/EllipticCurve/Jacobian/Point): remove erws |
- rewrites `neg_of_Z_ne_zero` with a `simp only` chain in place of the former `erw`
- rewrites `addXYZ_neg` by splitting the vector equality into coordinate goals handled by `rw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebraic-geometry
LLM-generated
|
5/3 |
Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean |
1 |
5 |
['dagurtomas', 'github-actions', 'yuanyi-350'] |
joelriou assignee:joelriou |
3-16853 3 days ago |
12-20182 12 days ago |
12-56076 12 days |
| 39133 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra/ModuleCat): exactness of restrictScalars for general universe level |
Currently exactness of `ModuleCat.restrictScalars` is synth via being adjoint functor, however this needs the universe level to be some `max u v` where `u` is the universe level of the ring. Here we provide exactness of restrictScalars for general universe level using it preserves short exact sequence.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
46/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRingsExact.lean |
2 |
1 |
['github-actions'] |
nobody |
3-5382 3 days ago |
3-4697 3 days ago |
3-4426 3 days |
| 38896 |
peabrainiac author:peabrainiac |
feat(Algebra): multiplicative torsors |
Introduce a class `Torsor` for torsors of multiplicative groups, as a multiplicative counterpart to the existing `AddTorsor` for torsors of additive groups.
---
Adopted / migrated from #8608.
[](https://gitpod.io/from-referrer/)
|
t-algebra
file-removed
label:t-algebra$ |
643/544 |
Mathlib.lean,Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/AddTorsor/Defs.lean,Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Torsor/Basic.lean,Mathlib/Algebra/Torsor/Defs.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean,Mathlib/LinearAlgebra/AffineSpace/Defs.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/Group/AddTorsor.lean,Mathlib/Topology/Algebra/MulAction.lean,scripts/noshake.json |
14 |
2 |
['github-actions', 'grunweg'] |
nobody |
3-2000 3 days ago |
3-1319 3 days ago |
8-82645 8 days |
| 38855 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Indexed): `≤` version of `ciSup_or'` for `ConditionallyCompleteLattice` |
Deprime `ciSup_or'` because there's no `ciSup_or`, and add a `≤` version (and dual) for `ConditionallyCompleteLattice`.
Only `≤` because equality does not hold when `p ≠ q` without `sSup ∅ = ⊥`.
---
`ciSup_or'` can't have a dual because there's no dual to `ConditionallyCompleteLinearOrderBot`.
[](https://gitpod.io/from-referrer/)
|
t-order |
8/1 |
Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
1 |
1 |
['github-actions'] |
nobody |
2-78766 2 days ago |
2-76061 2 days ago |
10-7809 10 days |
| 38856 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Indexed): `iSup_iSup_eq_{left/right}` for `ConditionallyCompleteLinearOrderBot` |
and `≤` versions for `ConditionallyCompleteLattice`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
32/9 |
Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
2 |
1 |
['github-actions'] |
nobody |
2-78603 2 days ago |
2-75492 2 days ago |
10-221 10 days |
| 37400 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Acyclic): endpoints of a path have at most one neighbor in the path |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
15/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
6 |
['Rida-Hamadani', 'Ruben-VandeVelde', 'SnirBroshi', 'bryangingechen', 'github-actions'] |
nobody |
2-77427 2 days ago |
40-58757 40 days ago |
43-10186 43 days |
| 39089 |
Whysoserioushah author:Whysoserioushah |
feat(RepresentationTheory): Define continuous representation |
co-authored-by : @rmhi
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
158/0 |
Mathlib.lean,Mathlib/RepresentationTheory/Continuous/Basic.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
3 |
9 |
['Whysoserioushah', 'github-actions', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
2-63278 2 days ago |
2-61665 2 days ago |
4-37223 4 days |
| 38220 |
wwylele author:wwylele |
feat(LinearAlgebra/AffineSpace): shifting a subspace towards a point |
Split off from #36018 and excluded the Simplex part. This is preparing to calculate the volume of a simplex by integrating the cross-section created by shifting the base plane. Part of https://github.com/leanprover-community/mathlib4/pull/34826.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
133/0 |
Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean |
2 |
5 |
['copilot-pull-request-reviewer', 'github-actions'] |
themathqueen assignee:themathqueen |
2-55849 2 days ago |
2-55428 2 days ago |
24-27160 24 days |
| 39110 |
SnirBroshi author:SnirBroshi |
chore(Data/Set): reduce defeq abuse of `Set α = α → Prop` |
These are among the first places that would fail if `Set α` wasn't defeq to `α → Prop`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
34/20 |
Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Defs.lean,Mathlib/Data/Set/Insert.lean,Mathlib/Data/Set/Prod.lean,Mathlib/Order/BooleanAlgebra/Set.lean |
5 |
14 |
['SnirBroshi', 'github-actions', 'leanprover-radar', 'themathqueen', 'vihdzp'] |
nobody |
2-38576 2 days ago |
2-37716 2 days ago |
3-59462 3 days |
| 38837 |
kbuzzard author:kbuzzard |
feat: add "higher instance priority" library note |
We add a library note explaining the logic in making instances like `Semiring.toModule` higher priority than the default.
---
[](https://gitpod.io/from-referrer/)
- [ ] depends on: #38704 [only because one of the claims in the note is false without it]
|
|
19/0 |
Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/HierarchyDesign.lean,Mathlib/Algebra/Module/Defs.lean |
4 |
5 |
['github-actions', 'kbuzzard', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-38019 2 days ago |
2-34970 2 days ago |
3-19319 3 days |
| 39150 |
wwylele author:wwylele |
chore(Algebra/LinearRecurrence): remove a defeq abuse |
The previous code abuses defeq between `Subtype E.IsSolution` (coming from `← Subtype.mk.injEq` rewrite) and `Subtype (· ∈ E.solSpace)` (coming from coercing submodule).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
tech debt
easy
label:t-algebra$ |
2/2 |
Mathlib/Algebra/LinearRecurrence.lean |
1 |
1 |
['github-actions'] |
nobody |
2-36476 2 days ago |
2-35687 2 days ago |
2-35416 2 days |
| 39152 |
wwylele author:wwylele |
chore(Algebra/BigOperators): remove a defeq abuse |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
tech debt
easy
label:t-algebra$ |
1/2 |
Mathlib/Algebra/BigOperators/Ring/Finset.lean |
1 |
1 |
['github-actions'] |
nobody |
2-36027 2 days ago |
2-34392 2 days ago |
2-34121 2 days |
| 39156 |
Deicyde author:Deicyde |
chore(LinearAlgebra/Pi): Fix typos in `Submodule.pi` docstring |
The docstring referenced `pi I s` (the parameter is named `p` not `s`) and `p a` (the bound variable is `i` not `a`).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
easy
new-contributor
label:t-algebra$ |
2/2 |
Mathlib/LinearAlgebra/Pi.lean |
1 |
3 |
['Deicyde', 'github-actions'] |
nobody |
2-32815 2 days ago |
2-31020 2 days ago |
2-30749 2 days |
| 38489 |
Jun2M author:Jun2M |
feat(Topology/Algebra/InfiniteSum): Generalize ENNReal lemmas |
This PR generalizes many theorems in Topology/Algebra/InfiniteSum/ENNReal.lean from `ENNREal` to any type that satisfies a list of order-related instances, mostly
`[CommMonoid α] [CompleteLattice α] [CanonicallyOrderedMul α] [TopologicalSpace α] [SupConvergenceClass α]`
Deprecation of the original `ENNReal` lemmas are done in the next PR: #38193.
Related Zulip thread: [#Is there code for X? > Summing `ENat`s without topology](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Summing.20.60ENat.60s.20without.20topology/with/588756615)
---
[](https://gitpod.io/from-referrer/)
|
|
261/3 |
Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean |
4 |
7 |
['Jun2M', 'SnirBroshi', 'github-actions', 'wwylele'] |
nobody |
2-29400 2 days ago |
2-27921 2 days ago |
18-10665 18 days |
| 39158 |
SnirBroshi author:SnirBroshi |
feat(LinearAlgebra/Matrix/Rank): generalize `Matrix.rank`/`LinearMap.rank` to semirings |
- Generalize `Matrix.rank` from `CommRing` to `CommSemiring`
- Generalize `LinearMap.rank` from `AddCommGroup`s over `Ring`s to `AddCommMonoid`s over `Semiring`s (which are the minimum requirements for `Module`)
- Many `Matrix.rank` theorems now require `StrongRankCondition` (which `CommRing` used to provide)
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
34/35 |
Mathlib/LinearAlgebra/Dimension/LinearMap.lean,Mathlib/LinearAlgebra/Matrix/Rank.lean |
2 |
1 |
['github-actions'] |
nobody |
2-27659 2 days ago |
2-26599 2 days ago |
2-26328 2 days |
| 37298 |
artie2000 author:artie2000 |
refactor(Algebra/Order): unbundle group and ring cone |
* Unbundle `GroupCone` and `RingCone` using `Submonoid.IsMulPointed`
The material in `Mathlib.Algebra.Group.Submonoid.Support` was created to treat uniformly
* positive cones in groups and rings
* pointed cones in vector spaces over an ordered field
* orderings in rings
This PR deprecates the [GroupCone](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Cone.html#GroupCone) and [RingCone](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Cone.html#RingCone) structures, making use of the predicates `Submonoid.IsMulPointed` and `AddSubmonoid.IsPointed` defined in that file instead.
See also #36863 for the analogous change to ring orderings.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
136/31 |
Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Ring/Cone.lean |
2 |
2 |
['github-actions', 'joneugster'] |
themathqueen assignee:themathqueen |
2-16794 2 days ago |
25-56536 25 days ago |
44-41396 44 days |
| 37477 |
kebekus author:kebekus |
feat: canonical decomposition of complex-meromorphic functions on disks |
Establish the Finite Canonical Decomposition of meromorphic functions, where a complex-meromorphic function `f` on a disk is written as a product of an analytic function without zeros and poles, and canonical factors that take only values of norm one on the boundary of the disk.
A future PR will extend this theorem to handle zeros/poles on the boundary of the disk.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
305/10 |
Mathlib.lean,Mathlib/Analysis/Complex/CanonicalDecomposition.lean,Mathlib/Analysis/Meromorphic/Order.lean,Mathlib/Analysis/Meromorphic/RCLike.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean |
5 |
4 |
['github-actions', 'j-loreaux', 'kebekus'] |
j-loreaux assignee:j-loreaux |
2-16793 2 days ago |
13-80954 13 days ago |
41-71797 41 days |
| 37712 |
eric-wieser author:eric-wieser |
feat: add a `LawfulXor` typeclass |
I've put this in mathlib since it can use `Function.Involutive`; it can of course be upstreamed at a later date.
Having this generalization encourages downstream code in cslib to be expressed in terms of involutive functions, rather than just `^^^` on bitvectors.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
130/0 |
Mathlib.lean,Mathlib/Data/LawfulXor.lean |
2 |
6 |
['eric-wieser', 'github-actions', 'linesthatinterlace'] |
joneugster assignee:joneugster |
2-16791 2 days ago |
7-16969 7 days ago |
14-7184 14 days |
| 37914 |
j-loreaux author:j-loreaux |
feat: transfer `star`-related instances across equivalences |
This also adds `Function.Injective.{InvolutiveStar,...}` and related lemmas.
In addition we rename the existing `Equiv.star` to `Equiv.Perm.star` (without a deprecation) so that the name can be used for the declaration which transfers a `Star` instance across an `Equiv`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
95/2 |
Mathlib.lean,Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/Pointwise.lean,Mathlib/Algebra/Star/TransferInstance.lean |
4 |
5 |
['SnirBroshi', 'github-actions', 'themathqueen'] |
themathqueen assignee:themathqueen |
2-16790 2 days ago |
2-74606 2 days ago |
19-39861 19 days |
| 37956 |
artie2000 author:artie2000 |
feat(Algebra/Polynomial): lemmas about polynomial degree |
* Add various small lemmas about polynomial degree
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
28/5 |
Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Degree/Operations.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Monic.lean,MathlibTest/hintAll.lean |
5 |
7 |
['artie2000', 'github-actions', 'vihdzp'] |
kim-em assignee:kim-em |
2-16789 2 days ago |
21-27683 21 days ago |
30-42301 30 days |
| 38214 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): add Euler's continued fraction |
This PR formalizes Euler’s continued fractions by providing `Euler` which construct one by giving head term and coefficients with some basic property.
We also introduce a transformation `GenContFract.toEuler` that maps a generalized continued fraction `g : GenContFract K` to an equivalent Euler-form continued fraction. |
new-contributor
t-algebra
label:t-algebra$ |
262/0 |
Mathlib.lean,Mathlib/Algebra/ContinuedFractions/Euler.lean |
2 |
15 |
['github-actions', 'mathlib-bors', 'wwylele'] |
themathqueen assignee:themathqueen |
2-16788 2 days ago |
19-44564 19 days ago |
19-46637 19 days |
| 38362 |
vihdzp author:vihdzp |
feat: cofinal subset of regular cardinal is isomorphic to it |
In set theory, one often identifies a cardinal `c` with its initial ordinal `c.ord`, and said ordinal with the lower set `Iio c.ord`. This is particularly pervasive in the theory of club and stationary subsets, where one often sees the hypothesis "let κ be a regular cardinal" in lieu of the more precise wording: that `κ` is an (infinite) well-order, whose order type equals the initial ordinal of its cardinality.
We define a typeclass `IsRegularCardinalOrder` for this assumption. The benefit of using it is that our results won't apply only to `Iio c.ord` for regular `c`, but also to concrete types such as `Nat`, `Cardinal`, or `Ordinal`.
As a proof of concept, we define `Order.enum`, a generalization of both `Nat.nth` and `Ordinal.enumOrd`. A future PR will deprecate the latter.
---
- [x] depends on: #38363
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
127/11 |
Mathlib.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Cofinality/Enum.lean,Mathlib/SetTheory/Cardinal/Cofinality/Ordinal.lean |
5 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
alreadydone assignee:alreadydone |
2-16786 2 days ago |
2-27015 2 days ago |
2-37561 2 days |
| 38409 |
chrisflav author:chrisflav |
feat(RingTheory): totally split algebras over a field |
We show that for a totally split algebra over a field, the `k`-rational points are in bijection with the prime spectrum. We also show that an étale algebra over a separably closed field is totally split.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
122/2 |
Mathlib/Algebra/Algebra/Pi.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Field.lean,Mathlib/RingTheory/TotallySplit.lean |
6 |
1 |
['github-actions'] |
mariainesdff assignee:mariainesdff |
2-16785 2 days ago |
19-56049 19 days ago |
19-62780 19 days |
| 38431 |
joelriou author:joelriou |
refactor(Topology): redefine Delta-generated spaces |
Delta-generated spaces are made particular cases of `X`-generated spaces, where `X` is a family of topological spaces.
---
- [x] depends on: #38080
- [x] depends on: #37799
[](https://gitpod.io/from-referrer/)
|
t-topology
large-import
|
139/208 |
Mathlib/Topology/Category/DeltaGenerated.lean,Mathlib/Topology/Compactness/DeltaGeneratedSpace.lean,Mathlib/Topology/Convenient/Category.lean,Mathlib/Topology/Convenient/GeneratedBy.lean |
4 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
ADedecker assignee:ADedecker |
2-16784 2 days ago |
6-44367 6 days ago |
6-44096 6 days |
| 38449 |
WenrongZou author:WenrongZou |
feat(MvPowerSeries): some lemmas about `subst` of infinite sum |
In this PR, I add some lemmas about substituion of a infinite sum equal to infinite sum of substitution.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
34/0 |
Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
chrisflav assignee:chrisflav |
2-16783 2 days ago |
12-79517 12 days ago |
18-46903 18 days |
| 38488 |
b-mehta author:b-mehta |
feat(Data/Finset/Card): iterating a function's image on a finite set stabilises |
...and does so in a bounded number of steps (which is why this is Finset-specific).
In a later PR, I'll add this for endofunctions on a fintype, as well as add a Set.Finite version.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
40/0 |
Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Image.lean |
2 |
16 |
['SnirBroshi', 'b-mehta', 'github-actions'] |
joneugster assignee:joneugster |
2-16781 2 days ago |
17-82728 17 days ago |
18-15772 18 days |
| 38539 |
plp127 author:plp127 |
fix(Data/Bool/Basic): fix `Bool.not` problem |
Fix three lemmas which have a subterm of the form `!a = b`, which elaborates to `(!(decide (a = b))) = true`, where `(!a) = b` was probably intended. These were introduced in #534.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
3/3 |
Mathlib/Data/Bool/Basic.lean |
1 |
2 |
['github-actions', 'grunweg'] |
joneugster assignee:joneugster |
2-16780 2 days ago |
17-13052 17 days ago |
17-12781 17 days |
| 38583 |
kim-em author:kim-em |
feat(LinearAlgebra/Matrix/GeneralLinearGroup): polynomial functions on matrices over an infinite field are determined by their values on GL |
This PR adds `MvPolynomial.eq_of_eval_eq_on_gl`: two polynomials in `MvPolynomial (m × m) k` over an infinite field `k` are equal whenever their evaluations agree at every invertible matrix.
The proof multiplies by the generic determinant `det (Matrix.mvPolynomialX m m k)` so that `MvPolynomial.funext` applies (covering both invertible and non-invertible specializations of the variables), then divides by it (it is nonzero by `Matrix.det_mvPolynomialX_ne_zero`) using that the polynomial ring is an integral domain.
The lemma is useful when reasoning about polynomial representations of `GL n k`, where natural identities are easiest to check on `GL n k` itself but the final statement lives at the level of polynomials.
The lemma is placed in a new file `Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/MvPolynomial.lean` because the existing `Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean` is upstream of `Adjugate`, which is itself upstream of `GeneralLinearGroup.Defs` — so we cannot import `GeneralLinearGroup.Defs` from `Matrix.MvPolynomial` without creating a cycle.
🤖 Prepared with Claude Code |
t-algebra label:t-algebra$ |
60/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/MvPolynomial.lean |
2 |
4 |
['SnirBroshi', 'github-actions', 'wwylele'] |
dagurtomas assignee:dagurtomas |
2-16778 2 days ago |
14-11467 14 days ago |
15-41163 15 days |
| 38584 |
TJHeeringa author:TJHeeringa |
feat(Analysis/InnerProductSpace/Reproducing): Add outerKernel, mem_iff |
---
Adds the `outerKernel` definition and the theorem `mem_iff`. These are needed for proving statements involving embeddings of RKHS.
I can split `mem_of_posSemidef` and `mem_iff` off into a different pull request if that is preferred.
The theorems `mem_of_posSemidef` and `posSemidef_of_mem` are the two directions of `mem_iff`. `posSemidef_of_mem` is slightly stronger than the converse direction of `mem_iff` in the sense that it also specifies the constant `c` in the statement. The specified `c` is in fact the smallest possible `c` for which the statement holds.
The statement `mem_of_posSemidef` proves `∃ (g : H), (g : X → V) = f`. We could instead write `f ∈ (coeCLM 𝕜 (H:=H)).range`. Making this change would require the addition of the line `simp only [LinearMap.mem_range, coe_coe, coeCLM_apply]` in the beginning of the proof. The full beginning is then
```
lemma mem_of_posSemidef (f : X → V) {c : ℝ}
(hc : ((c : 𝕜) ^ 2 • kernel H - outerKernel 𝕜 f).PosSemidef) : f ∈ (coeCLM 𝕜 (H:=H)).range := by
simp only [LinearMap.mem_range, coe_coe, coeCLM_apply]
let Laux : ...
```
Making a `MemRKHS` like MemLp and MemSobolev and then writing `MemRKHS H f` is also an option. Happy to change it to whatever is preferred.
The proof of `mem_of_posSemidef` is based on the idea that any function f in the RKHS satisfies `=\sum_{n} ` for `x_n\in X` and `v_n\in V` by the reproducing property. We define the operator L(\sum_n K(\cdot,x_n)v_n) = \sum_{n} . This is bounded by the condition based on the kernels, and thus extends to a bounded linear operator on the RKHS. Its Riesz' representer agrees pointwise with f.
AI:
When asking how to avoid Classical.choose in constructing the operator L, Claude suggested the approach of going through the quotient. I made the proof using Claude as supplementary Loogle. Afterwards, I asked it to help shorted the proofs. Some suggestions for `mem_of_posSemidef` were applied. The other suggestions were not helping or not correct.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
122/1 |
Mathlib/Analysis/InnerProductSpace/Reproducing.lean |
1 |
7 |
['TJHeeringa', 'github-actions', 'themathqueen'] |
j-loreaux assignee:j-loreaux |
2-16777 2 days ago |
2-40904 2 days ago |
15-42572 15 days |
| 38628 |
tautschnig author:tautschnig |
feat(Data/ZMod/Basic): unit characterization for ZMod (p ^ d) |
Add two lemmas characterizing units in `ZMod (p ^ d)` for a prime `p`:
* `ZMod.isUnit_natCast_of_not_dvd_pow`: a natural number not divisible by `p` is a unit in `ZMod (p ^ d)`.
* `ZMod.prime_natCast_not_isUnit_pow`: the prime `p` is not a unit in `ZMod (p ^ d)` when `d ≥ 1`.
These complement the existing `isUnit_prime_iff_not_dvd` (which characterizes when a *prime* is a unit in `ZMod n`) by characterizing when an *arbitrary* natural number is a unit in `ZMod (p ^ d)`.
**Motivation.** Arithmetic verification over fixed-width bitvectors works in `ZMod (2 ^ d)`. A Gröbner basis solver over this ring needs to know which constants are invertible: odd constants are units (enabling algebraic simplification), while even constants are not (requiring fallback to SAT). These lemmas formalize that characterization for any prime, not just 2.
Further work related to Gröbner basis will be published once #29203 (and, before that, #34873) have been merged.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
12/0 |
Mathlib/Data/ZMod/Basic.lean |
1 |
4 |
['dagurtomas', 'github-actions'] |
joneugster assignee:joneugster |
2-16776 2 days ago |
6-75295 6 days ago |
14-63726 14 days |
| 38649 |
chrisflav author:chrisflav |
chore(RingTheory): equality of linear map with values in finite module spreads out |
We add some corollaries of `Module.Finite.exists_smul_of_comp_eq_of_isLocalizedModule`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
75/1 |
Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Localization/Module.lean |
3 |
2 |
['github-actions'] |
alreadydone assignee:alreadydone |
2-16775 2 days ago |
14-54700 14 days ago |
14-54429 14 days |
| 38698 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory/Regular): freeness of `QuotSMulTop` |
For finitely generated module `M` over Noetherian local ring `(R, m)`, if `x ∈ m` is `M`-regular, `M/xM` is free over `R/(x)` iff `M` is free over `R`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
114/0 |
Mathlib.lean,Mathlib/RingTheory/Regular/Free.lean |
2 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
2-16774 2 days ago |
6-51701 6 days ago |
14-5859 14 days |
| 38974 |
Brian-Nugent author:Brian-Nugent |
chore: fix documentation of `LocallyQuasiFinite` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
easy
|
6/5 |
Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
2-16772 2 days ago |
7-28434 7 days ago |
7-28163 7 days |
| 39018 |
khwilson author:khwilson |
feat(Topology/Separation/Regular): facts about `nhdsSet` in normal spaces |
A few lemmas about `nhdsSet` in normal spaces that mirror `nhds` in regular spaces. Originally built as part of a proof of Michael's Selection Theorem, that didn't make the final cut, but nonetheless seemed useful to the library.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
24/0 |
Mathlib/Topology/Separation/Regular.lean |
1 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
2-16771 2 days ago |
6-10198 6 days ago |
6-9927 6 days |
| 39033 |
tb65536 author:tb65536 |
feat(Analysis/DirichletEigenvalue): Dirichlet eigenvalues of a set |
This PR defines the Dirichlet eigenvalues of a set (in the sense of "can you hear the shape of a drum").
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
58/0 |
Mathlib.lean,Mathlib/Analysis/DirichletEigenvalue.lean |
2 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
2-16770 2 days ago |
5-60372 5 days ago |
5-60101 5 days |
| 39063 |
khwilson author:khwilson |
feat(Topology/Algebra/Module/LocallyConvex): a very nice basis of locally convex spaces |
In proving facts about locally convex spaces, you often work with a basis of the neighborhoods of 0 that are open, symmetric, convex, antitone, and have the property that `V (n + 1) + V (n + 1) ⊆ V n` and `closure (V (n + 1)) ⊆ V n`.
These lemmas construct such a basis.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
89/0 |
Mathlib/Topology/Algebra/Group/Pointwise.lean,Mathlib/Topology/Algebra/Module/LocallyConvex.lean |
2 |
2 |
['github-actions', 'khwilson'] |
j-loreaux assignee:j-loreaux |
2-16769 2 days ago |
4-27050 4 days ago |
5-6259 5 days |
| 39101 |
ldct author:ldct |
feat: Tag exp_nat_mul and exp_int_mul |
Tag these two lemmas to allow
- pushing the `^` in `(exp ...)^...`
- pushing the `exp` in `exp (... * ...)`
and add unit tests.
Also tag the real versions, and `exp 0` for `push exp`
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
28/2 |
Mathlib/Analysis/Complex/Exponential.lean,MathlibTest/push.lean |
2 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
2-16765 2 days ago |
4-13895 4 days ago |
4-14685 4 days |
| 39107 |
SnirBroshi author:SnirBroshi |
feat(Geometry/Manifold/ChartedSpace): `H ≃ₜ M` → `ChartedSpace H M` |
---
I thought it was strange that `Homeomorph`s didn't have this easy dot-notation, though I'm not familiar with this part of the library so I might be missing something.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
6/0 |
Mathlib/Geometry/Manifold/ChartedSpace.lean |
1 |
1 |
['github-actions'] |
PatrickMassot assignee:PatrickMassot |
2-16764 2 days ago |
3-80876 3 days ago |
3-80605 3 days |
| 38275 |
TTony2019 author:TTony2019 |
feat: Add `AffineEquiv.image_intrinsicInterior` |
## Summary
This PR generalizes the existing lemma `AffineIsometry.image_intrinsicInterior` to the setting of affine equivalences, yielding the corresponding result `AffineEquiv.image_intrinsicInterior`.
Since affine equivalences are more general than affine isometries, the proof requires an additional finite-dimensionality assumption. The key extra input is that in finite-dimensional spaces, an affine equivalence induces a homeomorphism via `AffineEquiv.toHomeomorphOfFiniteDimensional`, so the assumptions are adjusted accordingly.
Apart from these extra assumptions, the argument is essentially the same as for `AffineIsometry.image_intrinsicInterior`.
## Collaboration
This PR was developed together with @imathwy.
|
t-analysis
new-contributor
|
252/41 |
Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/LinearAlgebra/AffineSpace/Restrict.lean,Mathlib/Topology/Algebra/AffineSubspace.lean,Mathlib/Topology/Homeomorph/Defs.lean |
5 |
25 |
['github-actions', 'imathwy', 'j-loreaux', 'themathqueen'] |
j-loreaux assignee:j-loreaux |
2-9084 2 days ago |
2-9084 2 days ago |
10-34417 10 days |
| 39098 |
BoltonBailey author:BoltonBailey |
chore(Data/Vector): add `grind` to cons lemmas |
This PR affects `List.Vector.head_cons` and `List.Vector.tail_cons`. It moves the simp attribute assignment of these lemmas to the lemma declarations and also applies the `grind =` attribute.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
2/2 |
Mathlib/Data/Vector/Basic.lean,Mathlib/Data/Vector/Defs.lean |
2 |
2 |
['github-actions'] |
nobody |
2-2402 2 days ago |
1-86354 1 day ago |
4-34495 4 days |
| 38786 |
martinwintermath author:martinwintermath |
feat(Data/SetLike): add `IsConcreteNeg` |
Add file `SetLike/Pointwise.lean` with main definition `class IsConcreteNeg` which expresses that a given `Neg` on a `SetLike` objects is compatible with the injection into sets.
This is in analogy to `SetLike.IsConcreteLE`.
For demonstration:
- we rework negation on `Submodule` to make use of `IsConcreteNeg`
- we provide `Neg` in `AffineSubspace`
---
[](https://gitpod.io/from-referrer/)
|
t-data |
185/20 |
Mathlib.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Data/SetLike/Pointwise.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Pointwise.lean,Mathlib/LinearAlgebra/Span/Basic.lean |
6 |
2 |
['github-actions', 'mathlib-bors'] |
nobody |
1-83399 1 day ago |
7-38602 7 days ago |
7-38558 7 days |
| 38785 |
scholzhannah author:scholzhannah |
feat: use `alias_in` attribute for CW complexes |
Using the `alias_in` attribute for classical CW complexes to get rid of the `export` sections.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
103/58 |
Mathlib/Topology/CWComplex/Classical/Basic.lean,Mathlib/Topology/CWComplex/Classical/Finite.lean,Mathlib/Topology/CWComplex/Classical/Subcomplex.lean |
3 |
8 |
['github-actions', 'grunweg', 'scholzhannah'] |
grunweg, mcdoll, urkud assignee:urkud assignee:grunweg assignee:mcdoll |
1-78396 1 day ago |
1-77795 1 day ago |
11-65433 11 days |
| 39084 |
scholzhannah author:scholzhannah |
feat: generalize `OpenPartialHomeomorph.Defs` file to `PartialHomeomorph` |
As discussed on Zulip ([#mathlib4 > Generalizing `PartialHomeomorph`?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Generalizing.20.60PartialHomeomorph.60.3F/with/536896273)), I renamed `PartialHomeomorph` to `OpenPartialHomeomorph` in #29113.
In this PR I now add a new `PartialHomeomorph` which is a `PartialEquiv` that is continuous on both source and target. An `OpenPartialHomeomorph` is then a `PartialHomeomorph` that additionally has open source and target. In subsequent PRs I will generalize the other files. See this draft PR (#39071) for what I think the end result might be.
`PartialHomeomorph` should find uses at least for manifolds (`ModelWithCorners`). Afterwards, I want to add a `ClosedPartialHomeomorph` to use for CWComplexes.
---
I don't have a lot of experience doing these kind of modifications of a large piece of code. Additionally, I am not familiar with the main uses of `OpenPartialHomeomorph` in Mathlib. So while I did this to the best of my abilities, you should read this carefully because there might be things I did wrong or in non-ideal ways.
[](https://gitpod.io/from-referrer/)
|
t-topology |
286/47 |
Mathlib.lean,Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/NormLeOne.lean,Mathlib/Topology/FiberBundle/Trivialization.lean,Mathlib/Topology/OpenPartialHomeomorph/Basic.lean,Mathlib/Topology/OpenPartialHomeomorph/Composition.lean,Mathlib/Topology/OpenPartialHomeomorph/Constructions.lean,Mathlib/Topology/OpenPartialHomeomorph/Defs.lean,Mathlib/Topology/OpenPartialHomeomorph/IsImage.lean,Mathlib/Topology/PartialHomeomorph/Defs.lean |
12 |
1 |
['github-actions'] |
grunweg and j-loreaux assignee:j-loreaux assignee:grunweg |
1-78227 1 day ago |
4-54049 4 days ago |
4-53778 4 days |
| 38775 |
Raph-DG author:Raph-DG |
feat(Topology): skyscraper sheaves are flasque |
In this PR we show that skyscraper sheaves are flasque. In particular, we show that a skyscraper sheaf valued in an object A whose map to the terminal object is an epimorphism is a flasque sheaf. We also show the useful corollary that in particular, any skyscraper sheaf is flasque if the sheaf takes values in a category with a zero object
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
39/0 |
Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean,Mathlib/Topology/Sheaves/Flasque.lean,Mathlib/Topology/Sheaves/Skyscraper.lean |
3 |
7 |
['Raph-DG', 'dagurtomas', 'github-actions', 'j-loreaux'] |
PatrickMassot and dagurtomas assignee:PatrickMassot assignee:dagurtomas |
1-77310 1 day ago |
1-76149 1 day ago |
9-1564 9 days |
| 37443 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walk/Operations): permutations of support |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
17/0 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean |
2 |
6 |
['YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] |
YaelDillies assignee:YaelDillies |
1-75468 1 day ago |
1-75840 1 day ago |
41-59215 41 days |
| 38319 |
Zetetic-Dhruv author:Zetetic-Dhruv |
feat(Combinatorics/SetFamily): Assouad's dual VC bound |
Adds the Finset-level form of Assouad's 1983 dual VC bound: if a family
`𝒜 : Finset (Finset α)` has VC dimension at most `d`, then for any
ground set `X : Finset α` the dual family
`{𝒜.filter (· ∋ x) : x ∈ X}` has VC dimension at most `2 ^ (d + 1) - 1`.
New declarations (in `Finset` namespace):
- `dualFamily 𝒜 X`: for each `x ∈ X`, the subfamily `{A ∈ 𝒜 | x ∈ A}`
- `mem_dualFamily` (`@[simp]`): membership characterisation
- `exists_shatters_of_dualFamily_shatters`: Assouad's bitstring-coding lemma
- `vcDim_dualFamily_le`: the headline VC bound
Proof by Assouad's classical bitstring-coding argument. Sits on top of `Finset.shatterer` / `Finset.vcDim` from
`Mathlib.Combinatorics.SetFamily.Shatter`.
References:
- P. Assouad, Densite et dimension, Ann. Inst. Fourier 33(3) (1983), Thm 2.13
- J. Matousek, Lectures on Discrete Geometry, GTM 212, Springer, 2002, Section 10.3 Lemma 10.3.3
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
199/0 |
Mathlib.lean,Mathlib/Combinatorics/SetFamily/DualVC.lean,docs/references.bib |
3 |
34 |
['Shreyas4991', 'YaelDillies', 'Zetetic-Dhruv', 'github-actions'] |
nobody |
1-74393 1 day ago |
1-73727 1 day ago |
19-69150 19 days |
| 39187 |
yuanyi-350 author:yuanyi-350 |
refactor(Analysis): golf `Mathlib/Analysis/Normed/Operator/LinearIsometry` |
- shortens the `EquivLike` instance for `LinearIsometryEquiv` by reusing `toLinearEquiv_injective` and `DFunLike.ext'`
Extracted from #37968
[](https://gitpod.io/from-referrer/) |
codex
t-analysis
LLM-generated
|
1/7 |
Mathlib/Analysis/Normed/Operator/LinearIsometry.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
nobody |
1-73926 1 day ago |
1-72855 1 day ago |
1-72584 1 day |
| 39186 |
kbuzzard author:kbuzzard |
perf(RingTheory/LaurentSeries): add some instances |
Typeclass inference was expensively failing at some point in `LaurentSeries.valuation_compare` without these instances.
---
[](https://gitpod.io/from-referrer/)
Discovered by getting Claude Code to edit Lean's typeclass inference algorithm and then compile lean and mathlib and see what breaks. Found out that typeclass inference is going down a big hole in this file; this fixes the hole.
|
t-ring-theory |
9/0 |
Mathlib/RingTheory/LaurentSeries.lean |
1 |
3 |
['github-actions', 'kbuzzard', 'leanprover-radar'] |
nobody |
1-73633 1 day ago |
1-74365 1 day ago |
1-74094 1 day |
| 26304 |
Raph-DG author:Raph-DG |
feat(AlgebraicGeometry): Pushforward of algebraic cycles |
In this PR we define a notion of the "pushfoward of functions with locally finite support". We give this PR the suggestive title "pushforward of algebraic cycles" because we will go on to model algebraic cycles on a scheme X as functions from X to the integers with locally finite support.
- [x] depends on: #26225
- [x] depends on: #26259
- [x] depends on: #35807
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
242/0 |
Mathlib.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Constructible.lean,Mathlib/Topology/LocallyFinsupp/Pushforward.lean,Mathlib/Topology/Maps/Proper/Basic.lean,Mathlib/Topology/Spectral/ConstructibleTopology.lean |
6 |
45 |
['Raph-DG', 'chrisflav', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
joelriou assignee:joelriou |
1-72999 1 day ago |
1-72496 1 day ago |
30-25111 30 days |
| 39190 |
tb65536 author:tb65536 |
chore(RingTheory/LocalRing/ResidueField/Fiber): namespace file |
This PR adds an `Ideal` namespace to `Fiber.lean` and adds a deprecation for one declaration that should be in this namespace.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
9/3 |
Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean |
1 |
1 |
['github-actions'] |
nobody |
1-72314 1 day ago |
1-72314 1 day ago |
1-72043 1 day |
| 39184 |
yuanyi-350 author:yuanyi-350 |
refactor(Analysis): golf `Mathlib/Analysis/Normed/Module/FiniteDimension` |
- rewrites `SecondCountableTopology (E →L[𝕜] F)` using a finite-dimensional equivalence and `e₂.toHomeomorph.secondCountableTopology`
- moves `ContinuousLinearEquiv.piRing` next to the argument that reuses it
Extracted from #37968
[](https://gitpod.io/from-referrer/) |
codex
t-analysis
LLM-generated
|
33/68 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
nobody |
1-68761 1 day ago |
1-68041 1 day ago |
1-74272 1 day |
| 39188 |
yuanyi-350 author:yuanyi-350 |
refactor(Analysis): golf `Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform` |
- shortens the `verticalIntegral_norm_le` proof by replacing the case split on `c` with `Set.abs_sub_left_of_mem_uIcc`
Extracted from #37968
[](https://gitpod.io/from-referrer/) |
codex
t-analysis
LLM-generated
|
1/7 |
Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
nobody |
1-65700 1 day ago |
1-69226 1 day ago |
1-72112 1 day |
| 36739 |
mbkybky author:mbkybky |
feat(RingTheory): UFD criteria via height `1` prime ideals and localization |
We prove the following UFD criteria via height `1` prime ideals and localization:
1. Let `R` be a Noetherian domain. Then `R` is a UFD if and only if every height `1` prime ideal is principal.
2. Let `R` be a Noetherian domain, `x ∈ R` be a prime element. If `Rₓ` is a UFD, then `R` is also a UFD.
- [x] depends on: #38933
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
193/2 |
Mathlib.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/RingTheory/Ideal/UFD.lean,Mathlib/RingTheory/Localization/Away/Basic.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Localization.lean |
6 |
20 |
['chrisflav', 'github-actions', 'mathlib-dependent-issues', 'mbkybky', 'tb65536'] |
chrisflav assignee:chrisflav |
1-59748 1 day ago |
1-57759 1 day ago |
55-59184 55 days |
| 38755 |
TJHeeringa author:TJHeeringa |
feat(Analysis/innerProductSpace/GramMatrix): Add Gram.posSemidef_of_mapL |
---
`Analysis/innerProductSpace/TensorProduct` has a TODO for a continuous version of `TensorProduct.map`. One place which contains a proof for this is at [stack](https://math.stackexchange.com/a/3934668). This PR is lemma 1 of that.
It is written with `.PosSemidef` instead of `≤` because the Löwner Order on matrices is only defined in lean for matrices with values in `𝕜`.
No AI used.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
21/0 |
Mathlib/Analysis/InnerProductSpace/GramMatrix.lean |
1 |
14 |
['TJHeeringa', 'github-actions', 'j-loreaux', 'themathqueen'] |
urkud assignee:urkud |
1-59239 1 day ago |
1-59239 1 day ago |
11-36273 11 days |
| 38047 |
mbkybky author:mbkybky |
feat(RingTheory/Finiteness/Ideal): `I` is finitely generated if `f(I)` and `I ∩ ker(f)` are finitely generated |
Let `f : R →+* S` be a surjective ring homomorphism, and let `I` be an ideal of `R`. If `f(I)` and `I ∩ ker(f)` are finitely generated ideals, then `I` is also finitely generated.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
13/3 |
Mathlib/RingTheory/Finiteness/Ideal.lean |
1 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
1-59161 1 day ago |
1-57439 1 day ago |
27-85909 27 days |
| 38500 |
kebekus author:kebekus |
feat: integral presentation of the proximity function of value distribution theory |
If `f : ℂ → ℂ` is meromorphic, establish a presentation of the proximity function `proximity f ⊤` as iterated circle averages. This statement can be used to compare the proximity- and logarithmic counting functions, and is one of the key ingredients in the proof of Cartan's classic formula for the characteristic function.
This is the first section of a multi-part PR, establishing Cartan's formula.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
211/0 |
Mathlib.lean,Mathlib/Analysis/Complex/ValueDistribution/Proximity/IntegralPresentation.lean |
2 |
11 |
['github-actions', 'kebekus', 'wwylele'] |
sgouezel assignee:sgouezel |
1-59080 1 day ago |
1-58154 1 day ago |
17-80548 17 days |
| 39157 |
vihdzp author:vihdzp |
feat: `Nat.cast` commutes with addition |
---
[](https://gitpod.io/from-referrer/)
|
|
26/9 |
Mathlib/Data/Nat/Cast/Commute.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean |
2 |
2 |
['github-actions', 'plp127'] |
nobody |
1-57082 1 day ago |
2-29306 2 days ago |
2-29035 2 days |
| 39203 |
FordUniver author:FordUniver |
refactor(Analysis/Calculus/Gradient): ungate inner_gradient lemmas |
Removes superfluous differentiability hypotheses (plus `UniqueDiffWithinAt` for the `Within` versions) from the four `inner_gradient[Within]_[left|right]` lemmas: `gradient` is defined as `(toDual 𝕜 F).symm (fderiv 𝕜 f x)`, so `⟪∇ f x, y⟫ = fderiv 𝕜 f x y` holds unconditionally since both sides are zero when `f` is not differentiable at `x`.
---
Genuinely unsure about this one because the only call I currently have in my code itself has the differentiability hypothesis. But including unused (or unnecessary) assumptions seems not intentional? My best guess is that the hypotheses were included by analogy with `HasGradientAt.fderiv_apply`, which genuinely needs them. This PR drops the hypotheses and rewrites the proofs through the isomorphism directly; no existing mathlib callers pass the now-redundant arguments. |
t-analysis |
10/10 |
Mathlib/Analysis/Calculus/Gradient/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
1-55806 1 day ago |
1-55365 1 day ago |
1-55094 1 day |
| 39196 |
tb65536 author:tb65536 |
feat(RingTheory/LocalRing/ResidueField/Fiber): the localization of `Ideal.Fiber` is a quotient |
This PR proves that the localization of `Ideal.Fiber` is a quotient. This will be applied in #39189 to prove the ramification-inertia formula for finite flat extensions.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
48/0 |
Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean |
1 |
1 |
['github-actions'] |
nobody |
1-55761 1 day ago |
1-55761 1 day ago |
1-55490 1 day |
| 36643 |
Thmoas-Guan author:Thmoas-Guan |
feat(Homology): interaction of projective and injective dimension and SES |
In this PR, we directly implemented the relation of `projectiveDimension` and `injectiveDimension` in SES.
---
- [ ] depends on: #36817
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
148/0 |
Mathlib/Algebra/Homology/ShortComplex/Exact.lean,Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean |
3 |
4 |
['dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
adamtopaz assignee:adamtopaz |
1-55091 1 day ago |
1-54434 1 day ago |
37-45974 37 days |
| 39202 |
FordUniver author:FordUniver |
feat(Analysis/Calculus/Gradient): add toDual_gradient and companions |
Add `toDual_gradient`, `toDual_gradientWithin`, and the composed variants `toDual_comp_gradient`, `toDual_comp_gradientWithin` — the natural inverse direction of the gradient's defining equation `∇ f x := (toDual 𝕜 F).symm (fderiv 𝕜 f x)`. These identify `(toDual 𝕜 F) (∇ f x)` with `fderiv 𝕜 f x` (and the `gradientWithin` and composed forms with the corresponding fderiv versions), making the Riesz isomorphism between the two derivative views explicit. The proofs of `DifferentiableAt.hasGradientAt` and `DifferentiableWithinAt.hasGradientWithinAt` in the same file are simplified to use them.
---
Came up while formalizing the descent lemma for Lipschitz-smooth functions, where being able to switch between `LipschitzWith K (fderiv ℝ f)` and `LipschitzWith K (∇ f)` is helpful, which with this PR becomes `toDual_comp_gradient ▸ (toDual ℝ F).isometry.lipschitzWith_iff K`. Also slightly simplifies two call sites in mathlib. |
|
16/3 |
Mathlib/Analysis/Calculus/Gradient/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
1-55057 1 day ago |
1-54871 1 day ago |
1-54600 1 day |
| 39109 |
mbkybky author:mbkybky |
feat(RingTheory/LocalProperties): `Module.FinitePresentation` is a local property |
We show that if there exists a set `{ r }` of `R` such that `Mᵣ` is a finitely presented `Rᵣ`-module for each `r`, then `M` is a finitely presented `R`-module.
Co-authored-by: Sihan Su @su00000
Co-authored-by: Yi Song @syur2
From the [Local Properties of Modules](https://github.com/mbkybky/module_localProperties) project.
- [x] depends on: #39112
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
99/10 |
Mathlib.lean,Mathlib/RingTheory/LocalProperties/FinitePresentation.lean,Mathlib/RingTheory/Localization/Finiteness.lean |
3 |
5 |
['github-actions', 'mathlib-dependent-issues', 'robin-carlier'] |
nobody |
1-54971 1 day ago |
1-54971 1 day ago |
3-35318 3 days |
| 37848 |
rwst author:rwst |
feat(RingTheory/PowerSeries/Log): log and exp as inverses |
This adds the lemmas `exp_subst_log` and `log_subst_exp_sub_one`, together with two helpers needed for the proofs.
Note: I'm using Claude + Opus for supervised formalization tasks. Claude has no permission to use git on my machine.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
LLM-generated
|
88/0 |
Mathlib/RingTheory/PowerSeries/Log.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
2 |
9 |
['chrisflav', 'github-actions', 'rwst'] |
chrisflav assignee:chrisflav |
1-54831 1 day ago |
1-54831 1 day ago |
32-36253 32 days |
| 37464 |
martinwintermath author:martinwintermath |
feat(Geometry/Convex/Cone): Minor additions to pointed cones |
Minor additions to pointed cones:
* `PointedCone.ofSubmodule_le_ofSubmodule` and `PointedCone.ofSubmodule_lt_ofSubmodule`. These are not made simp lemmas, instead the underlying `Submodule.restrictScalars_le` and `Submodule.restrictScalars_lt` have been changed into simp lemmas.
* `PointedCone.hull_le_span` as a short form of `Submodule.span_le_restrictScalars R≥0 R s`
Co-authored by: Artie Khovanov
---
In preparation of #36605.
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
maintainer-merge
|
22/16 |
Mathlib/Algebra/Module/Submodule/RestrictScalars.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean |
2 |
24 |
['YaelDillies', 'artie2000', 'github-actions', 'justus-springer', 'martinwintermath', 'mathlib-merge-conflicts', 'ooovi', 'vihdzp'] |
nobody |
1-54278 1 day ago |
1-51984 1 day ago |
40-78917 40 days |
| 38801 |
TBUGTB author:TBUGTB |
feat(Topology/Order): order topology on WithTop API lemmas |
Upstream lemmas on the order topology on WithTop from the brownian motion project.
Co-authored-by: Kexing Ying
---
[](https://gitpod.io/from-referrer/)
|
t-topology
brownian
new-contributor
|
12/0 |
Mathlib/Order/Filter/AtTopBot/Basic.lean |
1 |
13 |
['TBUGTB', 'github-actions', 'j-loreaux', 'plp127', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
1-52439 1 day ago |
1-50088 1 day ago |
10-73528 10 days |
| 39206 |
FordUniver author:FordUniver |
feat(Analysis/Calculus/AddTorsor/AffineMap): smoothness of AffineMap.lineMap |
Add `AffineMap.lineMap_contDiff_uncurry` (joint smoothness in all three arguments), `AffineMap.lineMap_contDiff` (smoothness in the parameter with fixed endpoints), and the composition family `ContDiff.lineMap`, `ContDiffOn.lineMap`, `ContDiffAt.lineMap`, `ContDiffWithinAt.lineMap`, mirroring the corresponding `Continuous` family in `Mathlib.Topology.Algebra.Affine`. The uncurried and `ContDiffWithinAt` forms are tagged `@[fun_prop]` so the rest are automatically derivable. Closes the TODO at `Mathlib.MeasureTheory.Integral.CurveIntegral.Poincare:333` where the proof now reduces to `fun_prop`.
---
Came up while formalizing the descent lemma for Lipschitz-smooth functions, where `Path.segment a b` being smooth on the unit interval is needed to apply [FTC along the segment](https://github.com/FordUniver/mathlib4/pull/21); `AffineMap.lineMap_contDiff` is the lemma directly used there. Two things I was genuinely not quite sure about:
1. Should the **three convenience variants** `ContDiffAt.lineMap`, `ContDiffOn.lineMap`, and `ContDiff.lineMap` be included? They are not strictly necessary but they exist for users wanting to write `h₁.lineMap h₂ hg` in dot notation by hand, and they mirror the convention of the `Continuous.lineMap` family.
2. Is `Mathlib.Analysis.Calculus.AddTorsor.AffineMap` the **right home**, and is adding `public import Mathlib.Analysis.Calculus.AddTorsor.AffineMap` to `Poincare.lean` to close the TODO reasonable? The placement mirrors the `Continuous.lineMap` family in `Mathlib.Topology.Algebra.Affine`, but hiding a `@[fun_prop]` in a file at the bottom of the hierarchy and needing to import it feels a bit off. |
t-measure-probability |
56/4 |
Mathlib/Analysis/Calculus/AddTorsor/AffineMap.lean,Mathlib/MeasureTheory/Integral/CurveIntegral/Poincare.lean |
2 |
1 |
['github-actions'] |
nobody |
1-51462 1 day ago |
1-50758 1 day ago |
1-50487 1 day |
| 39067 |
mbkybky author:mbkybky |
feat(Algebra/Module): define modules admitting finite free resolutions |
We say that an `R`-module `M` has a finite free resolution if there exists an exact sequence `0 ⟶ Eₙ ⟶ ⋯ ⟶ E₀ ⟶ M ⟶ 0` such that `Eᵢ` are finite free `R`-modules.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
186/0 |
Mathlib.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Module/FiniteFreeResolution/Basic.lean |
3 |
1 |
['github-actions'] |
nobody |
1-50658 1 day ago |
1-48320 1 day ago |
4-65480 4 days |
| 38826 |
tb65536 author:tb65536 |
feat(RingTheory/LocalRing/ResidueField/Fiber): `IsLiesOverAlgebra` instance |
We use the new `IsLiesOverAlgebra` predicate from #38465 to express the fact that the existing `R_p`-algebra instance on `(p.Fiber S)_q` agrees with the one coming from the fact that `q` lies over `p`. (The point of this predicate is to avoid exactly this sort of diamond).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
7/1 |
Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean |
1 |
3 |
['github-actions', 'robin-carlier', 'tb65536'] |
nobody |
1-47730 1 day ago |
1-47730 1 day ago |
11-25536 11 days |
| 39139 |
or4nge19 author:or4nge19 |
feat(LinearAlgebra): Schur triangulation |
Adds Schur triangulation API for algebraically closed `RCLike`, proved by triangularizing an endomorphism, aiming at a more mathlib idiomatic approach than the original one in #20730 as it now (better) specializes the existing triangularization API and generalizes supporting lemmas in more natural places. A prerequisite for porting `Matrix.det_exp` proof from physlib.
It also proves half of existing TODO in Eigenspace.Triangularizable. It may need a split into 2 PRs and coordination with #37006 .
See [this](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Contribute.20Schur.20decomposition/with/532385359) and [this](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/.28Matrix.20and.20NormedSpace.2Eexp.29.20.7C.20det.20.28exp.20A.29.20.3D.20exp.20.28trace.20A.29/with/581264603) zulip discussions.
Co-authored-by: [kuotsanhsu](https://github.com/kuotsanhsu)
---
[](https://gitpod.io/from-referrer/)
|
large-import |
687/75 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/GramSchmidtOrtho.lean,Mathlib/Analysis/InnerProductSpace/Triangularizable.lean,Mathlib/LinearAlgebra/Basis/Fin.lean,Mathlib/LinearAlgebra/Basis/Flag.lean,Mathlib/LinearAlgebra/Eigenspace/Basic.lean,Mathlib/LinearAlgebra/Eigenspace/Triangularizable.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Basic.lean,Mathlib/LinearAlgebra/Matrix/SchurTriangulation.lean |
10 |
3 |
['github-actions', 'or4nge19', 'wwylele'] |
nobody |
1-46797 1 day ago |
2-67785 2 days ago |
2-67514 2 days |
| 39192 |
jayscambler author:jayscambler |
feat(InnerProductSpace/PiL2): det of a linear isometry has unit norm |
Adds `LinearIsometryEquiv.norm_det` and the real corollary `LinearIsometryEquiv.abs_det`. The proof uses the unitary matrix of a linear isometry in orthonormal bases, via `LinearIsometryEquiv.toMatrix_mem_unitaryGroup` and `Matrix.det_of_mem_unitary`. The supporting matrix lemma is moved from `Adjoint.lean` to `PiL2.lean`, where it no longer depends on adjoints. |
t-analysis
new-contributor
LLM-generated
|
36/10 |
Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean |
2 |
7 |
['github-actions', 'grunweg', 'jayscambler', 'wwylele'] |
nobody |
1-40612 1 day ago |
1-43020 1 day ago |
1-43756 1 day |
| 38534 |
AlexeyMilovanov author:AlexeyMilovanov |
refactor(Computability): bundle PFun into a structure with FunLike instance |
This PR refactors `PFun` from `def PFun α β := α → Part β` to a structure with a `FunLike` instance.
[Discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Fix.20for.20fun_prop.20on.20PFun.20.28context.3A.20Computability.20Theory.29)
### Core Architectural Changes
* **Structure Transition:** `PFun` is now a structure with a single field `toFun : α → Part β`. Raw lambdas are now explicitly packed using `PFun.mk` or `PFun.lift`.
* **API Alignment:** Added the `FunLike (α →. β) α (Part β)` instance and `initialize_simps_projections`. Replaced direct `funext` usage with `DFunLike.ext`. Added comprehensive `@[simp]` lemmas for the structure (`mk_apply`, `coe_mk`, `toFun_eq_coe`, `lift_apply`).
* **New Helpers:** Introduced `PFun.const` and `PFun.empty` to reduce boilerplate. Updated the `Inhabited` instance to use `PFun.empty` and added the `default_eq_empty` simp lemma.
* **Renaming:** Renamed `Nat.Partrec.some` to `Nat.Partrec.id` (as it now represents `PFun.id ℕ`), and `const_part_some` to `const_some` for consistency.
### API & Breaking Changes
* **Loss of Defeq:** `PFun` is no longer definitionally equal to a raw function. Basic lemmas (like `PFun.res_univ`) now require explicit extensionality (`ext x y; rfl`).
* **`prodLift_fst_comp_snd_comp`:** Rewrote the LHS using explicit `PFun.mk` wrappers. This resolves a `simpNF` linter failure caused by the new `comp_lift` simp lemma.
* **Return Type Changes:** Several core computability definitions (`Nat.Partrec.of_eq_tot`, `StateTransition.eval`) now strictly return or pattern-match on the new structure, breaking implicit coercions.
### Downstream Impact
The refactor heavily impacts Computability Theory and Category Theory (`Category/PartialFun.lean`). The strict structure boundary breaks definitional equality, meaning tactics like `simp` and `grind` can no longer "see through" the function automatically.
As a result, several proofs (e.g., `fix_aux`, `ppred`, `mem_eval`, and `unitIso`) grew in size, requiring explicit `ext` + `simp` breakdowns.
### Affected Files
* **Core:** `Mathlib/Data/PFun.lean`
* **Computability:** `Partrec`, `PartrecBasis`, `PartrecCode`, `RE`, `RecursiveIn`, `Ackermann`, `Halting`, `StateTransition`, `TuringDegree`, `TuringMachine/Config` *(Successfully removed the `set_option linter.flexible false` hack)*
* **Category Theory:** `Category/PartialFun.lean` *(Successfully removed the `respectTransparency false` hack)*
* **Other:** `Data/Finset/PImage.lean`, `NumberTheory/Dioph.lean`
### Note on LLM usage
The core `PFun` change caused numerous downstream errors. I initially used an LLM to help draft fixes for these files. Afterwards, I spent a significant amount of time manually correcting and modifying all of the generated changes. |
new-contributor
t-computability
|
1172/758 |
Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/Computability/Ackermann.lean,Mathlib/Computability/Halting.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecBasis.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RE.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/StateTransition.lean,Mathlib/Computability/TuringDegree.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Data/Finset/PImage.lean,Mathlib/Data/PFun.lean,Mathlib/NumberTheory/Dioph.lean |
14 |
7 |
['AlexeyMilovanov', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib-merge-conflicts'] |
nobody |
1-39277 1 day ago |
1-39277 1 day ago |
6-62972 6 days |
| 37716 |
slavanaprienko author:slavanaprienko |
feat(LinearAlgebra/Matrix/Determinant): Desnanot-Jacobi identity |
This PR adds the Desnanot-Jacobi identity (also known as the Lewis Carroll identity or Dodgson condensation): for any (n+2)×(n+2) matrix M over a commutative ring,
$$\det(M) \cdot \det(M_{1,n}^{1,n}) = \det(M_1^1) \cdot \det(M_n^n) - \det(M_1^n) \cdot \det(M_n^1)$$
The proof follows Bressoud's *Proofs and Confirmations* (Cambridge University Press, 1999): multiply M by an auxiliary matrix built from columns of the adjugate, then compare determinants. This yields the identity premultiplied by det(M). To cancel, we pass to a universal polynomial ring (an integral domain with nonzero determinant), then specialize back to arbitrary commutative rings.
It seems there's some interest in adding this:
https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Determinantal.20identity.20and.20the.20Cauchy.20matrix.20determinant/with/582946873
--- |
t-algebra
new-contributor
label:t-algebra$ |
217/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Determinant/DesnanotJacobi.lean |
2 |
13 |
['SnirBroshi', 'github-actions', 'grunweg', 'kim-em', 'slavanaprienko'] |
nobody |
1-35783 1 day ago |
1-34826 1 day ago |
2-70417 2 days |
| 39219 |
WenrongZou author:WenrongZou |
feat(FieldTheory/Finite): add variant theorems for `expand_card` |
Add `MvPolynomial, MvPowerSeries, PowerSeries` version of `FiniteField.expand_card`, which is only for polynomial.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
45/4 |
Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/FiniteField.lean,Mathlib/RingTheory/MvPolynomial/Expand.lean,Mathlib/RingTheory/MvPowerSeries/Expand.lean,Mathlib/RingTheory/PowerSeries/Expand.lean |
5 |
1 |
['github-actions'] |
nobody |
1-32469 1 day ago |
1-31709 1 day ago |
1-31438 1 day |
| 37399 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Paths): `IsPath` and `Nil` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
10/3 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean |
2 |
8 |
['Rida-Hamadani', 'SnirBroshi', 'YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
1-30665 1 day ago |
39-38543 39 days ago |
43-8572 43 days |
| 36863 |
artie2000 author:artie2000 |
refactor(Algebra/Order/Ring/Ordering): unbundle `RingPreordering` |
The current design for [RingPreordering](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Ordering/Defs.html#RingPreordering) ran into issues at PR #32077. This PR unbundles [RingPreordering](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Ordering/Defs.html#RingPreordering) into a class predicate on [Subsemiring](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Ring/Subsemiring/Defs.html#Subsemiring), generalising the material on supports as far as possible.
Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Ring.20orderings.20-.20structure.20or.20predicate.3F/with/562594050
See #37298 for the analogous change to group and ring cones.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
455/87 |
Mathlib.lean,Mathlib/Algebra/Order/Ring/Ordering/Basic.lean,Mathlib/Algebra/Order/Ring/Ordering/Defs.lean,Mathlib/Algebra/Ring/Subsemiring/Support.lean |
4 |
14 |
['artie2000', 'chrisflav', 'github-actions', 'mathlib-merge-conflicts'] |
eric-wieser assignee:eric-wieser |
1-29413 1 day ago |
1-29413 1 day ago |
43-67636 43 days |
| 35683 |
gasparattila author:gasparattila |
fix(Tactic/FunProp): detect `Continuous.subtype_mk` as compositional |
This PR changes `fun_prop` to detect some theorems involving dependent types, such as `Continous.subtype_mk` to be in compositional form. This lets `fun_prop` solve goals such as `Continuous fun x => (⟨x, trivial⟩ : {x : ℝ // True})`.
---
These theorems become compositional: `Continuous.subtype_mk`, `Topology.IsEmbedding.inclusion`, `Topology.IsOpenEmbedding.inclusion`, `Topology.IsClosedEmbedding.inclusion`, `Measurable.subtype_mk`, `Measurable.imp`, `Path.symm_continuous_family`, `Continuous.upperHalfPlaneMk`
These theorems become simple: `hasFDerivAt_prodMk_left`, `hasFDerivAt_prodMk_right`, `contDiff_prodMk_left`, `contDiff_prodMk_right`
[](https://gitpod.io/from-referrer/)
|
t-meta |
65/43 |
Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,MathlibTest/fun_prop_dev.lean |
5 |
16 |
['gasparattila', 'github-actions', 'grunweg', 'joneugster', 'lecopivo', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
1-29267 1 day ago |
1-26011 1 day ago |
77-12469 77 days |
| 37951 |
martinwintermath author:martinwintermath |
chore(Geometry/Convex/Cone): rework `PointedCone.dual` to take a cone as input in place of a set |
Rework `PointedCone.dual` to take as input a cone instead of a set. This is done to untangle the functionality of `PointedCone.dual` from `PointedCone.hull` and to align it with the signature of its submodule analogue `Submodule.orthogonalBilin` (partially, with proposed functionality from #34007). See also the discussion here: [#mathlib4 > Reorganizing bilinearity and orthogonality?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Reorganizing.20bilinearity.20and.20orthogonality.3F/with/583882414).
Main changes:
* change signature `dual (s : Set M)` to `dual (C : PointedCone R M)`.
* deprecate `dual_hull` since now obsolete in this form, instead add `mem_dual_hull` in addition to `mem_dual`.
* deprecate all of `dual_empty`, `dual_zero` and `dual_singleton_zero` in favor of only `dual_bot`.
* deprecate `dual_univ` in favor of `dual_top`.
* add notation `R ∙₊ x` in analogy to submodule version `R ∙ x`, for use in new lemma `dual_hull_singleton`.
* deprecate `dual_insert` since now obsolete (use `Submodule.span_insert` instead).
* deprecate `dual_union`, `dual_iUnion` and `dual_sUnion` in favor of `dual_sup`, `dual_sSup` and `dual_iSup`.
* remove `dual_sup` since now obsolete and name has been reused (see above).
* add `dual_sup_ker` and `dual_univ_eq_ker` to align with (proposed) submodule analogue for `Submodule.orthogonalBilin`.
* deprecate `dual_image` in favor of `dual_map`
* add `hull_eq` (cone version of `span_eq`) since used in `basis_coord_mem_dual`.
* adjust doc-strings
Numerous changes to other files have been necessary. The dual-variants for proper cones or inner product spaces have not yet been adapted to cone-inputs, though this should happen eventually. The definition of `DualFG` has been changed to "duals of `FG`-cones" instead of "duals of finite sets" (also getting rid of `Finset` as previously requested).
---
- [x] depends on: #37950
- [x] depends on: #37542
[](https://gitpod.io/from-referrer/)
|
|
227/128 |
Mathlib/Analysis/Convex/Cone/Dual.lean,Mathlib/Analysis/Convex/Cone/InnerDual.lean,Mathlib/Analysis/Convex/Cone/TensorProduct.lean,Mathlib/Geometry/Convex/Cone/Dual.lean,Mathlib/Geometry/Convex/Cone/DualFinite.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean,Mathlib/Geometry/Convex/Cone/TensorProduct.lean |
7 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-28950 1 day ago |
1-28266 1 day ago |
14-33928 14 days |
| 39223 |
BryceT233 author:BryceT233 |
feat(RingTheory/Extension): surjectivity and kernel of `Cotangent.map` |
This PR adds `Cotangent.map_surjective_of_comap_eq` and `Cotangent.map_ker_of_surjective`, which are adaptations of the existing lemmas `Ideal.mapCotangent_surjective_of_comap_eq` and `Ideal.mapCotangent_ker_of_surjective` to the cotangent space of extensions. Because `Algebra.Extension.Cotangent` uses a type synonym to define the cotangent space of an extension, the results for `Ideal.mapCotangent` could not be used directly and needed to be restated in terms of `Algebra.Extension.Cotangent.map`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
32/0 |
Mathlib/RingTheory/Extension/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
1-28545 1 day ago |
1-28130 1 day ago |
1-27859 1 day |
| 39225 |
junodeveloper author:junodeveloper |
feat(SimpleGraph): add odd degree corollaries |
This PR adds three small corollaries of the handshaking lemma for odd-degree vertices in `SimpleGraph`:
* `card_odd_degree_vertices_ne_one`
* `not_existsUnique_odd_degree`
* `even_degree_of_forall_ne_even_degree`
These are convenience lemmas around the existing `even_card_odd_degree_vertices` / `exists_ne_odd_degree_of_exists_odd_degree` API.
Local checks:
```bash
lake build Mathlib.Combinatorics.SimpleGraph.DegreeSum
lake exe lint-style Mathlib.Combinatorics.SimpleGraph.DegreeSum
lake exe runLinter Mathlib.Combinatorics.SimpleGraph.DegreeSum
```
## AI usage disclosure
I used OpenClaw/Codex to help explore the existing API, draft the small proofs, and run local checks. I reviewed the final code myself and understand the statements and proofs in this PR. |
t-combinatorics
new-contributor
|
21/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean |
1 |
2 |
['github-actions'] |
nobody |
1-25510 1 day ago |
1-26842 1 day ago |
1-26571 1 day |
| 36239 |
plp127 author:plp127 |
feat(FieldTheory/KrullTopology): define uniform group structure on galois group |
Endow the galois group of a field extension `Gal(L/K)` with the structure of a uniform group. Use this to prove some properties of the galois group earlier, for example, that the galois group is compact is immediate, and in more generality than the version proved in `FieldTheory/Galois/Profinite`. Deprecate some material which used to be used to define the krull topology, but is now unused since the krull topology comes out of the uniform structure.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
271/177 |
Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/FieldTheory/KrullTopology.lean,Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean |
4 |
17 |
['github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] |
mattrobball assignee:mattrobball |
1-24792 1 day ago |
1-24125 1 day ago |
45-7725 45 days |
| 37677 |
vihdzp author:vihdzp |
feat: club sets |
In set theory, a club set is a subset of an ordinal of uncountable cofinality, which is closed in the order topology, and unbounded within the ordinal.
We generalize this notion to that of a club set in a well-order `α`: this is a set which is cofinal and closed under suprema. We recover the more standard notion by setting `α = Iio o`, whenever `ℵ₀ < o.cof`.
We prove that club sets are closed under intersections of size less than the cofinality of `α`, and that the fixed points of a normal function are a club set.
---
The idea is to eventually rework [`Ordinal.deriv`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Ordinal/FixedPoint.html#Ordinal.deriv). This is simply the enumerator function for the fixed points of `f`, and enumerator functions for club sets are always normal.
- [x] depends on: #37670
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
|
159/0 |
Mathlib.lean,Mathlib/Order/IsNormal.lean,Mathlib/SetTheory/Cardinal/Cofinality/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality/Club.lean |
4 |
8 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'staroperator', 'vihdzp'] |
nobody |
1-21466 1 day ago |
1-19803 1 day ago |
20-74604 20 days |
| 39058 |
vihdzp author:vihdzp |
chore: `IsBotZeroClass (Fin n)` |
We also deprecate a bunch of theorems that now follow from the typeclass.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-order
|
32/28 |
Archive/Imo/Imo2024Q5.lean,Mathlib/AlgebraicTopology/Quasicategory/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Basic.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean,Mathlib/Data/Fin/SuccPred.lean,Mathlib/GroupTheory/Perm/Sign.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean,Mathlib/Order/Fin/Basic.lean,Mathlib/Order/Grade.lean,Mathlib/Order/Interval/Set/Basic.lean,Mathlib/RingTheory/ChainOfDivisors.lean |
13 |
2 |
['github-actions', 'plp127'] |
nobody |
1-19334 1 day ago |
1-16436 1 day ago |
5-8220 5 days |
| 37071 |
ericluap author:ericluap |
feat: Dedekind completion of rationals is isomorphic to EReal |
|
t-order
new-contributor
|
128/4 |
Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/DedekindCut.lean,Mathlib/Order/Completion.lean |
4 |
53 |
['ericluap', 'github-actions', 'vihdzp', 'wwylele'] |
vihdzp assignee:vihdzp |
1-19240 1 day ago |
1-49878 1 day ago |
24-40831 24 days |
| 37779 |
mcdoll author:mcdoll |
feat(Data/FunLike): introduce typeclasses for algebraic properties of `FunLike` |
These typeclasses remove the need for each function space that has, e.g., a linear structure
to define `add_apply`, `smul_apply`, etc. Instead after defining the the `Add` instance one also defines a
`FunLikeAdd` instance (with a proof usually being `rfl`).
Allows removing some boilerplate as theorems like `sum_apply` are currently proved in various files:
after this PR, they can be proved in an abstract way.
Moreover, we provide abbreviations for further structure (such as `Semigroup``) in
the concrete function spaces.
The usage of these typeclasses were prototyped in #33477 and will be merged in a separate PR.
The docstrings were generated with AI (and heavily edited afterwards), everything else is handwritten.
---
The previous PR #33477 has gotten quite a few merge conflicts, so I opened a new PR with just the new features. I would like to get the approval of this design before going through the library and change everything. I am open to either do this in this PR or a second one (or multiple for different parts).
- [x] depends on: #38401
- [x] depends on: #38398
[](https://gitpod.io/from-referrer/)
|
t-data |
649/0 |
Mathlib.lean,Mathlib/Data/FunLike/Group.lean,Mathlib/Data/FunLike/IsApply.lean,Mathlib/Data/FunLike/Module.lean,Mathlib/Data/FunLike/Ring.lean |
5 |
21 |
['Vierkantor', 'github-actions', 'grunweg', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mcdoll'] |
Vierkantor assignee:Vierkantor |
1-18102 1 day ago |
1-18258 1 day ago |
14-59345 14 days |
| 36922 |
SnirBroshi author:SnirBroshi |
feat(Data/List/Chain): generalize `WellFounded.asymmetric₃` to chains |
The existing `WellFounded.asymmetric` shows `r a b → ¬r b a`,
and `WellFounded.asymmetric₃` shows `r a b → r b c → ¬r c a`.
This adds `WellFounded.asymmetricₙ` which shows `l.IsChain r → ¬r l.getLast l.head`.
---
Also adds a couple of `IsChain` lemmas which might be useful.
[](https://gitpod.io/from-referrer/)
|
t-data |
29/8 |
Mathlib/Data/List/Chain.lean |
1 |
4 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
eric-wieser assignee:eric-wieser |
1-17175 1 day ago |
48-55090 48 days ago |
53-1467 53 days |
| 38483 |
jessealama author:jessealama |
feat(Algebra/BigOperators): add `Antiperiodic.sum_Ico_shift` |
Three lemmas about `Finset` sums of `Function.Antiperiodic` functions: `sum_map_add_right` says that for `f` antiperiodic with antiperiod `c`, summing `f` over a `Finset` shifted by `c` (via `addRightEmbedding c`) negates the sum over the original; `sum_Ico_shift` is the half-open-interval specialization, immediate via `Finset.map_add_right_Ico`; and `sum_Ico_mul_add_sum_Ico_mul_shift_eq_zero` is a bilinear cancellation variant. Spun off from #29713 (Euler-Poincaré formula), where the bilinear form is used. |
t-algebra label:t-algebra$ |
63/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Periodic.lean |
2 |
5 |
['github-actions', 'j-loreaux', 'jessealama', 'wwylele'] |
ocfnash assignee:ocfnash |
1-17172 1 day ago |
6-80512 6 days ago |
17-51779 17 days |
| 38548 |
adomasbaliuka author:adomasbaliuka |
feat(Algebra/Ring/BooleanRing): definitional lemmas for `Bool` ring operations |
Mathlib defines a ring structure on `Bool` but is missing definitional lemmas for the arithmetic operations.
---
Discussed on Zulip ([#Is there code for X? > `Bool.xor` same as `+` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Bool.2Exor.60.20same.20as.20.60.2B.60/near/590927417)), in particular, it's not immediately intuitive to everyone what the operations do.
Note that the parentheses around `^^` and `&&` are needed due to operator precedence w.r.t. `=`, see also https://github.com/leanprover-community/mathlib4/pull/38539.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
12/0 |
Mathlib/Algebra/Ring/BooleanRing.lean |
1 |
1 |
['github-actions'] |
ocfnash assignee:ocfnash |
1-17171 1 day ago |
16-56635 16 days ago |
16-56364 16 days |
| 38622 |
mariainesdff author:mariainesdff |
feat(RingTheory/PowerSeries/ExponentialModule): add exponential module |
Let `R` be a commutative ring. The exponential module of `R` is the set of all power series
`f : R⟦X⟧` that are of exponential type : `f (X + Y) = f X * f Y` where `X` and `Y` are two
indeterminates. It is an abelian group under multiplication, and an `R`-module under rescaling.
Co-authored by: @AntoineChambert-Loir
---
- [ ] depends on: #38615
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
425/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Finsupp/Fin.lean,Mathlib/Data/Nat/Choose/Sum.lean,Mathlib/RingTheory/PowerSeries/ExponentialModule.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
5 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
alreadydone assignee:alreadydone |
1-17170 1 day ago |
13-58168 13 days ago |
13-57897 13 days |
| 38707 |
tb65536 author:tb65536 |
feat(Algebra/Polynomial/Lifts): add `natDegree` verison of `exists_natDegree_eq_of_mem_lifts` |
This PR adds a `natDegree` version of `exists_degree_eq_of_mem_lifts`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
4/0 |
Mathlib/Algebra/Polynomial/Lifts.lean |
1 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
1-17169 1 day ago |
13-61973 13 days ago |
13-61702 13 days |
| 38708 |
tb65536 author:tb65536 |
feat(Algebra/Polynomial/Lifts): every polynomial lifts along a surjective ring homomorphism |
This PR adds a lemma stating that every polynomial lifts along a surjective ring homomorphism (this could also be phrased as `lifts_eq_top`, but in practice it's membership in lifts that unlocks all of the API for `lifts`).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
3/0 |
Mathlib/Algebra/Polynomial/Lifts.lean |
1 |
1 |
['github-actions'] |
mariainesdff assignee:mariainesdff |
1-17168 1 day ago |
13-61724 13 days ago |
13-61453 13 days |
| 38709 |
tb65536 author:tb65536 |
feat(Algebra/Polynomial/Roots): roots of `p(-X)` |
This PR proves that the roots of `p(-X)` are just the negatives of the roots of `p`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
21/0 |
Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/Roots.lean |
2 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
1-17168 1 day ago |
13-60405 13 days ago |
13-60134 13 days |
| 38719 |
tb65536 author:tb65536 |
feat(GroupTheory/QuotientGroup/Basic): `(G × H) / (A.prod B) ≃ (G / A) × (H / B)` |
This PR proves the isomorphism `(G × H) ⧸ (A.prod B) ≃* (G ⧸ A) × H ⧸ B` and uses it to golf `Subgroup.index_prod`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
20/3 |
Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean |
2 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
1-17167 1 day ago |
13-46626 13 days ago |
13-46355 13 days |
| 38741 |
eric-wieser author:eric-wieser |
feat: Nat.card lemmas for Sym and Sym2 |
These are just translations of the `Fintype` counterparts.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
109/7 |
Mathlib.lean,Mathlib/Data/Sym/Card.lean,Mathlib/Data/Sym/NatCard.lean,Mathlib/Data/Sym/Sym2.lean |
4 |
18 |
['SnirBroshi', 'YaelDillies', 'eric-wieser', 'github-actions'] |
TwoFX assignee:TwoFX |
1-17166 1 day ago |
4-49500 4 days ago |
11-31386 11 days |
| 38753 |
tb65536 author:tb65536 |
chore(GroupTheory/Nilpotent): to_additivize file |
This PR to_additivizes `Nilpotent.lean`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
201/35 |
Mathlib/GroupTheory/Commutator/Finite.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/Subgroup/Center.lean |
3 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
1-17165 1 day ago |
12-72903 12 days ago |
12-72632 12 days |
| 38840 |
peabrainiac author:peabrainiac |
feat(Topology): continuous germs of maps |
Add a predicate `Filter.Germ.Continuous` for continuity of germs between topological spaces, and bundled types `ContinuousGerm x Y` / `PointedContinuousGerm x y` of continuous germs at `x` resp. continuous germs at `x` taking `x` to `y`.
---
See also #10977, which tried to introduce smooth germs between manifolds a while ago, though with a focus on pointwise algebraic operations instead of composability.
[](https://gitpod.io/from-referrer/)
|
t-topology |
177/0 |
Mathlib.lean,Mathlib/Topology/ContinuousGerm.lean,Mathlib/Topology/ContinuousOn.lean,Mathlib/Topology/Germ.lean |
4 |
5 |
['chrisflav', 'github-actions', 'j-loreaux', 'peabrainiac'] |
ADedecker assignee:ADedecker |
1-17164 1 day ago |
1-43906 1 day ago |
10-113 10 days |
| 38990 |
Vierkantor author:Vierkantor |
chore(Algebra/DirectSum): workaround for `backward.inferInstanceAs` |
This PR works around a `backward.inferInstanceAs` compatibility flag introduced by identifying `DirectSum` with `DFinsupp` in our definitions. We introduce a new dsimp lemma `funLike_eq` that transfers the `FunLike` instances, and now we can use `DirectSum`'s `FunLike` instance, instead of the custom `CoeFun` instance. I unsqueezed a few `simp`s, which all ran pretty much instant on my machine so it shouldn't cause much slowdown. Also we fix two porting notes.
This is not a great approach, but it seems the least painful for the short term. The alternative would be to strictly enforce the defeq barrier between `DirectSum` and `DFinsupp`, which would mean a substantial rewrite of this corner of Mathlib. We can't make `DirectSum` an `@[implicit_reducible]`, because we need different multiplication on it than `DFinsupp` has.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
tech debt
t-ring-theory
label:t-algebra$ |
36/38 |
Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/Lie/DirectSum.lean,Mathlib/Algebra/Order/Module/HahnEmbedding.lean,Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/Spectrum/Prime/RingHom.lean |
9 |
2 |
['JovanGerb', 'github-actions'] |
joneugster assignee:joneugster |
1-17163 1 day ago |
6-72780 6 days ago |
6-72509 6 days |
| 39003 |
TwoFX author:TwoFX |
chore: avoid declaring duplicate instances `LE String` and `LT String` |
Since forever, mathlib has declared `LE String` and `LT String` instances which are propositionally, but not definitionally, equal to the `LE String` and `LT String` instances that have shipped with core. This regularly leads to problems with automation that expects instances to be canonical, most recently as described in leanprover/lean4#13544.
This PR demotes the mathlib instances to definitions, and redefines the `LinearOrder String` instance to use the core-provided instances rather than the ones defined in mathlib. It also redeclares the theorems `String.lt_iff_toList_lt` and `String.le_iff_toList_le` to be about the core-provided instances rather than the mathlib ones, and the theorems about the mathlib instances are now called `String.lt_iff_toList_lt'` and `String.le_iff_toList_le'`.
Deprecating the material related to the mathlib instances would be a logical next step, but it might make sense to wait with this until core ships more API for `LE String` and `LT String` (right now it ships none).
---
[](https://gitpod.io/from-referrer/)
|
t-data |
31/14 |
Mathlib/Data/String/Basic.lean |
1 |
5 |
['TwoFX', 'eric-wieser', 'github-actions'] |
joneugster assignee:joneugster |
1-17160 1 day ago |
5-85457 5 days ago |
5-85186 5 days |
| 39008 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(NumberTheory/NumberField/Completion/FinitePlace): add multiplicity lemmas |
This adds some more API for multiplicities of prime ideals in factorizations (and some more basic API lemmas, too), in preparation for a proof of the Northcott property for heights on number fields.
---
- [x] depends on: #38654
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
49/0 |
Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
tb65536 assignee:tb65536 |
1-17159 1 day ago |
1-73086 1 day ago |
1-72987 1 day |
| 39011 |
Vierkantor author:Vierkantor |
chore(Algebra/Polynomial/Module): workaround for backward.inferInstanceAs |
This PR, like #38990, works around a `backward.inferInstanceAs` compatibility flag introduced by identifying `PolynomialModule` with `Finsupp` in our definitions. We introduce a new dsimp lemma `funLike_eq` that transfers the `FunLike` instances, and now we can use `PolynomialModule`'s `FunLike` instance, instead of the custom `CoeFun` instance.
This is not a great approach, but it seems the least painful for the short term. The alternative would be to strictly enforce the defeq barrier between `PolynomialModule` and `Finsupp`, which would mean a substantial rewrite of this corner of Mathlib. We can't make `PolynomialModule` an `@[implicit_reducible]`, because we need different multiplication on it than `Finsupp` has.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
tech debt
label:t-algebra$ |
8/5 |
Mathlib/Algebra/Polynomial/Module/Basic.lean |
1 |
1 |
['github-actions'] |
jcommelin assignee:jcommelin |
1-17158 1 day ago |
6-45172 6 days ago |
6-44901 6 days |
| 39045 |
justus-springer author:justus-springer |
chore(AlgebraicGeometry/RationalMap): Move two lemmas to more appropriate place |
These two lemmas are simply about opens and shouldn't be in this file. Also, they are in the `AlgebraicGeometry.Scheme.PartialMap.Opens` namespace instead of just `AlgebraicGeometry.Opens`, where they should belong. I added deprecations for the old versions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
easy
|
8/8 |
Mathlib/AlgebraicGeometry/Morphisms/UnderlyingMap.lean,Mathlib/AlgebraicGeometry/RationalMap.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
kim-em assignee:kim-em |
1-17156 1 day ago |
1-32814 1 day ago |
2-39997 2 days |
| 39090 |
EngelsVon author:EngelsVon |
feat(Analysis/Calculus/DifferentialForm): Stokes theorem on boxes for differential forms |
## Summary
This PR adds the first instances of the **generalized Stokes theorem for differential forms** in Mathlib, building on the existing `extDeriv` API from `Analysis.Calculus.DifferentialForm.Basic` and the divergence theorem from `MeasureTheory.Integral.DivergenceTheorem`.
### New files
#### `Mathlib.Analysis.Calculus.DifferentialForm.BoxStokes` (310 lines, **fully proved**)
Stokes theorem on rectangular boxes `[a, b] ⊂ ℝ^(m+1)` for differential forms.
**Key definitions:**
- `detTopForm`: the determinant as a continuous alternating top-form
- `topFormDensity` / `topFormIntegral`: density and integral of top-form fields
- `boxFaceComponent ω i`: the signed `i`-th face component of an `m`-form (`(-1)^i · ω(ê_i)`)
- `boxBoundaryIntegral ω a b`: the signed boundary integral over `∂[a,b]`
**Main theorem:**
- `box_stokes_of_contDiff`: `∫_{[a,b]} dω = ∫_{∂[a,b]} ω` for `C¹` `m`-forms on `ℝ^(m+1)`
The proof proceeds by:
1. Showing `topFormDensity (extDeriv ω) = divergence of (boxFaceComponent ω ·)`
2. Applying Mathlib's `integral_divergence_of_hasFDerivAt_off_countable'`
#### `Mathlib.Analysis.Calculus.DifferentialForm.HalfSpaceStokes` (224 lines, partially proved)
Stokes theorem on the upper half-space `{x : x_m ≥ 0}` with infrastructure.
**Key definitions:**
- `HalfSpace m`: `{x : Fin (m+1) → ℝ | x (lastCoord m) ≥ 0}`
- `boundaryIntegral m ω`: integral of `ω` over `∂ℝ^{m+1}_+`
**Key lemmas (proved):**
- `norm_insertNth_ge_norm`: `‖x‖ ≤ ‖Fin.insertNth i v x‖` for sup norm
- `formField_vanishes_at_insertNth_norm`: vanishing of form fields at large norms
**Main theorem (statement, proof TODO):**
- `halfSpace_stokes`: `∫_{ℝ^{m+1}_+} dω = ∫_{∂ℝ^{m+1}_+} ω`
### Relationship to existing Mathlib
- `MeasureTheory.Integral.DivergenceTheorem` proves the divergence theorem for vector fields (`ℝⁿ⁺¹ → Eⁿ⁺¹`). This PR translates it into the language of differential forms (`E → E [⋀^Fin n]→L[𝕜] F`).
- `Analysis.Calculus.DifferentialForm.Basic` defines `extDeriv`. This PR provides the first *integration* results for `extDeriv`.
### Why this belongs in Mathlib
1. **Fills a known gap**: Mathlib has no Stokes-type theorem for differential forms despite having `extDeriv` and the divergence theorem.
2. **Self-contained**: Box Stokes depends only on `extDeriv` API and the divergence theorem.
3. **Useful infrastructure**: `boxFaceComponent`, `topFormDensity`, and `norm_insertNth_ge_norm` are independently useful.
### Future work
- Complete `halfSpace_stokes` (requires upstream API for `extDeriv` vanishing at zeros and `Fin.isClosedEmbedding_insertNth`)
- Chart-level Stokes via coordinate changes
- Partition of unity → manifold Stokes
## Checklist
- [x] The formulation of the main theorem is mathematically correct
- [x] Proofs follow Mathlib conventions (to the best of our knowledge)
- [ ] Code compiles on Mathlib CI (not tested locally due to build time)
- [ ] `#lint` passes (not tested locally)
|
t-analysis
new-contributor
LLM-generated
|
1246/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/DifferentialForm/BoxStokes.lean,Mathlib/Analysis/Calculus/DifferentialForm/FullSpaceStokes.lean,Mathlib/Analysis/Calculus/DifferentialForm/HalfSpaceStokes.lean |
4 |
4 |
['EngelsVon', 'SnirBroshi', 'github-actions'] |
ADedecker assignee:ADedecker |
1-17155 1 day ago |
3-57545 3 days ago |
4-6778 4 days |
| 39129 |
wwylele author:wwylele |
feat(Topology/Algebra): lemma about infinite sum on ENat |
This works towards resolving a todo in the ENNReal file. I intentionally kept the change short for quicker review, and hopefully this new file can invite future contributions by adding more lemma on demand. Also a lot of existing machinery on ENNReal will be superseded by #38489 and can be reused for ENat.
[](https://gitpod.io/from-referrer/)
|
t-topology |
43/1 |
Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean,Mathlib/Topology/Algebra/InfiniteSum/ENat.lean |
3 |
2 |
['github-actions', 'mathlib-bors'] |
urkud assignee:urkud |
1-17152 1 day ago |
3-16897 3 days ago |
3-16626 3 days |
| 39160 |
wwylele author:wwylele |
feat(Analysis/Normed): mapping a ball with smul |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
34/0 |
Mathlib/Analysis/Normed/MulAction.lean |
1 |
3 |
['copilot-pull-request-reviewer', 'github-actions'] |
sgouezel assignee:sgouezel |
1-17152 1 day ago |
2-14419 2 days ago |
2-14148 2 days |
| 39162 |
anovickis author:anovickis |
feat(Topology/PartitionOfUnity): add pointwise_decomposition_finsum + companions |
Add three short lemmas to `Mathlib/Topology/PartitionOfUnity.lean` extending the existing `PartitionOfUnity` API:
- `pointwise_decomposition_finsum` — for `f : X → ℝ` and `x ∈ s`, `f x = ∑ᶠ i, ρ i x · f x`. This is the pointwise step that lifts to integral linearity in measure-theoretic PoU integration: `∫_s f dμ = ∑ᶠ i, ∫_s (ρ i · f) dμ`.
- `one_minus_sum_nonneg` — `0 ≤ 1 - ∑ᶠ i, ρ i x`. Direct rearrangement of the existing `sum_le_one` field; useful as a complement-mass remainder bound in chart-by-chart estimates.
- `abs_le_one` — `|ρ i x| ≤ 1`. Combines the existing `nonneg` and `le_one`; convenience for absolute-value bounds.
All three are short proofs using existing structure fields (`sum_eq_one`, `sum_le_one`, `nonneg`, `le_one`).
These came up while writing chart-by-chart Stokes-on-manifold estimates where one wants to decompose `∫_M f` into chart-supported pieces using a partition of unity. The pointwise identity is the obvious first step; the other two are complementary algebraic bounds that show up in remainder estimates.
---
🤖 Generated with [Claude Code](https://claude.com/claude-code) |
t-topology
new-contributor
LLM-generated
|
27/0 |
Mathlib/Topology/PartitionOfUnity.lean |
1 |
2 |
['github-actions'] |
urkud assignee:urkud |
1-17151 1 day ago |
2-12319 2 days ago |
2-12048 2 days |
| 39171 |
yuanyi-350 author:yuanyi-350 |
refactor(Analysis): golf `Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic` |
- shortens `one_isLittleO_logCounting_single` by deriving it from a theta estimate for `log r - log ‖e‖`
- shortens `logCounting_isBigO_one_iff_analyticOnNhd` by reusing `divisor_nonneg_iff_analyticOnNhd` directly
Extracted from #37968
[](https://gitpod.io/from-referrer/) |
codex
t-analysis
LLM-generated
|
10/34 |
Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
ADedecker assignee:ADedecker |
1-17149 1 day ago |
1-65738 1 day ago |
1-76659 1 day |
| 39172 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic` |
- refactors `Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic` by simplifying `stronglyMeasurable_in_set` and `stronglyMeasurable_of_measurableSpace_le_on`
Extracted from #38104
[](https://gitpod.io/from-referrer/)
|
codex
LLM-generated
t-measure-probability
|
16/42 |
Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
EtienneC30 assignee:EtienneC30 |
1-17148 1 day ago |
1-77277 1 day ago |
1-77006 1 day |
| 39173 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/ConvergenceInDistribution` |
- refactors `Mathlib/MeasureTheory/Function/ConvergenceInDistribution` by shortening `TendstoInDistribution.prodMk_of_tendstoInMeasure_const`
Extracted from #38104
[](https://gitpod.io/from-referrer/)
|
codex
LLM-generated
t-measure-probability
|
2/18 |
Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
EtienneC30 assignee:EtienneC30 |
1-17147 1 day ago |
1-77658 1 day ago |
1-77387 1 day |
| 39174 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Integral/Asymptotics` |
- refactors `Mathlib/MeasureTheory/Integral/Asymptotics` by simplifying `IsBigO.set_integral_isBigO`
Extracted from #38104
[](https://gitpod.io/from-referrer/)
|
codex
LLM-generated
t-measure-probability
|
6/12 |
Mathlib/MeasureTheory/Integral/Asymptotics.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
EtienneC30 assignee:EtienneC30 |
1-17146 1 day ago |
1-67455 1 day ago |
1-76555 1 day |
| 39175 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Integral/CircleTransform` |
- refactors `Mathlib/MeasureTheory/Integral/CircleTransform` by shortening `circleTransformDeriv_periodic`
Extracted from #38104
[](https://gitpod.io/from-referrer/)
|
codex
LLM-generated
t-measure-probability
|
1/6 |
Mathlib/MeasureTheory/Integral/CircleTransform.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
EtienneC30 assignee:EtienneC30 |
1-17145 1 day ago |
1-77624 1 day ago |
1-77353 1 day |
| 39176 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Integral/Marginal` |
- refactors `Mathlib/MeasureTheory/Integral/Marginal` by shortening `Measurable.lmarginal`
Extracted from #38104
[](https://gitpod.io/from-referrer/)
|
codex
LLM-generated
t-measure-probability
|
2/7 |
Mathlib/MeasureTheory/Integral/Marginal.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
RemyDegenne assignee:RemyDegenne |
1-17143 1 day ago |
1-77563 1 day ago |
1-77292 1 day |
| 39177 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic` |
- refactors `Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic` by shortening `Measure.ext_of_charFunDual`
Extracted from #38104
[](https://gitpod.io/from-referrer/)
|
codex
LLM-generated
t-measure-probability
|
1/6 |
Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
EtienneC30 assignee:EtienneC30 |
1-17143 1 day ago |
1-77649 1 day ago |
1-77378 1 day |
| 39178 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Measure/PreVariation` |
- refactors `Mathlib/MeasureTheory/Measure/PreVariation` by simplifying `sum_le'` and `sum_le_preVariationFun_of_subset`
Extracted from #38104
[](https://gitpod.io/from-referrer/)
|
codex
LLM-generated
t-measure-probability
|
6/20 |
Mathlib/MeasureTheory/Measure/PreVariation.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
EtienneC30 assignee:EtienneC30 |
1-17142 1 day ago |
1-77301 1 day ago |
1-77030 1 day |
| 39193 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(NumberTheory/Height/Northcot): add instance |
Following up on #39215, this re-adds the module Mathlib.NumberTheory.Height.Northcott and adds a height-specific Northcott instance there (we anticipate adding more in the future; see the TODO).
---
- [x] depends on: #39215
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
42/0 |
Mathlib.lean,Mathlib/NumberTheory/Height/Northcott.lean |
2 |
4 |
['MichaelStollBayreuth', 'Ruben-VandeVelde', 'github-actions', 'mathlib-dependent-issues'] |
loefflerd assignee:loefflerd |
1-17140 1 day ago |
1-37449 1 day ago |
1-56991 1 day |
| 39102 |
yuanyi-350 author:yuanyi-350 |
chore: reduce imports in 50 files |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
70/81 |
Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Distribution/DerivNotation.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean,Mathlib/Analysis/Distribution/Sobolev.lean,Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/Barrelled.lean,Mathlib/Analysis/LocallyConvex/ContinuousOfBounded.lean,Mathlib/Analysis/LocallyConvex/Montel.lean,Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean,Mathlib/Analysis/LocallyConvex/SeparatingDual.lean,Mathlib/Analysis/LocallyConvex/WeakDual.lean,Mathlib/Analysis/LocallyConvex/WeakOperatorTopology.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Meromorphic/Divisor.lean,Mathlib/Analysis/Normed/Affine/AddTorsor.lean,Mathlib/Analysis/Normed/Affine/AddTorsorBases.lean,Mathlib/Analysis/Normed/Affine/Convex.lean,Mathlib/Analysis/Normed/Algebra/Basic.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/Analysis/Normed/Algebra/QuaternionExponential.lean,Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean,Mathlib/Analysis/Normed/Field/Dense.lean,Mathlib/Analysis/Normed/Field/Instances.lean,Mathlib/Analysis/Normed/Field/Ultra.lean,Mathlib/Analysis/Normed/Group/AddCircle.lean,Mathlib/Analysis/Normed/Group/Bounded.lean,Mathlib/Analysis/Normed/Group/ControlledClosure.lean,Mathlib/Analysis/Normed/Group/FunctionSeries.lean,Mathlib/Analysis/Normed/Group/Indicator.lean,Mathlib/Analysis/Normed/Group/NullSubmodule.lean,Mathlib/Analysis/Normed/Group/Tannery.lean,Mathlib/Analysis/Normed/Group/Ultra.lean,Mathlib/Analysis/Normed/Lp/WithLp.lean,Mathlib/Analysis/Normed/MulAction.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Analysis/PSeriesComplex.lean,Mathlib/Analysis/SpecificLimits/Fibonacci.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Analysis/Subadditive.lean,Mathlib/Analysis/SumIntegralComparisons.lean |
48 |
12 |
['JovanGerb', 'YaelDillies', 'bryangingechen', 'github-actions', 'j-loreaux', 'leanprover-radar', 'yuanyi-350'] |
j-loreaux assignee:j-loreaux |
1-15725 1 day ago |
3-69624 3 days ago |
3-81037 3 days |
| 39082 |
emlis42 author:emlis42 |
feat(Analysis/Calculus/Deriv): add deriv_const_op |
This PR adds some lemmas so `simp` can automatically evaluate derivatives of partially applied heterogeneous operations such as `HAdd.hAdd`, `HMul.hMul` `HDiv.hDiv`, and `HPow.hPow`. |
t-analysis
new-contributor
|
47/5 |
Mathlib/Analysis/Analytic/Binomial.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/Deriv/Inv.lean,Mathlib/Analysis/Calculus/FDeriv/Norm.lean,Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean,Mathlib/Analysis/SpecialFunctions/Pow/Deriv.lean,MathlibTest/Deriv.lean |
7 |
2 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
1-14198 1 day ago |
4-57877 4 days ago |
4-57606 4 days |
| 39212 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): add `partNums!` and `partDens!` |
This PR adds `partNums!` and `partDens!`, which provide infinite stream representations for the sequences of partial numerators and denominators of a generalized continued fraction. |
t-algebra
new-contributor
label:t-algebra$ |
8/0 |
Mathlib/Algebra/ContinuedFractions/Basic.lean |
1 |
4 |
['emlis42', 'github-actions', 'grunweg'] |
nobody |
1-14112 1 day ago |
1-46116 1 day ago |
1-45845 1 day |
| 39216 |
emlis42 author:emlis42 |
feat(Topology/Algebra/InfiniteSum): add `limUnder_eq_tprod` |
This PR adds `limUnder_eq_tprod` and `limUnder_eq_tsum`. |
t-topology
new-contributor
|
10/0 |
Mathlib/Topology/Algebra/InfiniteSum/Defs.lean |
1 |
5 |
['SnirBroshi', 'emlis42', 'github-actions', 'grunweg'] |
urkud assignee:urkud |
1-14031 1 day ago |
1-41780 1 day ago |
1-41509 1 day |
| 39104 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): generalize some lemmas about essSup to conditionally complete lattices |
The motivation for this PR is to show that if a random variable is in $L^\infty$, then so is it conditional expectation (proved in #36888).
Created with the help of Codex.
---
[](https://gitpod.io/from-referrer/)
|
|
119/72 |
Mathlib/MeasureTheory/Function/EssSup.lean |
1 |
2 |
['CoolRmal', 'github-actions'] |
nobody |
1-8058 1 day ago |
1-7064 1 day ago |
1-6793 1 day |
| 38983 |
kebekus author:kebekus |
feat: Invariance of `meromorphic in normal form` under composition. |
Establish invariance of `meromorphic in normal form` under composition with analytic functions of non-vanishing derivative.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
40/0 |
Mathlib/Analysis/Meromorphic/NormalForm.lean |
1 |
9 |
['github-actions', 'kebekus', 'themathqueen'] |
themathqueen assignee:themathqueen |
1-4404 1 day ago |
1-5066 1 day ago |
5-72661 5 days |
| 38336 |
chrisflav author:chrisflav |
feat(CategoryTheory/Monoidal): `MulAction` induced by a `ModObj` |
We define the `MulAction` on hom types induced by a monoid object `M` acting on `X` in a cartesian monoidal category.
---
- [x] depends on: #38342
Given that `Mathlib.CategoryTheory.Monoidal.Cartesian.Mod`, I think the import increase is fine.
[](https://gitpod.io/from-referrer/)
|
t-category-theory
large-import
|
153/3 |
Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mod.lean,Mathlib/CategoryTheory/Monoidal/Mod.lean |
3 |
14 |
['JovanGerb', 'chrisflav', 'dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-925 1 day ago |
1-148 23 hours ago |
6-29273 6 days |
| 39231 |
mbkybky author:mbkybky |
chore(RingTheory/PicardGroup): drop `StrongRankCondition` assumptions in two lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
3/6 |
Mathlib/RingTheory/PicardGroup.lean |
1 |
1 |
['github-actions'] |
nobody |
1-598 1 day ago |
0-86135 23 hours ago |
1-7604 1 day |
| 39145 |
chrisflav author:chrisflav |
feat(Algebra/Category): filtered colimits in `AlgCat` |
From Proetale.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
132/5 |
Mathlib.lean,Mathlib/Algebra/Category/AlgCat/Basic.lean,Mathlib/Algebra/Category/AlgCat/FilteredColimits.lean,Mathlib/CategoryTheory/Limits/ConcreteCategory/Basic.lean |
4 |
5 |
['chrisflav', 'github-actions', 'robin-carlier'] |
nobody |
1-394 1 day ago |
0-86244 23 hours ago |
1-58221 1 day |
| 38533 |
CoolRmal author:CoolRmal |
feat(Topology): subspace of a perfectly normal space is perfectly normal |
The mains theorems proved in this PR are
- A topological space is perfectly normal iff every closed set is the zero set of a continuous
function taking values in the unit interval.
- Every subspace of a perfectly normal space is perfectly normal.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
144/2 |
Mathlib.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Maps/Basic.lean,Mathlib/Topology/Separation/GDelta.lean,Mathlib/Topology/Separation/Hausdorff.lean,Mathlib/Topology/Separation/PerfectlyNormal.lean |
6 |
22 |
['CoolRmal', 'github-actions', 'j-loreaux', 'leanprover-radar', 'scholzhannah'] |
j-loreaux assignee:j-loreaux |
0-83420 23 hours ago |
0-82160 22 hours ago |
14-81231 14 days |
| 28613 |
espottesmith author:espottesmith |
feat(Combinatorics): define undirected hypergraphs |
This PR defines undirected hypergraphs:
```
@[ext]
structure Hypergraph (α : Type*) where
/-- The vertex set -/
vertexSet : Set α
/-- The hyperedge set -/
hyperedgeSet : Set (Set α)
/-- All hyperedges must be subsets of the vertex set -/
hyperedge_isSubset_vertexSet : ∀ ⦃e⦄, e ∈ hyperedgeSet → e ⊆ vertexSet
```
In addition to the main definition, some additional definitions and related lemmas are provided:
- vertex adjacency
- hyperedge adjacency
- vertex "stars"
- special cases (loops, empty hypergraphs, trivial hypergraphs, complete hypergraphs, simple hypergraphs, k-uniform hypergraphs, and d-regular hypergraphs)
- (some) hypergraph cardinality
- subhypergraphs, induced subhypergraphs, and partial hypergraphs
This implementation is certainly bare-bones. I'm submitting this PR at this point, rather than when my developments are more fleshed out, because there has been some interest in others contributing to hypergraph formalization in mathlib.
In the near future, goals include:
- defining incidence matrices (i.e., conversion from `Hypergraph α` to `Matrix α (Set α) β`
- coersion/generalization of graph as 2-uniform hypergraph
- conversion of a hypergraph into its associated clique graph/two-section graph
- constructing the dual of a hypergraph (note: on first blush, this appears somewhat challenging, given that we define hyperedges as `Set α` rather than some other type `β`)
- rank and co-rank
- walks, paths, cycles, etc. on hypergraphs
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
281/0 |
Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean |
2 |
143 |
['b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot', 'tb65536'] |
b-mehta assignee:b-mehta |
0-82861 23 hours ago |
0-82221 22 hours ago |
89-21919 89 days |
| 33958 |
chrisflav author:chrisflav |
feat(AlgebraicGeometry): the small affine étale site |
We define the small affine étale site of a scheme `S`. The underlying category is the category of commutative rings `R` equipped with an étale structure morphism `Spec R ⟶ S`. This category is essentially small (in contrast to the full small étale site).
We show that it has the same category of sheaves as the small étale site of `S` and deduce from this that étale sheafification of presheaves with values in `Type u` exists and that the category of sheaves on the étale site with values in a Grothendieck abelian category is Grothendieck abelian.
In particular, this allows us to define the étale cohomology groups of a sheaf with values in `Ab.{u}` to be in `Type u`.
From Proetale.
Co-authored-by: Joël Riou
---
- [x] depends on: #35711
- [x] depends on: #35240
- [x] depends on: #34976
- [x] depends on: #33957
- [x] depends on: #38820
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
268/1 |
Mathlib.lean,Mathlib/AlgebraicGeometry/LimitsOver.lean,Mathlib/AlgebraicGeometry/Morphisms/Etale.lean,Mathlib/AlgebraicGeometry/Sites/Affine.lean,Mathlib/AlgebraicGeometry/Sites/AffineEtale.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean |
6 |
22 |
['chrisflav', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'robin-carlier'] |
kim-em assignee:kim-em |
0-79732 22 hours ago |
0-79062 21 hours ago |
11-18588 11 days |
| 38144 |
yuanyi-350 author:yuanyi-350 |
refactor(NumberTheory): Golf 100 files |
This PR is an experimental project. In this PR, we use an Agent to automatically scan and attempt to simplify proofs. We hope to eventually effectively golf 100 files and avoid reinventing the wheel in mathlib.
We have chosen `Mathlib/NumberTheory` as the testing ground.
If this experiment is very successful and accepted by the mathlib community, we would be honored to open source it.
The relevant projects includes
- [ ] #38104, which golfs `Mathlib/MeasureTheory`.
- [ ] #37968, which golfs `Mathlib/Analysis`.
This PR serves as an index. For the actual code review, please refer to the individual PRs linked below. Each of those PRs modifies only a single file to facilitate the review process.
- [ ] depends on: #38204
- [ ] depends on: #38277
- [ ] depends on: #38278
- [ ] depends on: #38279
- [ ] depends on: #38280
- [ ] depends on: #38351
- [ ] depends on: #38402
- [ ] depends on: #38403
- [ ] depends on: #38454
- [ ] depends on: #38457
- [ ] depends on: #38494
- [ ] depends on: #38495
- [ ] depends on: #38832
- [ ] depends on: #38833
- [ ] depends on: #38834
- [ ] depends on: #38835
- [ ] depends on: #38836
- [ ] depends on: #38838
- [ ] depends on: #38839
---
[](https://gitpod.io/from-referrer/) |
t-number-theory
large-import
codex
LLM-generated
|
78/190 |
Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/NumberTheory/DiophantineApproximation/Basic.lean,Mathlib/NumberTheory/Divisors.lean,Mathlib/NumberTheory/EulerProduct/Basic.lean,Mathlib/NumberTheory/FLT/Four.lean,Mathlib/NumberTheory/FLT/Polynomial.lean,Mathlib/NumberTheory/GaussSum.lean,Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean,Mathlib/NumberTheory/ModularForms/Derivative.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/MDifferentiable.lean,Mathlib/NumberTheory/ModularForms/SlashActions.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean,Mathlib/NumberTheory/Pell.lean,Mathlib/NumberTheory/PrimeCounting.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/SmoothNumbers.lean |
16 |
11 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536', 'yuanyi-350'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-77250 21 hours ago |
0-75552 20 hours ago |
1-82584 1 day |
| 39149 |
kbuzzard author:kbuzzard |
doc(Algebra/HierarchyDesign): fix typo in library note |
Fix instance name (error was possibly caused by the change in the instance naming algorithm).
---
[](https://gitpod.io/from-referrer/)
Maybe it was called that under the old instance naming algorithm? But it's called https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Int/Defs.html#Int.instAddGroup now. |
t-algebra
easy
label:t-algebra$ |
1/1 |
Mathlib/Algebra/HierarchyDesign.lean |
1 |
3 |
['github-actions', 'kbuzzard', 'plp127'] |
nobody |
0-77248 21 hours ago |
2-36401 2 days ago |
2-36130 2 days |
| 39234 |
mbkybky author:mbkybky |
doc(Algebra/Module/StablyFree): fix typos in docstring |
Remove `commutative` from the docstring to match the code.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-algebra
label:t-algebra$ |
4/4 |
Mathlib/Algebra/Module/StablyFree/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-76496 21 hours ago |
0-76764 21 hours ago |
0-76493 21 hours |
| 39239 |
alainchmt author:alainchmt |
feat(FieldTheory/Finite): irreducible polynomial divides X^q^n - X iff degree divides n |
---
Add the theorem saying that, for an irreducible polynomial `f` over a finite field `K`, the degree of `f` divides `n` if and only if `f` divides `X ^ (Nat.card K) ^ n - X`. Include auxiliary lemmas.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
34/0 |
Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Minpoly/Field.lean |
2 |
2 |
['github-actions'] |
nobody |
0-72724 20 hours ago |
0-71622 19 hours ago |
0-71351 19 hours |
| 37527 |
bryanboehnke author:bryanboehnke |
feat(LocalRing/Etale): Finite étale extensions of local rings are monogenic |
Formalization of Lemma 3.2 from https://arxiv.org/abs/2503.07846: Given a finite extension of local rings R -> S, if the extension is étale, then there exists β ∈ S such that R[β] = S. Furthermore, if f(z) ∈ R[z] is the minimal polynomial of β, then f′(β) is a unit in S. This file also includes some relevant intermediate results used in the formalization of the proof of Lemma 3.1 from the same paper.
Co-authored-by: George Peykanu
Co-authored-by: Bianca Viray
Co-authored-by: Grant Yang
---
- [x] depends on: #36421
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
148/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/Etale.lean |
2 |
12 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
0-72153 20 hours ago |
23-16703 23 days ago |
23-35498 23 days |
| 36202 |
vihdzp author:vihdzp |
feat: more theorems on the Cantor normal form |
We also remove some redundant assumptions.
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
68/17 |
Mathlib/SetTheory/Ordinal/CantorNormalForm.lean |
1 |
19 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
0-69838 19 hours ago |
48-73333 48 days ago |
67-57213 67 days |
| 38466 |
Thmoas-Guan author:Thmoas-Guan |
feat(ModuleCat): some lemmas for `Ext` over `ModuleCat` |
some lemmas for `Ext` over `ModuleCat`
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
70/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean |
4 |
5 |
['Thmoas-Guan', 'chrisflav', 'github-actions'] |
chrisflav assignee:chrisflav |
0-68063 18 hours ago |
0-65358 18 hours ago |
18-47345 18 days |
| 38153 |
xroblot author:xroblot |
chore(IsGaloisGroup): refactor `IsGaloisGroup.quotient` |
Refactors the quotient construction in `IsGaloisGroup` to work at the level of ring extensions rather than intermediate fields.
---
- [x] depends on: #38377
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
218/53 |
Mathlib/Algebra/Algebra/Basic.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean |
2 |
14 |
['github-actions', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'riccardobrasca', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
0-67784 18 hours ago |
3-73889 3 days ago |
4-7943 4 days |
| 38375 |
WenrongZou author:WenrongZou |
feat(MvPowerSeries): some lemmas `truncTotal` of `subst` |
This PR adds some lemmas about truncation of total degree of a substitution.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
158/7 |
Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
2 |
3 |
['BryceT233', 'github-actions'] |
joneugster assignee:joneugster |
0-67645 18 hours ago |
0-64083 17 hours ago |
20-45194 20 days |
| 38380 |
linesthatinterlace author:linesthatinterlace |
feat(Data/Set): add Set.diag API |
Introduces `Set.diag (s : Set α) : Set (α × α) = {(a, a) | a ∈ s}` as the set-level companion to `Set.offDiag`, mirroring the existing `Finset.diag` / `Finset.offDiag` pairing. The type-level `Set.diagonal : Type* → Set (α × α)` is retained unchanged; `diag_univ : (univ : Set α).diag = diagonal α` (`@[simp]`) keeps it canonical when the underlying set is `univ`.
Parallels to the existing `offDiag` API (`diag_mono`, `diag_nonempty`, `diag_eq_empty`, `diag_empty`, `diag_singleton`, `diag_subset_prod`, `diag_eq_sep_prod`, `diag_inter`, `diag_union`, `diag_insert`) plus bridges `diag_union_offDiag`, `disjoint_diag_offDiag`, `prod_sdiff_diag`, `prod_sdiff_offDiag`. Also `diag_eq_image`, `image_diag` (matching `Finset.image_diag`), `preimage_coe_coe_diag`, and `Finset.coe_diag`. Note `diag_union` and `diag_insert` are unconditional (no `Disjoint` / `a ∉ s` hypothesis).
To free the `diag_` prefix for the set sense, the existing lemmas about the diagonal *map* `fun x => (x, x)` are renamed with deprecation aliases:
`range_diag` → `range_diagMap`, `diag_preimage_prod` → `diagMap_preimage_prod`, `diag_preimage_prod_self` → `diagMap_preimage_prod_self`. `diag_image` and `preimage_coe_coe_diagonal` are marked `@[deprecated]`.
This PR was prepared with the assistance of Claude Opus. |
t-data |
124/15 |
Mathlib/Data/Finset/Prod.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Data/Set/Prod.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Compactness/Lindelof.lean,Mathlib/Topology/NhdsSet.lean |
7 |
2 |
['github-actions', 'linesthatinterlace'] |
joneugster assignee:joneugster |
0-64917 18 hours ago |
0-60395 16 hours ago |
20-15442 20 days |
| 37592 |
erdOne author:erdOne |
feat(Geometry/Convex): indexed convex combinations |
We introduce `sConvexCombo` and the indexed version `iConvexCombo` as the main API for `ConvexSpace` and prove lemmas around the new definitions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
540/171 |
Mathlib/Analysis/Convex/MetricSpace.lean,Mathlib/Geometry/Convex/ConvexSpace/AffineSpace.lean,Mathlib/Geometry/Convex/ConvexSpace/Defs.lean |
3 |
92 |
['ADedecker', 'TBUGTB', 'YaelDillies', 'b-mehta', 'bryangingechen', 'erdOne', 'eric-wieser', 'faenuccio', 'github-actions', 'grunweg', 'kbuzzard', 'martinwintermath', 'mathlib-bors', 'mathlib-merge-conflicts', 'ocfnash'] |
nobody |
0-64236 17 hours ago |
0-71197 19 hours ago |
12-4738 12 days |
| 39240 |
vihdzp author:vihdzp |
chore: deprecate `Ordinal.one_ne_zero` → `_root_.one_ne_zero` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
easy
|
9/8 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean |
3 |
1 |
['github-actions', 'plp127'] |
nobody |
0-62402 17 hours ago |
0-70778 19 hours ago |
0-70507 19 hours |
| 39195 |
linesthatinterlace author:linesthatinterlace |
feat(Logic/Function/Defs): Add dcomp lemmas |
This PR adds API lemmas about `dcomp` that were previously missing.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
13/0 |
Mathlib/Logic/Function/Defs.lean |
1 |
6 |
['github-actions', 'linesthatinterlace', 'plp127'] |
nobody |
0-61983 17 hours ago |
0-57915 16 hours ago |
1-55475 1 day |
| 32555 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
112/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean |
2 |
41 |
['SnirBroshi', 'SproutSeeds', 'YaelDillies', 'github-actions', 'jcommelin', 'ksenono'] |
YaelDillies assignee:YaelDillies |
0-60847 16 hours ago |
25-53487 25 days ago |
125-2770 125 days |
| 37405 |
Paul-Lez author:Paul-Lez |
feat(Mathlib/Algebra/BigOperators/Fin): lemma about List.ofFn |
I tried several places for this lemma but wasn't able to find any one that didn't result in a `large-import` issue - suggestions would be welcome!
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
7/0 |
Mathlib/Algebra/BigOperators/GroupWithZero/Action.lean |
1 |
1 |
['github-actions'] |
nobody |
0-59936 16 hours ago |
0-57854 15 hours ago |
1-47030 1 day |
| 38843 |
FordUniver author:FordUniver |
chore(Combinatorics/SimpleGraph/Copy): replace file-wide @[expose] with selective exposure |
Removes the file-wide `@[expose] public section` from `Mathlib.Combinatorics.SimpleGraph.Copy`, adding `@[expose]` only on `Copy.id`, `Copy.ofLE`, `Copy.toEmbedding`, and `Copy.topEmbedding`, which have exported `rfl`-proved `@[simp]` lemmas. Changes `IsIndContained` to `abbrev` to match `IsContained` and `Free`, and replaces `@[simps!]` with explicit `@[simp]` lemmas.
---
Removed the file-wide `@[expose] public section` as suggested in [#38631](https://github.com/leanprover-community/mathlib4/pull/38631#discussion_r3172376231).
Added `@[expose]` to `id`, `ofLE`, and `topEmbedding` since each has an exported `@[simp]` lemma proved by `rfl`, and as far as I understand the module system requires any definition unfolded in such a proof to be exposed. Also added it to `toEmbedding` since `topEmbedding` is defined via it and `topEmbedding_apply` needs to unfold through both.
Changed `IsIndContained` to `abbrev` since it's just a structural alias (`Nonempty (G ↪g H)`) and downstream code needs to work through it transparently — matching `IsContained` and `Free` which are already `abbrev`.
Replaced `@[simps!]` on `topEmbedding` with an explicit `@[simp]` lemma since the definition has a tactic proof body, which creates a private `_proof_1` term that can end up in generated lemma names and break downstream imports.
Added `toEmbedding_apply` to match the existing `toHom_apply`. |
t-combinatorics
new-contributor
|
13/8 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
2 |
['github-actions'] |
nobody |
0-59897 16 hours ago |
0-61048 16 hours ago |
0-60777 16 hours |
| 37755 |
YaelDillies author:YaelDillies |
refactor(Data/Finsupp): use `single` in `uniqueEquiv` |
In essence, this changes `(Finsupp.uniqueEquiv i).symm m` from having support `univ.filter (fun _ ↦ m ≠ 0)` to having support `if m = 0 then {i} else ∅`. These are equal, but having the RHS be `single 1 r` is much more useful in practice. Similarly for `MonoidAlgebra`. To avoid simp getting stuck after rewriting with `uniqueEquiv_symm_apply`, add `uniqueEquiv_symm_apply_apply` and tag it with `simp↓ high`.
Also rename `Equiv.finsuppUnique` to `Finsupp.uniqueEquiv` and change the `Unique ι` argument into `Subsingleton ι` and `i : ι`. Similarly for `AddEquiv` and `LinearEquiv`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
110/70 |
Mathlib/Algebra/FreeAlgebra/Cardinality.lean,Mathlib/Algebra/Group/Finsupp.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Single.lean,Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean,Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean,Mathlib/LinearAlgebra/Finsupp/Pi.lean,Mathlib/RepresentationTheory/Action.lean,Mathlib/RepresentationTheory/Equiv.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean,Mathlib/RepresentationTheory/Homological/Resolution.lean,Mathlib/RingTheory/PicardGroup.lean,Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/GaussNorm.lean,Mathlib/RingTheory/PowerSeries/PiTopology.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean,Mathlib/RingTheory/TensorProduct/Free.lean |
18 |
18 |
['Vierkantor', 'YaelDillies', 'eric-wieser', 'github-actions'] |
Vierkantor assignee:Vierkantor |
0-59402 16 hours ago |
0-67433 18 hours ago |
6-29156 6 days |
| 38850 |
joelriou author:joelriou |
feat(Algebra/Homology): the injective model structure on bounded below cochain complexes |
When `C` is an abelian category with enough injectives, the category `CochainComplex.Plus C` of bounded below cochain complexes is endowed with a model category structure, where weak equivalences are quasi-isomorphisms, cofibrations are monomorphisms and fibrations are the epimorphisms that have a degreewise injective kernel.
In future PR, we shall deduce the injective derivability structures on bounded below cochain complexes in `C` and its homotopy category, which shall allow the construction of right derived functors, and when it is shown that these derived functors are triangulated, it will be possible to refactor `Functor.rightDerived`.
---
- [x] depends on: #39076
- [x] depends on: #38999
- [x] depends on: #38632
- [x] depends on: #38651
- [x] depends on: #38995
- [x] depends on: #38996
- [x] depends on: #38997
- [x] depends on: #38998
[](https://gitpod.io/from-referrer/)
|
t-category-theory
large-import
|
286/2 |
Mathlib.lean,Mathlib/Algebra/Homology/Factorizations/Basic.lean,Mathlib/Algebra/Homology/HomotopyCategory/KInjective.lean,Mathlib/Algebra/Homology/ModelCategory/Injective.lean,Mathlib/CategoryTheory/Abelian/EpiWithInjectiveKernel.lean |
5 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
dagurtomas assignee:dagurtomas |
0-58557 16 hours ago |
0-57901 16 hours ago |
1-44226 1 day |
| 39256 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): add monotonicity lemma for LanguageOn |
In Symbolic dynamics.
Proof that the language of a set of configurations is monotone with respect to inclusion of configuration sets:
X ⊆ Y → LanguageOn X U ⊆ LanguageOn Y U
The proof is a direct unfolding of definitions: a pattern in the language of X comes from restricting some configuration x ∈ X, and inclusion X ⊆ Y allows the same witness to be used for Y. |
t-dynamics
new-contributor
|
9/1 |
Mathlib/Dynamics/SymbolicDynamics/Basic.lean |
1 |
3 |
['github-actions'] |
nobody |
0-54863 15 hours ago |
0-53821 14 hours ago |
0-53575 14 hours |
| 39208 |
urkud author:urkud |
chore(Algebra/Polynomial): golf |
Use existing lemmas instead of reinventing the wheel.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
5/18 |
Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Eval/Defs.lean |
2 |
1 |
['github-actions'] |
nobody |
0-52602 14 hours ago |
0-50446 13 hours ago |
1-45722 1 day |
| 30230 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): the integral of a vector-valued function against a vector measure is additive |
Add some basic lemmas about the integral of a vector measure. This PR specifically focuses on the additivity of the integral.
Created with the help of Codex.
---
- [x] depends on: #28499
- [x] depends on: #39103
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
372/25 |
Mathlib/MeasureTheory/Integral/FinMeasAdditive.lean,Mathlib/MeasureTheory/Integral/SetToL1.lean,Mathlib/MeasureTheory/VectorMeasure/Basic.lean,Mathlib/MeasureTheory/VectorMeasure/Integral.lean |
4 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
nobody |
0-50960 14 hours ago |
0-49982 13 hours ago |
0-80317 22 hours |
| 37934 |
Thmoas-Guan author:Thmoas-Guan |
feat(FieldTheory): definition of transcendental separable field extension |
In this PR, we introduce the concept of separably generated field extension and transcendental separable field extension.
Further properties will be in #37838
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
110/0 |
Mathlib.lean,Mathlib/FieldTheory/TranscendentalSeparable.lean |
2 |
4 |
['Thmoas-Guan', 'github-actions', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
0-48736 13 hours ago |
0-47816 13 hours ago |
10-67583 10 days |
| 39138 |
Thmoas-Guan author:Thmoas-Guan |
refactor(Algebra/GeometricallyReduced): refactor `Algebra.IsGeometricallyReduced` |
Refactor `Algebra.IsGeometricallyReduced` to adapt to general algebra over commutative ring.
In up-coming #39141, we proved that this definition makes base change to any field reduced.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
43/17 |
Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean,Mathlib/RingTheory/Nilpotent/GeometricallyReduced.lean |
2 |
8 |
['Thmoas-Guan', 'chrisflav', 'github-actions'] |
nobody |
0-48721 13 hours ago |
0-47561 13 hours ago |
2-33443 2 days |
| 34713 |
dennj author:dennj |
feat(Probability/Markov): stationary distributions for stochastic matrices |
This PR proves that every row-stochastic matrix on a finite nonempty
state space has a stationary distribution in the standard simplex.
Main additions to `Mathlib/Probability/Markov/Stationary.lean`:
- `IsStationary`: A distribution μ is stationary for matrix P if μ ᵥ* P = μ
- `cesaroAverage`: Cesàro average of iterates of a vector under a matrix
- `Matrix.rowStochastic.exists_stationary_distribution`: existence theorem
The proof uses Cesàro averaging: start with uniform distribution, form
averages, extract convergent subsequence by compactness, show limit is
stationary via L¹ non-expansiveness.
Also adds `vecMul_mem_stdSimplex` to `Stochastic.lean`: multiplying a
probability vector by a row-stochastic matrix preserves simplex membership.
This is human-made PR with AI help in golfing proof and documenting the code. |
new-contributor
t-measure-probability
|
166/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Stochastic.lean,Mathlib/Probability/Markov/Stationary.lean |
3 |
16 |
['dennj', 'dupuisf', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts', 'riccardobrasca'] |
EtienneC30 assignee:EtienneC30 |
0-48693 13 hours ago |
0-47773 13 hours ago |
26-55005 26 days |
| 39075 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra/CommRingCat): colimit of local ring via local hom |
In this PR, we deal with filtered colimit of local ring via local homomorphisms, proving it is
again local, with maximal ideal equal to the union of images of maximal ideals.
Co-authored-by: Wang Jingting
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
209/0 |
Mathlib.lean,Mathlib/Algebra/Category/Ring/FilteredColimitsLocal.lean |
2 |
1 |
['github-actions'] |
nobody |
0-48359 13 hours ago |
0-47341 13 hours ago |
4-59403 4 days |
| 37975 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): AdicCompletion of local ring is local |
In this PR, we proved that AdicCompletion of local ring wrt the maximal ideal is local ring with maximal ideal equal to the map of the original maximal ideal.
Also, removing some old junk produced by myself.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
173/5 |
Mathlib/RingTheory/AdicCompletion/LocalRing.lean |
1 |
15 |
['BryceT233', 'Thmoas-Guan', 'github-actions'] |
alreadydone assignee:alreadydone |
0-48261 13 hours ago |
0-46879 12 hours ago |
29-73568 29 days |
| 37577 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walk): upgrade subset theorems to sublist/prefix/suffix |
Upgrades theorems about `p.support ⊆ q.support` / `p.darts ⊆ q.darts` / `p.edges ⊆ q.edges` to `List.IsInfix`/`List.IsSuffix`/`List.Sublist`, which imply the subset versions.
Also adds `cycleBypass` sublist lemmas that were missing, and golfs `length_bypass_le` and `bypass_eq_self_of_length_le` using the new sublist theorems.
Co-authored-by: Iván Renison <85908989+IvanRenison@users.noreply.github.com>
---
Except for a couple of `cycleBypass` ones, I did not add such theorems where there was no subset theorem to begin with (e.g. `(p.take n).darts <+: p.darts`), as they are usually not worth stating since they're trivial and simp proves them.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
112/81 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean |
5 |
4 |
['YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
0-48148 13 hours ago |
0-55062 15 hours ago |
39-84178 39 days |
| 38606 |
dennj author:dennj |
feat: preparation for Vanishing Sum of Roots of Unity |
Adds the Mathlib API extensions needed for an upcoming formalization of the Lam-style classification theorem for vanishing sums of roots of unity.
* Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean
+ `exists_eq_const_of_sum_smul_eq_zero_of_sum_eq_zero_of_linearIndependent`: if `∑ vᵢ = 0` and the first `n-1` of `n` vectors are linearly independent, every linear relation has constant coefficients.
* Mathlib/RingTheory/Radical/NatInt.lean
+ `Nat.totient_eq_div_radical_mul_totient_radical`: Euler's totient splits as `φ(n) = (n / rad n) * φ(rad n)`.
* Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean
+ `IsPrimitiveRoot.sum_range_pow_mul_div_eq_zero_of_dvd`: the `d` evenly-spaced powers of a primitive `k`-th root sum to zero, for `d ∣ k` and `1 < d`.
* Mathlib/NumberTheory/Cyclotomic/LinearDisjoint.lean (new)
+ `IsPrimitiveRoot.linearDisjoint_adjoin_pow_of_coprime`: cyclotomic subfields of coprime orders are linearly disjoint over `ℚ`.
* Mathlib/NumberTheory/Cyclotomic/LinearRelations.lean (new)
+ `IsPrimitiveRoot.coeffs_eq_of_sum_pow_eq_zero_prime_coprime`: in the cyclotomic field of order `p * m` with `p` prime coprime to `m`, any `ℚ⟮ζ^p⟯`-linear relation among powers of `ζ^m` has all coefficients equal.
---
I need these as preparation to start formalizing the theorem:
Let k be a positive integer. If a finite family of complex k-th roots of unity sums to zero, then the size of the family is a non-negative integer combination of the prime divisors of k.
---
Human-made PR with AI used for golfing and documentation |
new-contributor |
219/0 |
Mathlib.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/NumberTheory/Cyclotomic/LinearDisjoint.lean,Mathlib/NumberTheory/Cyclotomic/LinearRelations.lean,Mathlib/RingTheory/Radical/Totient.lean,Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean |
6 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-47152 13 hours ago |
0-44811 12 hours ago |
7-28038 7 days |
| 35672 |
dennj author:dennj |
feat(RingTheory/Polynomial/Cyclotomic): vanishing sums and fiber equidistribution at primitive roots |
## Summary
Building on `sum_eq_zero_iff_forall_eq` from #34592, this PR adds:
- cyclotomic_dvd_of_aeval_eq_zero, exists_int_smul_cyclotomic_of_natDegree_le_totient — integer polynomials vanishing at a primitive n-th root are divisible by cyclotomic n ℤ, and (for degree ≤ φ(n)) integer multiples of it.
- sum_eq_zero_iff_forall_eq and its ℤ / ZMod p variants — vanishing iff all coefficients equal.
- sum_fiber_eq_sum_fiber_of_sum_weighted_pow_eq_zero, card_fiber_eq_card_div_of_sum_pow_eq_zero — fiber equidistribution.
- cyclotomic_prime_coeff — the formula (cyclotomic p R).coeff i = if i < p then 1 else 0, generalising existing coeff_zero/coeff_one lemmas.
-
References: [deLauneyFlannery2011, Lemma 2.8.5] (underlying ℚ/ℕ fact) and [armario2024, Lemma 7 and Theorem 3] (ℤ statement and the fiber-counting application).
Theorems imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory
Human made PR with LLM used for documentation and proof golfing |
t-ring-theory
new-contributor
LLM-generated
|
128/2 |
Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean,docs/references.bib |
3 |
6 |
['dennj', 'github-actions', 'grunweg', 'ocfnash'] |
ocfnash assignee:ocfnash |
0-45306 12 hours ago |
0-47478 13 hours ago |
25-47719 25 days |
| 36910 |
Brian-Nugent author:Brian-Nugent |
feat(CategoryTheory): 4 and 5 lemmas for ComposableArrows n |
Adds versions of the 4 and 5 lemmas for morphisms in `ComposableArrows n`.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
83/2 |
Mathlib/Algebra/Homology/ExactSequence.lean,Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean,Mathlib/CategoryTheory/ComposableArrows/Basic.lean |
3 |
26 |
['Brian-Nugent', 'dagurtomas', 'erdOne', 'github-actions', 'robin-carlier'] |
adamtopaz assignee:adamtopaz |
0-45198 12 hours ago |
0-45198 12 hours ago |
34-79540 34 days |
| 37407 |
Paul-Lez author:Paul-Lez |
feat(Data/List/Basic): lemma about sums of lists |
Co-authored-by: Xavier Genereux
---
[](https://gitpod.io/from-referrer/)
|
t-data |
3/0 |
Mathlib/Data/List/Basic.lean |
1 |
4 |
['YaelDillies', 'github-actions'] |
nobody |
0-43034 11 hours ago |
1-50742 1 day ago |
1-50471 1 day |
| 26464 |
joelriou author:joelriou |
feat(LinearAlgebra): generators of pi tensor products |
In this PR, we show that the `R`-module `⨂[R] i, M i` is finitely generated if the index type is finite and all `M i` are finitely generated. This follows from a more precise result about generators of `⨂[R] i, M i`.
---
This PR continues the work from #18725.
Original PR: https://github.com/leanprover-community/mathlib4/pull/18725 |
file-removed
t-algebra
label:t-algebra$ |
260/7 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/Data/SubtypeNeLift.lean,Mathlib/LinearAlgebra/PiTensorProduct/Basic.lean,Mathlib/LinearAlgebra/PiTensorProduct/DFinsupp.lean,Mathlib/LinearAlgebra/PiTensorProduct/DirectSum.lean,Mathlib/LinearAlgebra/PiTensorProduct/Finite.lean,Mathlib/LinearAlgebra/PiTensorProduct/Generators.lean,Mathlib/LinearAlgebra/TensorPower/Basic.lean,Mathlib/LinearAlgebra/TensorPower/Symmetric.lean,Mathlib/Logic/Equiv/Option.lean,Mathlib/RingTheory/PiTensorProduct.lean,Mathlib/SetTheory/Cardinal/Finite.lean |
13 |
35 |
['eric-wieser', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] |
mattrobball assignee:mattrobball |
0-42169 11 hours ago |
0-41490 11 hours ago |
84-42527 84 days |
| 38869 |
TJHeeringa author:TJHeeringa |
feat(Analysis/InnerProductSpace): Add instance for quotient of InnerProductSpace |
---
Couldn't find the inner product space instance for a quotient of an inner product space. After confirming at [#Is there code for X? > Quotient of inner product space is inner product space](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Quotient.20of.20inner.20product.20space.20is.20inner.20product.20space/with/592464432), I made this PR.
Defines an innerProductSpace instance on the quotient based on the isometry with the orthogonal complement, which is a closed subspace of the full space and thus has an innerProductSpace instance.
AI usage:
Didn't understand how to properly apply `quotient_norm_mk_eq K.toAddSubgroup x`. Claude suggested using convert. Otherwise no AI used, aside from acting as secondary Loogle.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
64/0 |
Mathlib/Analysis/InnerProductSpace/ProdL2.lean |
1 |
37 |
['TJHeeringa', 'github-actions', 'j-loreaux', 'themathqueen', 'wwylele'] |
j-loreaux assignee:j-loreaux |
0-41792 11 hours ago |
2-39120 2 days ago |
8-8682 8 days |
| 38993 |
CBirkbeck author:CBirkbeck |
feat(NumberTheory/ModularForms): Sturm bound for level-1 modular forms |
The Sturm bound for level 1: a modular form `f : ModularForm 𝒮ℒ k` whose q-expansion has order strictly greater than `k / 12` is identically zero.
Also restates `dimension_level_one` more cleanly using `Nat.ModEq` and `k / 12`, and adds a small `CuspForm.discriminantEquiv` API needed by the proof.
- [x] depends on: #38806
This PR was done with the help of Claude Code. |
t-number-theory
LLM-generated
|
92/20 |
Mathlib/NumberTheory/ModularForms/CuspFormSubmodule.lean,Mathlib/NumberTheory/ModularForms/LevelOne/DimensionFormula.lean |
2 |
42 |
['CBirkbeck', 'MichaelStollBayreuth', 'github-actions', 'grunweg', 'mathlib-dependent-issues'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-40864 11 hours ago |
0-41046 11 hours ago |
1-40878 1 day |
| 36485 |
Paul-Lez author:Paul-Lez |
feat(Data/Finset/Finite): `Finset.sigma` commutes with `Finset.filter` |
Not so sure about the `simp` tag - reviewer feedback welcome on that:)
---
[](https://gitpod.io/from-referrer/)
|
t-data
easy
|
11/0 |
Mathlib/Data/Finset/Sigma.lean |
1 |
10 |
['Paul-Lez', 'eric-wieser', 'github-actions'] |
nobody |
0-40716 11 hours ago |
0-41919 11 hours ago |
1-2548 1 day |
| 39269 |
godofecht author:godofecht |
feat(Algebra/Spectrum): add the second resolvent identity |
Adds `spectrum.resolvent_sub_resolvent`:
For `a b : A` in an `R`-algebra and `r` in the resolvent set of both,
`resolvent a r - resolvent b r = resolvent a r * (a - b) * resolvent b r`.
Companion to `spectrum.resolvent_eq`. |
t-algebra
new-contributor
label:t-algebra$ |
16/0 |
Mathlib/Algebra/Algebra/Spectrum/Basic.lean |
1 |
2 |
['github-actions'] |
nobody |
0-36714 10 hours ago |
0-35431 9 hours ago |
0-35160 9 hours |
| 39268 |
mortarsanjaya author:mortarsanjaya |
feat(Algebra/Order/BigOperators/Ring/Finset): weaken hypothesis in the Cauchy-Schwarz inequality |
The hypothesis `∀ i ∈ s, r i ^ 2 = f i * g i` in the Cauchy-Schwarz inequality `sum_sq_le_sum_mul_sum_of_sq_eq_mul` can be weakened. We only need `∀ i ∈ s, r i ^ 2 ≤ f i * g i`.
---
This is a continuation of #38093.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
18/9 |
Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean |
1 |
2 |
['github-actions'] |
nobody |
0-35802 9 hours ago |
0-34967 9 hours ago |
0-34696 9 hours |
| 39271 |
tb65536 author:tb65536 |
feat(RingTheory/Ideal/MinimalPrime/Localization): criterion for `R ⧸ I` to have dimension zero |
This PR proves that a quotient `R ⧸ I` has dimension at most zero iff if all minimal primes over `I` are maximal.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
large-import
label:t-algebra$ |
21/1 |
Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean,Mathlib/RingTheory/KrullDimension/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
0-33036 9 hours ago |
0-33036 9 hours ago |
0-32765 9 hours |
| 38848 |
jcreinhold author:jcreinhold |
feat(AlgebraicTopology/SimplicialSet): exists_isPushout_of_ne_top |
Every proper subcomplex of a simplicial set extends by attaching a single cell along its boundary, exhibited as a pushout of `∂Δ[n] ↪ Δ[n]`. This is the per-cell input for cell-by-cell filtrations of monomorphisms in `SSet`.
Adapted from @joelriou 's [proof](https://github.com/joelriou/topcat-model-category/blob/813338a8c88cfe0096deed7e3ba7daf92d4a1c71/TopCatModelCategory/SSet/Boundary.lean#L187). I also added the supporting lemma `Types.isPullback_of_eq_setPreimage` (set-preimage square is a pullback in `Type u`).
AI use: Claude helped locate `subtype_val_mono` and the `backward.isDefEq.respectTransparency` option.
|
t-algebraic-topology
new-contributor
|
120/3 |
Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean,Mathlib/CategoryTheory/Limits/Types/Pullbacks.lean |
2 |
23 |
['github-actions', 'jcreinhold', 'joelriou', 'mckoen'] |
joelriou assignee:joelriou |
0-31654 8 hours ago |
0-30960 8 hours ago |
9-72739 9 days |
| 39263 |
kbuzzard author:kbuzzard |
perf(Algebra/EuclideanDomain/Defs): prio decrease of EuclideanDomain.toCommRing |
This instance always applies, and is unlikely to be the right answer in practice.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
11/0 |
Mathlib/Algebra/EuclideanDomain/Defs.lean |
1 |
5 |
['YaelDillies', 'github-actions', 'kbuzzard', 'leanprover-radar'] |
nobody |
0-29760 8 hours ago |
0-28782 7 hours ago |
0-40872 11 hours |
| 26394 |
winstonyin author:winstonyin |
feat: existence of local flows on manifolds |
This PR continues the work from #21777.
Original PR: https://github.com/leanprover-community/mathlib4/pull/21777
Transfer the existence theorem of local flows on vector spaces to manifolds. The precise statement is:
> If a vector field `v` on a manifold `M` is continuously differentiable at an interior point `x₀`, then for a given `t₀` there exists a neighbourhood `u` of `x₀`, a positive `ε`, and `γ : M → ℝ → M` such that `γ x` is an integral curve of `v` on `(t₀ - ε, t₀ + ε)` for all `x ∈ u`.
This is powerful because all curves `γ x` (each with initial condition `x ∈ u`) share the same existence time interval `(t₀ - ε, t₀ + ε)`, rather than each curve having its own `ε`. This will allow us to show that $C^1$ vector fields on compact manifolds always have global integral curves / global flows.
Any suggestions to shorten the proof or split out useful lemmas are welcome!
- [x] depends on: #26392
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
138/61 |
Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Order/Filter/Prod.lean |
3 |
7 |
['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash', 'winstonyin'] |
ocfnash assignee:ocfnash |
0-29135 8 hours ago |
0-27243 7 hours ago |
8-3200 8 days |
| 39230 |
bryangingechen author:bryangingechen |
chore: extract API from #38807 and golf |
I wanted to understand why these two proofs in #38807 were long (and also play around more with the API in this corner of the library) so I walked through them with Claude Opus.
prepared with Claude code
|
t-order
LLM-generated
|
23/37 |
Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/DirSupClosed.lean |
2 |
2 |
['github-actions', 'vihdzp'] |
nobody |
0-26346 7 hours ago |
1-11353 1 day ago |
1-11082 1 day |
| 35043 |
winstonyin author:winstonyin |
refactor(Analysis/ODE): restate existence and uniqueness using integral curve API |
* Create `Mathlib/Analysis/ODE/ExistUnique.lean` to collect existence and uniqueness results for ODEs stated in terms of the integral curve API (`IsIntegralCurve`, `IsIntegralCurveOn`, `IsIntegralCurveAt`).
* Move and restate the Picard-Lindelöf existence theorems from `PicardLindelof.lean` and the $C^1$ vector field results using `IsIntegralCurveOn`/`IsIntegralCurveAt` instead of raw `HasDerivWithinAt`/`HasDerivAt`.
* Move and restate the Grönwall-based uniqueness theorems from `Gronwall.lean` using `IsIntegralCurveOn` with half-open intervals (`Ico`/`Ioc`) instead of `HasDerivWithinAt … (Ici t)`/`HasDerivWithinAt … (Iic t)`.
* Rename uniqueness theorems to use dot notation on the integral curve types (e.g. `ODE_solution_unique_of_mem_Icc_right` becomes `IsIntegralCurveOn.eqOn_Icc_right`).
* Add `IsIntegralCurveOn.eqOn_inter`: if two integral curves on preconnected sets `I` and `J` agree at a point in both sets, they agree on `I ∩ J`.
* Add deprecation aliases for all renamed lemmas.
- [ ] depends on: #29186
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
421/308 |
Mathlib.lean,Mathlib/Analysis/ODE/ExistUnique.lean,Mathlib/Analysis/ODE/Gronwall.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,docs/1000.yaml,docs/undergrad.yaml |
7 |
8 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mcdoll', 'winstonyin'] |
sgouezel assignee:sgouezel |
0-26073 7 hours ago |
0-25231 6 hours ago |
32-81278 32 days |
| 38957 |
wwylele author:wwylele |
chore(GroupTheory/DivisibleHull): remove `backward.privateInPublic` |
---
[](https://gitpod.io/from-referrer/)
|
tech debt
t-group-theory
|
12/19 |
Mathlib/GroupTheory/DivisibleHull.lean |
1 |
7 |
['github-actions', 'grunweg', 'jcommelin', 'wwylele'] |
jcommelin assignee:jcommelin |
0-25584 7 hours ago |
0-24958 6 hours ago |
7-33037 7 days |
| 39214 |
Hagb author:Hagb |
refactor(Data/Finsupp/MonomialOrder): remove `.wf` (well foundedness) field from `MonomialOrder` |
Many properties still hold without the well-foundedness.
Although Gröbner basis theory requires the monomial order to be well founded for the termination of the division algorithm (formalized in `MonomialOrder.div`), many properties that don't relay on the division or remainder still hold without the well-foundedness.
Even the division algorithm can terminate in some cases where the monomial order isn't well founded. For example, if the divisors set is finite, then the algorithm can terminate w.r.t. `MonomialOrder.lex (σ := Nat)` even though it isn't well founded. Such cases cannot be directly stated if the formalization of monomial order requires well-foundedness.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
21/13 |
Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder/DegLex.lean |
4 |
4 |
['Hagb', 'github-actions', 'vihdzp'] |
nobody |
0-25557 7 hours ago |
0-25834 7 hours ago |
1-42954 1 day |
| 37495 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Sum): add homomorphism, embedding and isomorphism of sums |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
58/2 |
Mathlib/Combinatorics/SimpleGraph/Sum.lean |
1 |
16 |
['IvanRenison', 'YaelDillies', 'github-actions', 'mkaratarakis'] |
YaelDillies assignee:YaelDillies |
0-24853 6 hours ago |
0-24241 6 hours ago |
39-19194 39 days |
| 39218 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walk): make `p.Nil` the simpNF of `p = nil` and `p.length = 0` |
These are equivalent, and `p.Nil` works even when the endpoints of the walk aren't defeq.
[#graph theory > Deprecate `p = nil` in favor of `p.Nil`?](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Deprecate.20.60p.20.3D.20nil.60.20in.20favor.20of.20.60p.2ENil.60.3F/with/538017334)
The main event is `Walk/Basic.lean`:
- Swapped sides of `nil_iff_eq_nil` to create `eq_nil_iff_nil`, tagged `@[simp]` and deprecated the original
- Changed the RHS of `length_eq_zero_iff` from `p = nil` to `p.Nil`, and generalized to non-closed walks
- Deprecated `nil_iff_length_eq` which is the symmetric iff
- Added `Nil.length_eq_zero` alias
- Untagged `exists_length_eq_zero_iff` with `@[simp]` and added `exists_nil_iff` to replace it
The rest is fixing everything that broke (or uses of now-deprecated lemmas), and:
- [`Walk/Maps`] Added `nil_map_iff` to replace `map_eq_nil_iff` which is the same but with `.Nil` instead of `= nil`
- [`Walk/Decomp`] Added `nil_rotate` to replace `rotate_eq_nil` which is the same but with `.Nil` instead of `= nil`
---
Also renamed `set_walk_*` in `Counting.lean` to follow the naming convention.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
70/54 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Metric.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Counting.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Traversal.lean |
10 |
10 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
0-24118 6 hours ago |
0-57301 15 hours ago |
1-6198 1 day |
| 38087 |
kbuzzard author:kbuzzard |
perf: add some fast_instance% |
---
[](https://gitpod.io/from-referrer/)
`fast_instance%` experts should take a look at this and say which if any are spurious. I confess to throwing them around rather randomly.
Zulip thread [#mathlib4 > random fast_instance% makes gains @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/random.20fast_instance.25.20makes.20gains/near/585737520)
|
t-algebra label:t-algebra$ |
10/9 |
Mathlib/Algebra/EuclideanDomain/Field.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
3 |
5 |
['github-actions', 'kbuzzard', 'leanprover-radar', 'themathqueen'] |
joneugster assignee:joneugster |
0-22337 6 hours ago |
0-25267 6 hours ago |
27-36985 27 days |
| 37183 |
dagurtomas author:dagurtomas |
feat(Tactic/CategoryTheory): map attribute |
Adding `@[map]` to a lemma named `H` of shape `∀ .., f = g`, where `f` and `g` are morphisms
in some category `C`, creates a new lemma named `H_map` of the form
`∀ .. {D} (func : C ⥤ D), F.map f = F.map g` and then applies
`simp only [Functor.map_comp, Functor.map_id]`.
---
[](https://gitpod.io/from-referrer/)
|
LLM-generated
t-meta
t-category-theory
|
290/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/MapSimp.lean |
5 |
11 |
['adamtopaz', 'dagurtomas', 'github-actions', 'joelriou'] |
nobody |
0-18049 5 hours ago |
22-4242 22 days ago |
47-80621 47 days |
| 35820 |
smmercuri author:smmercuri |
feat: unit lemmas and embedding for `FiniteAdeleRing` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
42/4 |
Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean |
1 |
11 |
['Multramate', 'Ruben-VandeVelde', 'github-actions', 'smmercuri'] |
nobody |
0-18048 5 hours ago |
21-73930 21 days ago |
67-52950 67 days |
| 36439 |
xgenereux author:xgenereux |
feat(Algebra/Adjoin): CoeDep instances for Algebra.adjoin on singletons |
It is a common occurrence that I need to consider an element `x` or some polynomial evaluated in `x`, `p.eval x` as an element of `Algebra.adjoin R {x}`.
This makes it so that we can write
- `(x : adjoin R {x})` instead of `⟨x, self_mem_adjoin_singleton A x⟩`
- `(p.eval x : adjoin R {x})` instead of `⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩`
This is particularly useful when we need to write the type anyways, so that we need not to write `(⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩ : adjoin R {x})` anymore.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
33/3 |
Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean |
2 |
17 |
['Vierkantor', 'chrisflav', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'xgenereux'] |
nobody |
0-18048 5 hours ago |
14-51812 14 days ago |
49-84791 49 days |
| 39106 |
SnirBroshi author:SnirBroshi |
feat(LinearAlgebra/Matrix/Reindex): `AddEquiv` and `RingEquiv` |
We had `Matrix.reindex` bundled as a `LinearEquiv` and an `AlgEquiv`,
and this bundles it as an `AddEquiv` and a `RingEquiv`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
143/40 |
Mathlib/LinearAlgebra/Matrix/Basis.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean,Mathlib/LinearAlgebra/Matrix/Reindex.lean,Mathlib/LinearAlgebra/Matrix/Transvection.lean |
4 |
5 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
0-17475 4 hours ago |
0-15897 4 hours ago |
0-36198 10 hours |
| 36218 |
Brian-Nugent author:Brian-Nugent |
feat(CategoryTheory): Add exact sequences for Sheaf Cohomology |
In this PR, I add the long exact sequence for sheaf cohomology as well as prove that it is functorial. Since sheaf cohomology is defined in terms of `Ext`, this is done using the covariant sequence for `Ext`.
---
- [x] depends on: #34742
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
226/0 |
Mathlib.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/ExactSequences.lean |
2 |
10 |
['Brian-Nugent', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
robin-carlier assignee:robin-carlier |
0-16846 4 hours ago |
0-81285 22 hours ago |
0-83145 23 hours |
| 37523 |
matthewjasper author:matthewjasper |
feat: elements of Dedekind domain approximate elements of valuation ring |
Algebra part of showing that `R` is dense in `O_v` which is used to show that `R / v` is isomorphic to
the residue field of `O_v` and construct the base change isomorphism for finite adeles.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
87/11 |
Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
riccardobrasca assignee:riccardobrasca |
0-16845 4 hours ago |
24-56940 24 days ago |
39-67108 39 days |
| 38086 |
dagurtomas author:dagurtomas |
feat(CategoryTheory): composition of profunctors |
---
- [x] depends on: #38085
- [x] depends on: #38382
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
497/0 |
Mathlib.lean,Mathlib/CategoryTheory/Profunctor/Bicategory.lean,Mathlib/CategoryTheory/Profunctor/Comp.lean,Mathlib/Logic/Relation.lean |
4 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
robin-carlier assignee:robin-carlier |
0-16844 4 hours ago |
0-46413 12 hours ago |
0-52564 14 hours |
| 38383 |
dagurtomas author:dagurtomas |
chore(CategoryTheory/Limits): dualize chosen coends API |
---
The dualization from coends to ends is mostly LLM generated, the initial coend API is written by hand
- [x] depends on: #38382
[](https://gitpod.io/from-referrer/)
|
LLM-generated
t-category-theory
|
151/8 |
Mathlib/CategoryTheory/Limits/Chosen/End.lean,Mathlib/CategoryTheory/Limits/Types/End.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
robin-carlier assignee:robin-carlier |
0-16843 4 hours ago |
0-51241 14 hours ago |
0-57666 16 hours |
| 39117 |
joelriou author:joelriou |
feat(CategoryTheory): the right derived functor commutes with the shift |
A few lemmas are obtained about precomposing and postcomposing left/right Kan extensions or right/left derived functors with equivalences of categories. By applying these results to the equivalences given by shifts, we construct a family of isomorphisms which shows that the right derived functor commutes with shifts, and by proving certain compatibilities, we obtain a `Functor.CommShift` instance of the right derived functor of a functor which commutes with shifts.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
large-import
|
413/9 |
Mathlib.lean,Mathlib/CategoryTheory/Functor/Derived/LeftDerived.lean,Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean,Mathlib/CategoryTheory/Functor/Derived/RightDerivedCommShift.lean,Mathlib/CategoryTheory/Functor/KanExtension/AdjunctionPreserves.lean,Mathlib/CategoryTheory/Functor/KanExtension/Basic.lean,Mathlib/CategoryTheory/Shift/CommShift.lean,Mathlib/CategoryTheory/Shift/Localization.lean |
8 |
3 |
['github-actions', 'joelriou', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
0-16838 4 hours ago |
0-58638 16 hours ago |
2-45422 2 days |
| 39179 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Measure/Sub` |
- refactors `Mathlib/MeasureTheory/Measure/Sub` by shortening `sub_le_iff_le_add_of_le`
Extracted from #38104
[](https://gitpod.io/from-referrer/)
|
codex
LLM-generated
t-measure-probability
|
1/5 |
Mathlib/MeasureTheory/Measure/Sub.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
sgouezel assignee:sgouezel |
0-16837 4 hours ago |
1-77258 1 day ago |
1-76987 1 day |
| 39180 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue` |
- refactors `Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue` by simplifying `singularPart_mutuallySingular` and `singularPart_neg`
Extracted from #38104
[](https://gitpod.io/from-referrer/)
|
codex
LLM-generated
t-measure-probability
|
3/24 |
Mathlib/MeasureTheory/VectorMeasure/Decomposition/Lebesgue.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
sgouezel assignee:sgouezel |
0-16836 4 hours ago |
1-77182 1 day ago |
1-76911 1 day |
| 39201 |
b-mehta author:b-mehta |
chore(SpecificGroups/Alternating/Simple): remove a convert |
As mentioned here https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/support.20of.20permutations.20on.20Type.20instead.20of.20Fintype/with/593547821
I misdiagnosed the issue in that thread, and this PR only fixes one of the issues.
The "issue" in this case was that the lemma `cycleType_ofSubtype` contains a non-variable instance of `Fintype (Subtype p)`, which means that when applying the lemma, the "wrong" instance could be picked. The correct pattern is that if a lemma requires `Fintype _`, then it should be stated *explicitly* in the type, even if that instance is derivable from other hypotheses. (An existing example is https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Fintype/Sets.html#Set.toFinset_union).
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
maintainer-merge
|
5/10 |
Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean |
2 |
10 |
['AntoineChambert-Loir', 'adomani', 'b-mehta', 'github-actions', 'tb65536'] |
tb65536 assignee:tb65536 |
0-16834 4 hours ago |
0-53009 14 hours ago |
1-7327 1 day |
| 39227 |
SnirBroshi author:SnirBroshi |
feat(GroupTheory/Commutator/Basic): `⁅H₁, H₂⁆` is a normal subgroup of `H₁ ⊔ H₂` |
Shows `⁅H₁, H₂⁆ ≤ H₁ ⊔ H₂` and `(⁅H₁, H₂⁆.subgroupOf <| H₁ ⊔ H₂).Normal`, and adds `_ ≤ normalizer _ ↔` lemmas to help.
---
(from the book "Finite Groups" by Daniel Gorenstein)
Also renames `AddSubgroup.mem_normalizer_iff_conj_image_eq` because `to_additive` now renames `conj` to `addConj` and this theorem should stay in sync with its counterpart, even though it's not using `to_additive` because `MulAut` isn't additivized.
The proofs seem pretty long for such trivial lemmas, suggestions welcome :)
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
68/5 |
Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Commutator/Basic.lean |
2 |
1 |
['github-actions'] |
tb65536 assignee:tb65536 |
0-16833 4 hours ago |
1-16537 1 day ago |
1-16266 1 day |
| 39265 |
joelriou author:joelriou |
feat(CategoryTheory/Localization): transport resolutions along 2-commutative squares |
We transport `LocalizerMorphism.HasLeft/RightResolutions` assumptions along 2-commutative squares.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
160/3 |
Mathlib.lean,Mathlib/CategoryTheory/Comma/Arrow.lean,Mathlib/CategoryTheory/Comma/CatCommSq.lean,Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean,Mathlib/CategoryTheory/Localization/Resolution.lean,Mathlib/CategoryTheory/MorphismProperty/Basic.lean |
6 |
1 |
['github-actions'] |
robin-carlier assignee:robin-carlier |
0-16831 4 hours ago |
0-38185 10 hours ago |
0-37914 10 hours |
| 36388 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/AdjMatrix): submatrices and homomorphisms |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
73/3 |
Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean |
1 |
17 |
['SnirBroshi', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] |
YaelDillies assignee:YaelDillies |
0-16726 4 hours ago |
0-16041 4 hours ago |
29-48174 29 days |
| 39183 |
yuanyi-350 author:yuanyi-350 |
refactor(Analysis): golf `Mathlib/Analysis/Complex/Exponential` |
- shortens the reindexing step in `norm_exp_sub_sum_le_norm_mul_exp` by switching from `sum_bij` to `sum_nbij'` with `simp +contextual`
Extracted from #37968
[](https://gitpod.io/from-referrer/) |
codex
t-analysis
LLM-generated
|
2/12 |
Mathlib/Analysis/Complex/Exponential.lean |
1 |
2 |
['github-actions', 'yuanyi-350'] |
urkud assignee:urkud |
0-16341 4 hours ago |
1-76340 1 day ago |
1-76069 1 day |
| 38582 |
dennj author:dennj |
feat(LinearAlgebra/Matrix): add Hadamard matrices |
Introduce `Matrix.IsHadamard` over a general `Ring R`, with the basic theory:
- `IsHadamard` and `IsComplexHadamard` predicates (Definitions 2.3.1 and 2.7.1
of de Launey–Flannery, *Algebraic Design Theory*).
- `IsHadamard.det_sq`: the Hadamard determinant identity `(det A)² = n^n`.
- `IsHadamard.det_ne_zero`: over an integral domain of characteristic zero.
- `IsHadamard.transpose`: `Aᵀ` is Hadamard whenever `A` is (Theorem 2.3.6),
proved over `[CommRing R] [IsDomain R] [CharZero R]` via the adjugate.
- `IsHadamard.card_eq_sq_of_const_row_sum`: a Hadamard matrix with constant
row sum `s` has order `s²` (slightly stronger than Theorem 2.3.7: the
constant-column-sum hypothesis is implied by orthogonality).
- `IsHadamard.kronecker`: the Sylvester (Kronecker product) construction.
- `IsHadamard.four_dvd_card`: order of a Hadamard matrix of order > 2 is
divisible by 4.
`Matrix.mul_eq_smul_one_symm`: if `M * N = c • 1` and `det M ≠ 0` over an
integral domain, then `N * M = c • 1`. Used here for the transpose proof, but
generally useful, analogous to how `mul_eq_one_comm` works over stably finite
rings, but covers the integral-domain case (e.g. `ℤ`, `ℤ[X]`) where matrix
inverses don't exist.
## References
Adds the de Launey–Flannery bibliography entry, cited from the new file.
Human-made PR with LLM used for proof golfing and documentation |
t-algebra
new-contributor
label:t-algebra$ |
150/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/HadamardMatrix.lean,docs/references.bib |
3 |
31 |
['JJYYY-JJY', 'dennj', 'eric-wieser', 'github-actions', 'themathqueen', 'wwylele'] |
nobody |
0-15425 4 hours ago |
0-14711 4 hours ago |
15-34932 15 days |
| 39019 |
urkud author:urkud |
chore(*): reduce defeq abuse of `Set α = α → Prop` |
---
[](https://gitpod.io/from-referrer/)
|
tech debt
maintainer-merge
|
17/16 |
Mathlib/Analysis/Complex/CoveringMap.lean,Mathlib/Analysis/Normed/Group/FunctionSeries.lean,Mathlib/Data/Nat/Order/Lemmas.lean,Mathlib/NumberTheory/EulerProduct/ExpLog.lean,Mathlib/NumberTheory/NumberField/Ideal/Asymptotics.lean,Mathlib/NumberTheory/NumberField/Ideal/KummerDedekind.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/FiberBundle/Basic.lean |
8 |
5 |
['JovanGerb', 'github-actions', 'urkud'] |
JovanGerb assignee:JovanGerb |
0-15239 4 hours ago |
1-49210 1 day ago |
5-74877 5 days |
| 39261 |
grunweg author:grunweg |
chore: remove MathlibTest/fun_prop.lean |
Its content is superseded by the explanation in `Mathlib/Tactic/FunProp`.
A future PR will rename this test file to `FunProp.lean`.
---
[](https://gitpod.io/from-referrer/)
|
file-removed
easy
t-meta
|
0/226 |
MathlibTest/fun_prop.lean |
1 |
3 |
['github-actions', 'grunweg', 'lecopivo'] |
dwrensha assignee:dwrensha |
0-15097 4 hours ago |
0-40320 11 hours ago |
0-40049 11 hours |
| 39276 |
JovanGerb author:JovanGerb |
chore(Analysis/Asymptotics/Defs): add missing `@[refl]` tags |
`gcongr`/`grw` use `rfl` to close reflexive subgoals, so we need these `@[refl]` tags.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
easy
maintainer-merge
|
2/0 |
Mathlib/Analysis/Asymptotics/Defs.lean |
1 |
2 |
['github-actions', 'grunweg'] |
nobody |
0-15096 4 hours ago |
0-17224 4 hours ago |
0-16953 4 hours |
| 35394 |
HugLycan author:HugLycan |
feat(Tactic/Positivity): make positivity work for types that are not partial orders |
Make positivity work for types that are not partial orders
Most PositivityExt haven't been updated for non partial order cases yet. They will be updated in the later PR.
`Strictness` now depends on `Option Q(PartialOrder $α)` instead of `Q(PartialOrder $α)`, and the constructors `Strictness.positive`/`Strictness.nonnegative` now have their `Q(PartialOrder $α)` typeclass arguments.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-meta
|
654/375 |
Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/Algebra.lean,Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Field/Power.lean,Mathlib/Algebra/Order/Floor/Extended.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Module/Field.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/Order.lean,Mathlib/Analysis/Complex/Trigonometric.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Bound.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Removal.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Real.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Factorial/DoubleFactorial.lean,Mathlib/Data/Nat/Totient.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/Geometry/Euclidean/Altitude.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Real.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean,Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/NumberField.lean,Mathlib/NumberTheory/Height/Projectivization.lean,Mathlib/NumberTheory/LucasLehmer.lean,Mathlib/NumberTheory/SelbergSieve.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/MetricSpace/Bounded.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,MathlibTest/positivity.lean |
54 |
88 |
['HugLycan', 'JovanGerb', 'fpvandoorn', 'github-actions', 'joneugster', 'leanprover-radar', 'mathlib-merge-conflicts'] |
dwrensha assignee:dwrensha |
0-14879 4 hours ago |
0-14571 3 hours ago |
48-44546 48 days |
| 39278 |
grunweg author:grunweg |
chore: rename fun_prop test files |
After #39261, the only remaining files are fun_prop2.lean and fun_prop_dev.lean. Rename them to something more telling, and make them UpperCamelCase while at it. (The latter is mathlib's policy for module names anyway.)
---
[](https://gitpod.io/from-referrer/)
|
file-removed |
0/0 |
MathlibTest/FunProp.lean,MathlibTest/FunPropMinimal.lean |
2 |
2 |
['github-actions', 'lecopivo'] |
nobody |
0-14850 4 hours ago |
0-14282 3 hours ago |
0-14011 3 hours |
| 39061 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walk/Paths): a trail which isn't a path has a cycle subwalk |
- `p.IsPath ↔ ∀ (v : V) (w : G.Walk v v), w.IsSubwalk p → w.Nil`
- `p.IsTrail → (p.IsPath ↔ ∀ (v : V) (w : G.Walk v v), w.IsSubwalk p → ¬w.IsCycle)`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
28/0 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean |
2 |
3 |
['Rida-Hamadani', 'github-actions'] |
nobody |
0-14767 4 hours ago |
5-16775 5 days ago |
5-16504 5 days |
| 38507 |
grunweg author:grunweg |
fix(Linter/PrivateModule): only suggest @[expose] if the module has any definitions |
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
9/5 |
Mathlib/CategoryTheory/MarkovCategory/Positive.lean,Mathlib/Tactic/Linter/PrivateModule.lean,MathlibTest/PrivateModuleLinter/reservedName2.lean |
3 |
6 |
['JovanGerb', 'github-actions', 'grunweg', 'leanprover-radar'] |
JovanGerb assignee:JovanGerb |
0-13791 3 hours ago |
0-55306 15 hours ago |
0-55035 15 hours |
| 39277 |
mcdoll author:mcdoll |
feat(Tactic/FunProp): use assumption as default discharger |
Implements `with_reducible assumption` as the default discharger for `fun_prop`. The makes `fun_prop` more useful for properties that are valid on subsets, such as `ContinuousOn` and `IntegrableOn`, since theorems about these properties tend to have sidegoals, which usually are in the local context already.
We only run `assumption` at reducible transparency to avoid any expensive defeq checks.
Done at ICERM workshop "Techniques and Tools for the Formalization of Analysis"
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
49/54 |
Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean,Mathlib/Analysis/Complex/Harmonic/Poisson.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Basic.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean,Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean,Mathlib/Analysis/SpecialFunctions/Log/RpowTendsto.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/MeasureTheory/Group/Arithmetic.lean,Mathlib/NumberTheory/Chebyshev.lean,Mathlib/NumberTheory/EulerProduct/ExpLog.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/MvPolynomial.lean,Mathlib/NumberTheory/LSeries/AbstractFuncEq.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/Tactic/FunProp.lean,Mathlib/Tactic/FunProp/Elab.lean,Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/UniformField.lean,MathlibTest/fun_prop2.lean,MathlibTest/fun_prop_dev.lean |
23 |
5 |
['github-actions', 'grunweg', 'leanprover-radar', 'mcdoll'] |
nobody |
0-10928 3 hours ago |
0-7627 2 hours ago |
0-9221 2 hours |
| 36840 |
SnirBroshi author:SnirBroshi |
feat(SetTheory/Ordinal/Arithmetic): a few ordinal division lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
maintainer-merge
|
27/9 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean |
1 |
9 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'vihdzp'] |
nobody |
0-7108 1 hour ago |
0-14602 3 hours ago |
39-34818 39 days |
| 39262 |
Paul-Lez author:Paul-Lez |
chore(Algebra/Ring/CharZero): document `scoped simp` design choice |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
maintainer-merge
label:t-algebra$ |
1/0 |
Mathlib/Algebra/Ring/CharZero.lean |
1 |
6 |
['Paul-Lez', 'YaelDillies', 'github-actions'] |
nobody |
0-6989 1 hour ago |
0-11945 3 hours ago |
0-11674 3 hours |
| 38555 |
SnirBroshi author:SnirBroshi |
feat(Order/Hom/Basic): `OrderEmbedding.id` and `OrderEmbedding.comp` |
Define `OrderEmbedding.id` and `OrderEmbedding.comp`,
and add missing associativity lemmas for `OrderHom` and `OrderIso`.
---
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
53/1 |
Mathlib/Order/Hom/Basic.lean |
1 |
12 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
0-6838 1 hour ago |
0-19235 5 hours ago |
10-41597 10 days |
| 39060 |
vihdzp author:vihdzp |
feat: generalize `Finsupp` theorems from `CanonicallyOrderedAdd` to `IsBotZeroClass` |
---
- [x] depends on: #39057 (for golfing)
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-order
label:t-algebra$ |
65/48 |
Mathlib/Data/DFinsupp/Interval.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/Data/Finsupp/Interval.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/WellFounded.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean |
9 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-6204 1 hour ago |
0-4629 1 hour ago |
0-4358 1 hour |
| 36743 |
Jun2M author:Jun2M |
feat(Combinatorics/GraphLike): introduce `GraphLike` typeclass |
Per discussion at ([#graph theory > HasAdj](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445)), This PR introduces the `GraphLike` typeclass to capture the notions like `dart` and `walk` across various graph objects, such as `SimpleGraph`, `Graph`, and `Digraph`.
The goal is that by abstracting these core components into a typeclass, we can prove these results once for all graph-like structures rather than duplicating them across different graph types.
### Main definitions
* `GraphLike V D E Gr`: A typeclass parameterized by a vertex type `V`, dart type `D` and a graph type `Gr` (with `V`, `D` & `E` as an `outParam`).
* `GraphLike.verts : Set V`: The set of vertices of the graph.
* `GraphLike.darts : Set D`: The set of darts of the graph.
* `GraphLike.edges : Set E`: The set of edges of the graph.
* `GraphLike.Adj : V → V → Prop`: The adjacency relation, defined by default as `∃ d ∈ darts, fst d = u ∧ snd d = v`.
---
This PR generalises #35776 to also unify `Graph`.
PRs depending on this PR are
#39047 (graphLike with no multi edges) => #39050 (Digraph is graphLike)
||
V
#36829 (undirected graphLike) => #39053 (Graph is graphLike) & #39054 (Simplegraph is graphLike)
||
V
#36756 (def of walk on GraphLike) => #36971 (change Simplegraph to use GraphLike walk)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
186/0 |
Mathlib.lean,Mathlib/Combinatorics/GraphLike/Basic.lean |
2 |
73 |
['IvanRenison', 'Jun2M', 'SnirBroshi', 'YaelDillies', 'github-actions', 'lauramonk', 'mathlib-merge-conflicts'] |
YaelDillies assignee:YaelDillies |
0-3603 1 hour ago |
2-3554 2 days ago |
55-15243 55 days |
| 39144 |
YaelDillies author:YaelDillies |
feat(Analysis): more `LinearIsometryEquiv` API |
From MeanFourier
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
31/18 |
Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/Normed/Operator/LinearIsometry.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean |
4 |
1 |
['github-actions'] |
nobody |
0-2128 35 minutes ago |
0-747 7 minutes ago |
0-476 7 minutes |
| 38029 |
Thmoas-Guan author:Thmoas-Guan |
refactor(RingTheory): refactor APIs for minimal primes to lessen defeq abuse |
Remove access by `.1.1` and `.1.2` to mem minimal primes.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
94/80 |
Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Basic.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Colon.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean,Mathlib/RingTheory/KrullDimension/Regular.lean,Mathlib/RingTheory/KrullDimension/Zero.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean |
9 |
41 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'themathqueen'] |
mattrobball assignee:mattrobball |
0-1729 28 minutes ago |
0-1866 26 minutes ago |
26-65236 26 days |