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 |
| 36786 |
SproutSeeds author:SproutSeeds |
feat(DoubleCounting): parity of odd-degree vertices in bipartite incidence |
Adds `odd_card_filter_odd_bipartiteAbove_iff_odd_card_filter_odd_bipartiteBelow` to
`Mathlib.Combinatorics.Enumerative.DoubleCounting`.
This is the small parity-helper first step for #25231.
Validation:
- `lake build Mathlib.Combinatorics.Enumerative.DoubleCounting`
Supersedes closed #36077 after replaying the helper cleanly on current `master`.
AI usage: used Codex for branch recovery, replay onto current `master`, and draft wording;
final code choices and verification by me.
|
new-contributor
t-combinatorics
large-import
|
17/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean |
1 |
2 |
['github-actions'] |
nobody |
29-1424 29 days ago |
29-1507 29 days ago |
29-1495 29 days |
| 34797 |
vlad902 author:vlad902 |
feat(SimpleGraph): `cycleGraph.cycle` is a cycle |
(A follow-up PR will show that `cycleGraph.cycle` is also hamiltonian.)
---
- [x] depends on: #35360
- [x] depends on: #34766
- [x] depends on: #34796
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
32/1 |
Mathlib/Combinatorics/SimpleGraph/Circulant.lean |
1 |
7 |
['Ruben-VandeVelde', 'github-actions', 'mathlib-dependent-issues', 'vlad902'] |
nobody |
25-36411 25 days ago |
27-32814 27 days ago |
28-61721 28 days |
| 35655 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): strongly regular graphs have diameter 2 |
A strongly regular graph with positive `μ` must have diameter 2, as long as the vertex set is nontrivial and it is not complete.
---
- [x] depends on: #35657
This statement is useful in the literature, I wanted to add it after seeing it being used in the proof of the Hoffman-Singleton theorem.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
18/0 |
Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
24-21785 24 days ago |
24-23384 24 days ago |
24-38890 24 days |
| 34633 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): define the Zarankiewicz function |
Defines the Zarankiewicz function $z(m, n; s, t)$ in terms of bipartite graphs.
---
- [x] depends on: #34632
This comes from splitting up #25841 into smaller PRs.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
156/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Zarankiewicz.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
3 |
5 |
['b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mitchell-horner'] |
nobody |
23-63208 23 days ago |
23-63273 23 days ago |
23-68842 23 days |
| 37109 |
zeekmartin author:zeekmartin |
feat(SimpleGraph): card of common neighbors equals card of triangles containing edge |
Adds `SimpleGraph.card_commonNeighbors_eq_card_triangles_containing_edge`
to `Mathlib/Combinatorics/SimpleGraph/Clique.lean`.
For adjacent vertices `u v` in a finite simple graph, establishes the bijection
between common neighbors and 3-cliques containing the edge `{u, v}`:
```lean
theorem card_commonNeighbors_eq_card_triangles_containing_edge
{u v : α} (huv : G.Adj u v) :
(G.commonNeighbors u v).toFinset.card =
((G.cliqueFinset 3).filter fun s => {u, v} ⊆ s).card
```
This connects `commonNeighbors` (defined in `Basic.lean`) with `cliqueFinset` —
a gap not previously covered in `Clique.lean`.
**AI disclosure**: Claude (Anthropic) was used as an assistant during the development of this proof. It helped with the initial proof structure and tactic suggestions. The proof was reviewed and validated step by step by the author, who can vouch for all the content. The mathematical idea originates from the author's prior Lean 4 work on spectral graph theory (github.com/zeekmartin/topostability-lean4).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
LLM-generated
new-contributor
|
61/0 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
7 |
['SnirBroshi', 'github-actions', 'zeekmartin'] |
nobody |
22-32383 22 days ago |
22-39542 22 days ago |
22-39530 22 days |
| 36850 |
whocares-abt author:whocares-abt |
feat(Combinatorics/SimpleGraph/Acyclic): add delete leaf from tree gives tree |
Added theorem stating Deleting a leaf from a tree produces a tree. |
t-combinatorics
new-contributor
|
5/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
7 |
['github-actions', 'vlad902'] |
nobody |
21-45524 21 days ago |
25-70512 25 days ago |
27-53356 27 days |
| 36794 |
vihdzp author:vihdzp |
doc(SetTheory/Ordinal/Principal): improve documentation |
The module docstring now contains a description of what an `op`-principal actually is. I've also added some additional names for discoverability.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
documentation
|
26/20 |
Mathlib/SetTheory/Ordinal/Principal.lean,Mathlib/SetTheory/Ordinal/Veblen.lean |
2 |
8 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
alreadydone assignee:alreadydone |
21-6835 21 days ago |
26-7309 26 days ago |
28-26500 28 days |
| 37131 |
IvanRenison author:IvanRenison |
doc(Combinatorics/SimpleGraph/Partition): improve docstrings in `SimpleGraph.Partition` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
11/16 |
Mathlib/Combinatorics/SimpleGraph/Partition.lean |
1 |
1 |
['github-actions'] |
nobody |
19-79650 19 days ago |
22-12261 22 days ago |
22-12249 22 days |
| 31892 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Sphere/PolePolar): poles and polars |
Define poles and polars for spheres in Euclidean affine spaces, and set up some basic API, including in particular La Hire's theorem (`p₁` lies on the polar of `p₂` if and only if `p₂` lies on the polar of `p₁`).
Poles and polars are actually meaningful for any quadric in a projective space over any field, but I think it's reasonable to set up this theory for spheres in the Euclidean context and potentially link it in future to more general projective geometry.
---
- [ ] depends on: #31891
- [ ] depends on: #32296
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
159/0 |
Mathlib.lean,Mathlib/Geometry/Euclidean/Sphere/PolePolar.lean |
2 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
JovanGerb assignee:JovanGerb |
19-6950 19 days ago |
19-30902 19 days ago |
19-31650 19 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'] |
JovanGerb assignee:JovanGerb |
19-6949 19 days ago |
19-30916 19 days ago |
19-31694 19 days |
| 34909 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2): `fromRel` equivalence with `Sigma` over a `Quotient` |
Add a non-dependent recursor on members of a `fromRel` set, and the following `Equiv`s:
- The `fromRel` set of a symmetric relation `r` is equivalent to summing that set restricted to fibers of `f`.
- For a relation homomorphism `r →r r'` where `r` is symmetric, the `fromRel` set of `r` is equivalent to summing that set restricted to equivalence classes of `r'` using a `Subtype`.
---
I find this recursor pretty useful when dealing with `fromRel`, the idea came from a suggestion by @kmill [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Eq.2Erec.20with.20a.20constant.20does.20nothing.3A.20h.20.E2.96.B8.20c.20.3D.20c/near/565176948) for another `Sym2` conundrum.
[](https://gitpod.io/from-referrer/)
|
t-data |
43/0 |
Mathlib/Data/Sym/Sym2.lean |
1 |
8 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] |
TwoFX and pechersky assignee:TwoFX assignee:pechersky |
19-6947 19 days ago |
26-11543 26 days ago |
68-57623 68 days |
| 37084 |
SnirBroshi author:SnirBroshi |
feat(Order/PropInstances): relations and `Subsingleton` |
`r = ⊤ ↔ Refl r` and `r = ⊥ ↔ Irrefl r` given `Subsingleton`
---
[](https://gitpod.io/from-referrer/)
|
t-order |
7/1 |
Mathlib/Order/PropInstances.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
18-6718 18 days ago |
22-63389 22 days ago |
22-63377 22 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 |
87/73 |
.github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean |
2 |
4 |
['github-actions', 'mathlib-merge-conflicts'] |
adomani assignee:adomani |
17-53679 17 days ago |
17-53962 17 days ago |
50-8890 50 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'] |
JovanGerb assignee:JovanGerb |
17-23382 17 days ago |
19-30913 19 days ago |
19-31637 19 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'] |
jsm28 assignee:jsm28 |
17-23252 17 days ago |
49-32815 49 days ago |
51-67089 51 days |
| 37006 |
hakii6 author:hakii6 |
feat(LinearAlgebra/Matrix/Block, Analysis/Normed/Algebra/MatrixExponential): add BlockTriangular.pow and BlockTriangular.exp |
# Summary
Add BlockTriangular.pow and BlockTriangular.exp for proving "det (exp A) = exp (trace A)"
# Which part using LLM
The part I used LLM is for
1. Searching duplicated theorems and lemmas I may missed (I already search them myself first).
2. Help me handle the "variables and signatures", the "letI" part, some of lemmas and theorems trivial but hard to find the true one.
3. After I finished, let them helped me check the structure match the disciplines of mathlib.
4. Check the steps PR match the disciplines of mathlib
Most things above are done by me first, then let them to make sure I'm not missing something.
# More context
More context can be found in a topic in "# new member" in Zulip
[#new members > (Matrix and NormedSpace.exp) | det (exp A) = exp (trace A)](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/580964688)
|
new-contributor
LLM-generated
|
54/1 |
Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/Topology/Instances/Matrix.lean |
3 |
59 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'hakii6', 'wwylele'] |
nobody |
17-12781 17 days ago |
19-15749 19 days ago |
24-6962 24 days |
| 37373 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Sum): add `LocallyFinite (G ⊕g H)` instance |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
11/0 |
Mathlib/Combinatorics/SimpleGraph/Sum.lean |
1 |
3 |
['SnirBroshi', 'github-actions', 'themathqueen'] |
nobody |
16-41765 16 days ago |
16-45248 16 days ago |
16-45236 16 days |
| 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'] |
joelriou assignee:joelriou |
16-6802 16 days ago |
17-84054 17 days ago |
17-84042 17 days |
| 37175 |
tb65536 author:tb65536 |
chore(GroupTheory/Nilpotent): move declarations into namespace |
This PR moves the declarations of `GroupTheory/Nilpotent` from the root namespace to either the `Subgroup` namespace or the `Group` namespace.
I also switched over to the commutator element notation in a few places.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
194/34 |
Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/GroupTheory/Frattini.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/SpecificGroups/ZGroup.lean |
4 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
16-6793 16 days ago |
21-26515 21 days ago |
21-26505 21 days |
| 37317 |
vihdzp author:vihdzp |
feat: a topology with a basis of clopens is completely regular |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
11/0 |
Mathlib/Topology/Separation/CompletelyRegular.lean |
1 |
4 |
['felixpernegger', 'github-actions', 'themathqueen', 'vihdzp'] |
urkud assignee:urkud |
15-47977 15 days ago |
18-41439 18 days ago |
18-41427 18 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
|
85/0 |
Mathlib.lean,Mathlib/NumberTheory/Transcendental/AnalyticPart.lean |
2 |
12 |
['MichaelStollBayreuth', 'SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'mkaratarakis'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
15-47349 15 days ago |
15-47404 15 days ago |
19-65849 19 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'] |
PatrickMassot assignee:PatrickMassot |
15-39255 15 days ago |
15-41409 15 days ago |
16-8411 16 days |
| 36788 |
hommmmm author:hommmmm |
feat(RingTheory): height of span of a prime element is one |
## Summary
- Add `Ideal.height_span_singleton_eq_one_of_prime`: in a Noetherian integral domain, the ideal generated by a prime element has height one.
## Notes
The new theorem follows directly from `height_le_one_of_isPrincipal_of_mem_minimalPrimes` (upper bound) and the fact that `span {p} ≠ ⊥` for `p` prime (lower bound).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
12/1 |
Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean |
1 |
5 |
['Multramate', 'github-actions', 'hommmmm'] |
mattrobball assignee:mattrobball |
15-17346 15 days ago |
15-18366 15 days ago |
28-85589 28 days |
| 36781 |
hommmmm author:hommmmm |
feat(RingTheory/UniqueFactorizationDomain): UFD iff height one primes are principal |
We prove that a Noetherian integral domain is a UFD if and only if every prime ideal of height one is principal (`UniqueFactorizationMonoid.iff_height_one_prime_principal`).
## New declarations
* `UniqueFactorizationMonoid.exists_height_one_le_of_finite_height`: given a prime of finite height ≥ 1, there exists a height one prime contained in it.
* `UniqueFactorizationMonoid.ne_bot_of_height_one`: an ideal of height one is nonzero.
* `UniqueFactorizationMonoid.height_ge_one_of_prime_ne_bot`: the height of a nonzero prime ideal in a domain is at least one.
* `UniqueFactorizationMonoid.height_one_prime_principal`: in a UFD, every height one prime is principal.
* `UniqueFactorizationMonoid.of_height_one_prime_principal`: every height one prime being principal implies UFD (Noetherian case).
* `UniqueFactorizationMonoid.iff_height_one_prime_principal`: the full iff statement.
## References
See https://stacks.math.columbia.edu/tag/0AFT
## 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
large-import
|
102/1 |
Mathlib/RingTheory/UniqueFactorizationDomain/Kaplansky.lean |
1 |
8 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'hommmmm', 'tb65536'] |
mattrobball assignee:mattrobball |
15-6487 15 days ago |
24-24728 24 days ago |
28-60323 28 days |
| 37461 |
grunweg author:grunweg |
chore: golf using the field tactic |
---
In the spirit of #31314.
[](https://gitpod.io/from-referrer/)
|
|
32/43 |
Counterexamples/NowhereDifferentiable.lean,Mathlib/Analysis/Calculus/Monotone.lean,Mathlib/Analysis/Complex/BorelCaratheodory.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/Normed/Field/Lemmas.lean,Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean,Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/InformationTheory/KullbackLeibler/Basic.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/MeasureTheory/Integral/MeanValue.lean,Mathlib/NumberTheory/ModularForms/Discriminant.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Defs.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/MDifferentiable.lean,Mathlib/NumberTheory/ModularForms/QExpansion.lean,Mathlib/Probability/CentralLimitTheorem.lean,Mathlib/Probability/Distributions/Gaussian/CharFun.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/Hilbert90.lean,Mathlib/RingTheory/PowerSeries/Exp.lean,Mathlib/Topology/UnitInterval.lean |
20 |
4 |
['github-actions', 'grunweg', 'j-loreaux'] |
nobody |
14-67661 14 days ago |
14-68963 14 days ago |
14-75423 14 days |
| 37482 |
grunweg author:grunweg |
chore: test two consecutive simps in the flexible linter |
They are not linted, and should not be --- let's add a test to document this. Found when reviewing #36728.
---
[](https://gitpod.io/from-referrer/)
|
easy |
9/1 |
MathlibTest/FlexibleLinter.lean |
1 |
1 |
['github-actions'] |
nobody |
14-62690 14 days ago |
14-62755 14 days ago |
14-62743 14 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'] |
nobody |
14-55323 14 days ago |
21-21854 21 days ago |
21-21842 21 days |
| 36886 |
Deep0Thinking author:Deep0Thinking |
feat(Combinatorics/Enumerative/Bonferroni): add Bonferroni inequalities |
This PR adds Bonferroni inequalities.
Main theorems:
- `Finset.indicator_biUnion_le_bonferroniIndicator_of_odd`
- `Finset.bonferroniIndicator_le_indicator_biUnion_of_even`
- `Finset.card_biUnion_le_bonferroniCard_of_odd`
- `Finset.bonferroniCard_le_card_biUnion_of_even`
Co-authored-by: Claude (Opus 4.6)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
334/4 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Bonferroni.lean,Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean |
3 |
4 |
['AlexeyMilovanov', 'Deep0Thinking', 'github-actions'] |
nobody |
14-49799 14 days ago |
26-42447 26 days ago |
26-43264 26 days |
| 34273 |
gasparattila author:gasparattila |
feat(Topology/Sets): finite sets are dense in `(Nonempty)Compacts` |
---
- [x] depends on: #34266
[](https://gitpod.io/from-referrer/)
|
t-topology |
35/0 |
Mathlib/Topology/Sets/VietorisTopology.lean |
1 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'scholzhannah'] |
mcdoll assignee:mcdoll |
14-39537 14 days ago |
22-36336 22 days ago |
22-37574 22 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 |
57/33 |
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 |
6 |
['gasparattila', 'github-actions', 'grunweg', 'lecopivo', 'mathlib-merge-conflicts'] |
dwrensha assignee:dwrensha |
14-21882 14 days ago |
19-19016 19 days ago |
51-16565 51 days |
| 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 |
81/1 |
Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
2 |
1 |
['github-actions'] |
nobody |
14-17601 14 days ago |
14-17676 14 days ago |
14-17664 14 days |
| 37443 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walks/Operations): permutations of support |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
15/0 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
14-16681 14 days ago |
14-16706 14 days ago |
15-26586 15 days |
| 36224 |
gasparattila author:gasparattila |
feat(Analysis/Normed/Affine): (pseudo)metric on `V →ᴬ[𝕜] Q` |
---
- [x] depends on: #36083
[](https://gitpod.io/from-referrer/)
|
t-analysis |
33/32 |
Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean,Mathlib/Analysis/Normed/Group/AddTorsor.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
sgouezel assignee:sgouezel |
14-6907 14 days ago |
14-50669 14 days ago |
14-78267 14 days |
| 36917 |
iarnoldy author:iarnoldy |
feat(LinearAlgebra/CliffordAlgebra): bivector Lie subalgebra |
Define the submodule of grade-n elements (n-vectors) in a Clifford algebra
and show that bivectors (n = 2) form a `LieSubalgebra` under the commutator
bracket. This gives the standard construction of so(Q) from Cl(Q).
Main definitions:
* `CliffordAlgebra.nvector` — grade-n submodule, spanned by n-fold products of ι
* `CliffordAlgebra.bivector` — nvector 2 Q, the bivector submodule
* `CliffordAlgebra.bivectorLieSubalgebra` — LieSubalgebra of bivectors
Main results:
* `CliffordAlgebra.lie_ι_mul_ι` — explicit commutator formula for bivector generators
* `CliffordAlgebra.lie_mem_bivector` — bracket closure of the bivector submodule
* `CliffordAlgebra.bivector_le_evenOdd_zero` — bivectors lie in the even part
The `LieModule` instance for `CliffordAlgebra Q` acting on itself is provided
explicitly (`instLieModuleSelf`) because automatic synthesis exceeds the default
heartbeat limit.
AI disclosure: This code was generated with AI assistance (Claude, Anthropic).
The submitter directed the construction and QA but is not a Lean programmer.
The mathematical content is classical (Doran & Lasenby, Ch. 3). Extra review
scrutiny is welcomed.
Co-authored-by: Claude
---
Open design questions for reviewers:
1. **Naming**: Is `nvector` the right name? Eric Wieser suggested generalizing
to n-vectors. Alternatives: `ιProd`, `grade`, or following the `exteriorPower`
pattern via `equivExterior` pullback.
2. **Scalar contamination**: The spanning set `{ι m₁ * ι m₂}` includes
`ι m * ι m = Q(m)` (scalars). Eric suggested pulling back `exteriorPower`
through `equivExterior` for pure grades (requires `Invertible (2 : R)`).
Happy to rework if that's preferred.
3. **instLieModuleSelf**: Should this be an upstream issue rather than a
local workaround? @ocfnash
4. **ι_mul_ι_comm'**: This may duplicate existing API (`ι_mul_ι_comm b a`
plus `polar_comm`). Happy to inline if reviewers prefer.
Discussed on Zulip: https://leanprover.zulipchat.com (Is there code for X? thread) |
new-contributor
t-algebra
LLM-generated
label:t-algebra$ |
338/0 |
Mathlib.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Bivector.lean |
2 |
2 |
['github-actions'] |
eric-wieser assignee:eric-wieser |
14-6900 14 days ago |
26-13268 26 days ago |
26-14481 26 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 |
265/5 |
Mathlib/Analysis/Complex/CanonicalDecomposition.lean,Mathlib/Analysis/Meromorphic/Order.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean |
3 |
1 |
['github-actions'] |
sgouezel assignee:sgouezel |
14-6891 14 days ago |
14-63305 14 days ago |
14-63293 14 days |
| 32583 |
MJ141592 author:MJ141592 |
refactor(SimpleGraph): change bridges not to require the edge to be present |
Remove the requirement for edges to exist in definition of isBridge, and then change the related lemmas to adjust for this, by renaming, fixing the statements and fixing the proofs, including in Acyclic.
Closes #31690.
---
- [x] depends on: #36802
- [x] depends on: #36804 |
t-combinatorics
new-contributor
|
84/84 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean |
4 |
20 |
['MJ141592', 'SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
13-64491 13 days ago |
13-64527 13 days ago |
14-6636 14 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'] |
nobody |
13-48648 13 days ago |
13-48719 13 days ago |
13-48707 13 days |
| 30900 |
vihdzp author:vihdzp |
feat: run-length encoding |
---
- [x] depends on: #30898
Moved from #17105.
[](https://gitpod.io/from-referrer/)
|
t-data |
168/0 |
Mathlib.lean,Mathlib/Data/List/RunLength.lean,Mathlib/Data/List/SplitBy.lean |
3 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'plp127'] |
pechersky assignee:pechersky |
13-37614 13 days ago |
13-37671 13 days ago |
55-67323 55 days |
| 37574 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph): Add lemma `Walk.IsCircuit.isCycle_cycleBypass` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
8/3 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
1 |
['github-actions'] |
nobody |
13-18144 13 days ago |
13-18213 13 days ago |
13-18201 13 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.
---
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 |
77/37 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean |
4 |
1 |
['github-actions'] |
nobody |
13-16783 13 days ago |
13-16859 13 days ago |
13-16847 13 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'] |
dwrensha assignee:dwrensha |
13-6801 13 days ago |
28-44693 28 days ago |
28-44689 28 days |
| 37536 |
grunweg author:grunweg |
chore: mark coordinateChange_apply_snd simp |
---
Inspired by #35978 and its follow-up #37535.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
8/9 |
Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean,Mathlib/Topology/FiberBundle/Trivialization.lean |
3 |
4 |
['github-actions', 'grunweg', 'leanprover-radar'] |
PatrickMassot assignee:PatrickMassot |
13-6793 13 days ago |
13-53993 13 days ago |
13-53981 13 days |
| 37576 |
WenrongZou author:WenrongZou |
feat(MvPowerSeries): connection between rename and subst |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
33/6 |
Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean |
2 |
3 |
['BryceT233', 'WenrongZou', 'github-actions'] |
nobody |
13-3257 13 days ago |
13-17078 13 days ago |
13-17066 13 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 |
5 |
['KryptosAI', 'Multramate', 'github-actions', 'ooovi'] |
nobody |
13-3084 13 days ago |
13-3142 13 days ago |
27-13458 27 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'] |
nobody |
12-62742 12 days ago |
12-62765 12 days ago |
26-46581 26 days |
| 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
|
395/0 |
Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
b-mehta assignee:b-mehta |
12-62698 12 days ago |
12-62745 12 days ago |
70-46200 70 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 |
12-47688 12 days ago |
20-11221 20 days ago |
20-16906 20 days |
| 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 |
15 |
['IvanRenison', 'YaelDillies', 'github-actions', 'mkaratarakis'] |
nobody |
12-46538 12 days ago |
12-47689 12 days ago |
13-79690 13 days |
| 34759 |
Hagb author:Hagb |
feat(RingTheory/MvPolynomial/MonomialOrder): add degree with `⊥` as degree of `0` |
`withBotDegree` is to distinguish the degree of zero polynomial from the degree of non-zero constant polynomial. `MonomialOrder.degree` of both are 0, while `withBotDegree` is `⊥` for zero polynomial and 0 for non-zero constant polynomial.
`MonomialOrder.withBotDegree` is to [`MonomialOrder.degree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=MonomialOrder.degree#doc) as [`Polynomial.degree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Polynomial.degree#doc) is to [`Polynomial.natDegree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Polynomial.natDegree#doc).
It's upstreamized from https://github.com/WuProver/groebner_proj.
---
It's upstream from [`Groebner/MonomialOrder.lean` in the repo `WuProver/groebner_proj`](https://github.com/WuProver/groebner_proj/blob/main/Groebner/MonomialOrder.lean).
- [x] ~~depends on: #34755~~
- [x] depends on: #34756
- [x] depends on: #34758
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
245/2 |
Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
2 |
5 |
['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
12-34942 12 days ago |
12-36380 12 days ago |
12-38465 12 days |
| 34705 |
mpenciak author:mpenciak |
feat(RingTheory): Grassmannian functor |
This PR shows that the association `A → G(k, (A ⊗[R] M); A)` for an `R`-algebra `A` and `R`-module `M` forms a functor.
(AI disclosure: an early version of this PR was prepared with the help of Claude)
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
LLM-generated
large-import
|
138/2 |
Mathlib/LinearAlgebra/TensorProduct/Quotient.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Grassmannian.lean |
3 |
12 |
['chrisflav', 'github-actions', 'mathlib-merge-conflicts', 'mpenciak', 'robin-carlier'] |
chrisflav assignee:chrisflav |
12-33055 12 days ago |
12-35720 12 days ago |
55-20525 55 days |
| 37245 |
DavidLedvinka author:DavidLedvinka |
feat(MeasureTheory): add Resolvent (Stieltjes/Cauchy) Transform |
This PR adds the definition of the `resolventTransform` of a measure and some API. This is a non-standard notion that generalizes both the Stieltjes Transform and Cauchy Transform of a (real-valued) measure so that (for example) the proof that these transforms define holomorphic functions off the support of the measure can be given for both at once. Perhaps these important special cases could be made into abbrevs?
- [ ] depends on: #37172
|
|
189/0 |
Mathlib.lean,Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/MeasureTheory/Measure/ResolventTransform.lean |
3 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
12-32757 12 days ago |
12-32801 12 days ago |
13-14314 13 days |
| 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 |
4 |
['Rida-Hamadani', 'SnirBroshi', 'github-actions'] |
nobody |
12-28115 12 days ago |
15-85626 15 days ago |
15-85758 15 days |
| 34182 |
IlPreteRosso author:IlPreteRosso |
refactor(Data/Finsupp): deprecate direct single ↔ Set.indicator shortcuts, add indicator_eq_set_indicator |
Routes Finsupp.single ↔ Set.indicator through Pi.single instead of direct shortcuts.
Adds `indicator_eq_set_indicator` bridging `Finsupp.indicator` and `Set.indicator` for non-dependent functions. Deprecates `single_eq_set_indicator` and `single_eq_indicator` — users should compose through `single_eq_pi_single` + `Set.indicator_singleton` instead. Golfs `single_eq_update` via `single_eq_pi_single`.
Continues #34083. |
t-data
new-contributor
|
27/19 |
Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean |
2 |
31 |
['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] |
TwoFX assignee:TwoFX |
12-28114 12 days ago |
12-34375 12 days ago |
85-3155 85 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 |
12-12985 12 days ago |
12-13059 12 days ago |
12-13047 12 days |
| 37561 |
IvanRenison author:IvanRenison |
feat(Data/List): add lemma `List.notMem_subset` |
---
Zulip question: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/List.2EnotMem_subset/with/583146215
[](https://gitpod.io/from-referrer/)
|
t-data |
3/0 |
Mathlib/Data/List/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
12-9405 12 days ago |
13-31901 13 days ago |
13-31889 13 days |
| 37252 |
artie2000 author:artie2000 |
feat(Algebra/Group/Submonoid/Support): properties of submonoid support |
* Prove how the support of a submonoid interacts with various operations
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
50/1 |
Mathlib/Algebra/Group/Submonoid/Support.lean |
1 |
1 |
['github-actions'] |
eric-wieser assignee:eric-wieser |
12-6932 12 days ago |
20-7065 20 days ago |
20-7053 20 days |
| 37538 |
harahu author:harahu |
doc(Probability): 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/)
|
t-measure-probability |
7/4 |
Mathlib/Probability/Independence/InfinitePi.lean,Mathlib/Probability/Kernel/Category/SFinKer.lean,Mathlib/Probability/Kernel/Category/Stoch.lean,Mathlib/Probability/Notation.lean,Mathlib/Probability/Process/Filtration.lean,Mathlib/Probability/StrongLaw.lean |
6 |
1 |
['Multramate', 'github-actions'] |
kex-y assignee:kex-y |
12-6926 12 days ago |
13-52777 13 days ago |
13-52765 13 days |
| 37593 |
IlPreteRosso author:IlPreteRosso |
refactor(Data.Finset.*Antidiagonal): rename set-based defs to `set*Antidiagonal` |
Renames set-based `Finset.mulAntidiagonal` → `setMulAntidiagonal` (and SMul/VAdd variants) to free the `mulAntidiagonal` name for the planned `HasMulAntidiagonal` typeclass. Deprecation aliases added.
Supersedes #34551 |
t-ring-theory
new-contributor
|
178/96 |
Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Data/Finset/MulAntidiagonal.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Summable.lean |
6 |
2 |
['github-actions'] |
nobody |
11-82729 11 days ago |
12-45975 12 days ago |
12-47737 12 days |
| 35733 |
mkaratarakis author:mkaratarakis |
feat: Algebraic setup and matrix coefficients for Gelfond-Schneider theorem |
This PR introduces the foundational algebraic setup and coefficient bounds required for the proof of the Gelfond-Schneider Theorem (Hilbert's Seventh Problem), which establishes that for algebraic numbers $\alpha \neq 0, 1$ and irrational algebraic $\beta$, the number $\alpha^\beta$ is transcendental.
Following the contradiction argument presented in Loo-Keng Hua's "Introduction to Number Theory" (Chapter 17.9, 490 -493) Gelfond's Proof), this file constructs the common number field $K$ and sets up the scaled algebraic integers for the auxiliary linear system. This system will later be solved via Siegel's lemma (Lemma 8.2, 490, Hua).
This PR is essentially the first half of page 490 in the book.
The proof proceeds by assuming $\gamma = \alpha^\beta$ is algebraic, meaning $\alpha$, $\beta$, and $\gamma$ all lie in an algebraic field $K$ of degree $h$.
1. Bundles the common number field $K$, the complex embeddings, and the algebraic preimages $\alpha', \beta', \gamma'$, alongside the core hypotheses of the theorem.
2. Defines the field degree $h = [K : \mathbb{Q}]$, and bounds $m = 2h + 2$ and $n = q^2 / (2m)$ to control the dimensions of the linear system.
3. Defines $c_1$, a natural number chosen so that $c_1 \alpha$, $c_1 \beta$, and $c_1 \gamma$ are algebraic integers in $K$. We prove numerous bounding and integrality lemmas (`isIntegral_c₁α`, `isInt_β_bound`, etc.).
4. Formalizes the core algebraic coefficients $(a+b\beta)^k \alpha^{al} \gamma^{bl}$ which appear in the evaluation of the derivatives of the auxiliary function $R(x)$.
5. By scaling the system by $c_1^{n-1+2mq}$, we successfully restrict the entries of our linear system matrix `A` entirely to the ring of integers $\mathcal{O}_K$, preparing it for the application of Siegel's lemma.
6. House Bounds (`c₂`) : Establishes the foundational base integer $c_2$ to bound the absolute values of the conjugates (houses) of our coefficients.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
913/49 |
Mathlib.lean,Mathlib/NumberTheory/NumberField/House.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean,Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean |
4 |
16 |
['github-actions', 'mkaratarakis', 'tb65536'] |
tb65536 assignee:tb65536 |
11-40356 11 days ago |
11-40411 11 days ago |
24-20835 24 days |
| 37636 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Copy): a graph is inducingly contained in another iff it's equivalent to an induced graph |
This is a version of `isIndContained_iff_exists_iso_subgraph` using `SimpleGraph.induce` instead of `Subgraph.IsInduced`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
8/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
1 |
['github-actions'] |
nobody |
11-35083 11 days ago |
11-35122 11 days ago |
11-35194 11 days |
| 36833 |
harahu author:harahu |
doc: demote repeated H1 headers |
Having more than one H1 header per file confuses search engines and thus makes documentation more difficult to find. Hence, we make sure that lean files only have a single H1 header in them.
In the case of `Mathlib/Tactic/Common.lean`, we achieve this by adding a new module header.
---
[](https://gitpod.io/from-referrer/)
|
documentation |
12/10 |
Archive/Imo/Imo2002Q3.lean,Archive/Imo/Imo2010Q5.lean,Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/RingTheory/LocalProperties/Injective.lean,Mathlib/RingTheory/LocalProperties/ProjectiveDimension.lean,Mathlib/RingTheory/QuasiFinite/Weakly.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/Linter/EmptyLine.lean |
9 |
2 |
['github-actions', 'harahu', 'vihdzp'] |
nobody |
11-26854 11 days ago |
11-26910 11 days ago |
11-27302 11 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$ |
574/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean |
6 |
9 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
joelriou assignee:joelriou |
11-6671 11 days ago |
19-66182 19 days ago |
19-77588 19 days |
| 35197 |
j-loreaux author:j-loreaux |
feat: Hölder framework for `lp` spaces |
---
- [ ] depends on: #35152
- [ ] depends on: #35198
[](https://gitpod.io/from-referrer/)
|
t-analysis |
315/9 |
Mathlib.lean,Mathlib/Analysis/Normed/Lp/LpEquiv.lean,Mathlib/Analysis/Normed/Lp/lpHolder.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Operator/Basic.lean,Mathlib/Tactic/Linter/TextBased.lean |
6 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
urkud assignee:urkud |
11-6668 11 days ago |
13-21905 13 days ago |
13-22177 13 days |
| 37646 |
SnirBroshi author:SnirBroshi |
feat(Logic): surjective embeddings are equivs |
Upgrade `Equiv.ofBijective` / `Embedding.equivOfSurjective` / `RelIso.ofSurjective` to equivalences.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
27/1 |
Mathlib/Logic/Embedding/Basic.lean,Mathlib/Logic/Equiv/Defs.lean,Mathlib/Order/RelIso/Basic.lean |
3 |
1 |
['github-actions'] |
nobody |
10-82751 10 days ago |
11-16037 11 days ago |
11-16025 11 days |
| 35628 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Maps): characterize `neighborSet` and `edgeSet` across an embedding |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
66/0 |
Mathlib/Combinatorics/SimpleGraph/Maps.lean |
1 |
10 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
10-41305 10 days ago |
11-23143 11 days ago |
33-34879 33 days |
| 37649 |
IvanRenison author:IvanRenison |
feat(Data): add theorem `Finset.image_eq_iff_eq_preimage` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
20/0 |
Mathlib/Data/Finset/Preimage.lean,Mathlib/Data/Set/Function.lean |
2 |
3 |
['github-actions', 'themathqueen'] |
nobody |
10-41121 10 days ago |
11-11210 11 days ago |
11-11198 11 days |
| 37027 |
mike1729 author:mike1729 |
refactor(LocallyConvex,Topology): split WeakDual/WeakSpace and rename WeakBilin |
Reorganize the weak topology files for cleaner dependencies:
1. **Rename** `Analysis.LocallyConvex.WeakDual` → `Analysis.LocallyConvex.WeakBilin`:
This file contains only general `WeakBilin` infrastructure (`LinearMap.toSeminormFamily`,
`weakBilin_withSeminorms`, `WeakBilin.locallyConvexSpace`, etc.) with no reference to
`WeakDual`. The name now reflects the content.
2. **Split** `Topology.Algebra.Module.Spaces.WeakDual` into `WeakDual` and `WeakSpace`:
The `WeakSpace` type, its instances, and `toWeakSpace/toWeakSpaceCLM` move to a new
`Topology.Algebra.Module.Spaces.WeakSpace`. This allows downstream files about weak spaces
to avoid depending on WeakDual.
3. **Add** `WeakSpace.seminormFamily` and `WeakSpace.withSeminorms` to
`Analysis.LocallyConvex.WeakSpace`: The weak topology on `WeakSpace 𝕜 E` is generated
by the seminorm family `fun f x ↦ ‖f x‖` indexed by `StrongDual 𝕜 E`, via the general
`LinearMap.weakBilin_withSeminorms` applied to the flipped `topDualPairing`.
Moves:
- Mathlib.Analysis.LocallyConvex.WeakDual → Mathlib.Analysis.LocallyConvex.WeakBilin
- WeakSpace → Mathlib.Topology.Algebra.Module.Spaces.WeakSpace
- toWeakSpace → Mathlib.Topology.Algebra.Module.Spaces.WeakSpace
- toWeakSpaceCLM → Mathlib.Topology.Algebra.Module.Spaces.WeakSpace
CC @j-loreaux
---
- [ ] depends on: #37314 |
new-contributor
file-removed
|
192/114 |
Mathlib.lean,Mathlib/Analysis/LocallyConvex/WeakBilin.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/Spaces/WeakDual.lean,Mathlib/Topology/Algebra/Module/Spaces/WeakSpace.lean |
6 |
6 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
10-39085 10 days ago |
10-39279 10 days ago |
20-54322 20 days |
| 37675 |
vihdzp author:vihdzp |
feat: `Order.cof Ordinal = univ` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
|
11/0 |
Mathlib/SetTheory/Cardinal/Cofinality.lean |
1 |
1 |
['github-actions'] |
nobody |
10-22568 10 days ago |
10-22642 10 days ago |
10-22630 10 days |
| 37676 |
IvanRenison author:IvanRenison |
feat(Data/Finset/Preimage): add lemmas about `Equiv.symm` |
---
`Finset` version of lemmas already existing for `Set`.
[](https://gitpod.io/from-referrer/)
|
t-data |
15/0 |
Mathlib/Data/Finset/Preimage.lean |
1 |
1 |
['github-actions'] |
nobody |
10-19498 10 days ago |
10-19579 10 days ago |
10-19567 10 days |
| 34031 |
lua-vr author:lua-vr |
feat(Dynamics/BirkhoffSum): add the maximal ergodic theorem |
---
This file exports three constants:
```lean
public def birkhoffAverageSupSet (f : α → α) (g : α → ℝ) (a : ℝ) : Set α :=
{x | ∃ n : ℕ, a < birkhoffAverage ℝ f g n x}
public theorem meas_birkhoffAverageSupSet_smul_const_le_integral (a : ℝ) (ha : 0 < a) :
μ.real (birkhoffAverageSupSet f g a) • a ≤ ∫ x in birkhoffAverageSupSet f g a, g x ∂μ
public theorem meas_birkhoffAverageSupSet_smul_const_le_norm (a : ℝ) (ha : 0 < a) :
μ.real (birkhoffAverageSupSet f (fun x ↦ ‖g x‖) a) • a ≤ ∫ x, ‖g x‖ ∂μ
```
In my interpretation, the other constants are auxiliary, so I did not make them public. If it's of independent interest, `birkhoffMax` could be exported or moved to a dedicated file, but I'm not sure of that at the moment.
- [x] depends on: #34030
- [x] depends on: #34029
- [x] depends on: #34025
[](https://gitpod.io/from-referrer/)
|
t-dynamics |
291/0 |
Mathlib.lean,Mathlib/Dynamics/BirkhoffSum/Maximal.lean |
2 |
4 |
['github-actions', 'lua-vr', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
ADedecker assignee:ADedecker |
10-6696 10 days ago |
41-48503 41 days ago |
41-48861 41 days |
| 37311 |
CoolRmal author:CoolRmal |
feat: lemmas about liminf multiplied by a constant |
Add some analogues of [ENNReal.limsup_const_mul_of_ne_top](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Filter/ENNReal.html#ENNReal.limsup_const_mul_of_ne_top) for liminf.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
34/5 |
Mathlib/Order/Filter/ENNReal.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
10-6692 10 days ago |
18-53141 18 days ago |
18-53471 18 days |
| 37441 |
lecopivo author:lecopivo |
fix(FunProp): be less strict about the shape of morphism theorems |
Don't be so restrictive about the shape of morphism theorems
Right now, `fun_prop` has a problem with a bundled morphism `Foo α` that coerces to `α → α → α` . The coerced function has two arguments and there is an unnecessary restriction about this. This PR lifts that restriction.
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60fun_prop.60.20in.20.60FunLike.60.20with.20multiple.20arguments/with/582731349)
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
42/14 |
Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/Theorems.lean,MathlibTest/fun_prop_dev.lean |
3 |
1 |
['github-actions'] |
adamtopaz assignee:adamtopaz |
10-6690 10 days ago |
15-43797 15 days ago |
15-43833 15 days |
| 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/)
|
|
159/0 |
Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
9-75734 9 days ago |
9-75757 9 days ago |
16-24786 16 days |
| 36889 |
KryptosAI author:KryptosAI |
feat(LinearAlgebra/Matrix/MoorePenrose): define the Moore-Penrose pseudo-inverse |
Defines `IsMoorePenroseInverse` and constructs the Moore-Penrose pseudo-inverse for matrices over `RCLike` fields. Closes #24787.
`Defs.lean` defines the predicate using the heterogeneous four-condition characterization from the issue, plus uniqueness for semigroups with `StarMul`.
`Basic.lean` constructs the inverse via orthogonal projection and `ker(f)ᗮ ≃ₗ range(f)`, then proves:
```lean
theorem exists_isMoorePenroseInverse (A : Matrix m n 𝕜) :
∃ (As : Matrix n m 𝕜), IsMoorePenroseInverse A As
def moorePenroseInverse (A : Matrix m n 𝕜) : Matrix n m 𝕜
lemma moorePenroseInverse_conjTranspose :
moorePenroseInverse (Aᴴ) = (moorePenroseInverse A)ᴴ
lemma moorePenroseInverse_eq_nonsing_inv (hA : IsUnit A) :
moorePenroseInverse A = A⁻¹
```
### AI disclosure
- **Gemini 2.5 Pro**: proof planning, initial code, edits
- **Claude Code (Opus 4.6)**: debugging, compilation, type-checking against mathlib4
I reviewed and directed all changes.
---
[](https://gitpod.io/from-referrer/) |
t-algebra
new-contributor
LLM-generated
label:t-algebra$ |
402/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/MoorePenrose/Basic.lean,Mathlib/LinearAlgebra/Matrix/MoorePenrose/Defs.lean |
3 |
29 |
['KryptosAI', 'eric-wieser', 'github-actions', 'themathqueen', 'vihdzp'] |
ocfnash assignee:ocfnash |
9-44831 9 days ago |
13-3142 13 days ago |
24-36204 24 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 |
645/0 |
Mathlib.lean,Mathlib/NumberTheory/AKSPrimality.lean |
2 |
51 |
['github-actions', 'jcommelin', 'kim-em', 'metakunt', 'qawbecrdtey', 'tb65536', 'vihdzp'] |
tb65536 assignee:tb65536 |
9-43400 9 days ago |
17-74126 17 days ago |
47-66875 47 days |
| 37189 |
Brian-Nugent author:Brian-Nugent |
feat(AlgebraicGeometry): The pushforward of a quasi-coherent sheaf between affines is quasi-coherent |
To be more precise, we show that if `AlgebraicGeometry.Scheme.Modules.fromTildeΓ` is an isomorphism then the same holds for the pushforward. This will show that being quasicoherent is stable under pushforward for affine morphisms once it is shown that `AlgebraicGeometry.Scheme.Modules.fromTildeΓ` being an isomorphism is equivalent to being quasicoherent.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
170/1 |
Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/Topology/Sheaves/SheafCondition/Sites.lean |
3 |
7 |
['Brian-Nugent', 'github-actions', 'joelriou'] |
adamtopaz assignee:adamtopaz |
9-34801 9 days ago |
9-34858 9 days ago |
16-1089 16 days |
| 34728 |
j-loreaux author:j-loreaux |
feat: continuous linear equivalence between continuous `ℝ`- and `𝕜`-linear functionals (in either the strong or weak-⋆ topologies) |
This realizes the map `StrongDual.extendRCLikeₗ`, after pre- and post-composing so that it is an equivalence between the weak duals, as a *continuous* linear equivalence.
In addition, when the space is a topological vector space, we realize `StrongDual.extendRCLikeₗ` as a *continuous* linear equivalence between the strong duals.
---
- [x] depends on: #34543
The placement in `Analysis/Normed/Module/WeakDual` seems suboptimal because this has nothing to do with the norm. This is because `WeakDual.toStrongDual` is already in this file, which should probably be moved to `Topology/Algebra/Module/WeakDual`. However, even if that moves, the declarations added in this PR cannot easily go with it because they involve `RCLike`. Potentially, they could move to `Analysis/RCLike/Extend` if that file gained the `Topology/Algebra/Module/WeakDual` import.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
93/2 |
Mathlib/Analysis/Normed/Module/RCLike/Extend.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean |
2 |
9 |
['ADedecker', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
urkud assignee:urkud |
9-26448 9 days ago |
9-26509 9 days ago |
35-79960 35 days |
| 37709 |
j-loreaux author:j-loreaux |
feat: add some missing convenience lemmas about ordered modules |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
32/0 |
Mathlib/Algebra/Order/Module/Defs.lean |
1 |
2 |
['github-actions', 'themathqueen'] |
nobody |
9-25673 9 days ago |
9-27698 9 days ago |
9-27686 9 days |
| 37702 |
grunweg author:grunweg |
chore: golf using {norm,push}_cast |
Not exhaustive
---
[](https://gitpod.io/from-referrer/)
|
|
23/22 |
Archive/Imo/Imo2025Q3.lean,Mathlib/Algebra/Ring/GeomSum.lean,Mathlib/Analysis/Asymptotics/LinearGrowth.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Data/Int/Log.lean,Mathlib/GroupTheory/CommutingProbability.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean,Mathlib/NumberTheory/SumFourSquares.lean,Mathlib/RingTheory/DividedPowers/RatAlgebra.lean,Mathlib/RingTheory/LittleWedderburn.lean,Mathlib/RingTheory/WittVector/WittPolynomial.lean |
12 |
5 |
['github-actions', 'grunweg', 'j-loreaux'] |
nobody |
9-20188 9 days ago |
9-20188 9 days ago |
9-32142 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$ |
104/29 |
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 |
4 |
['github-actions', 'mathlib-bors', 'mortarsanjaya'] |
nobody |
9-14474 9 days ago |
9-14474 9 days ago |
9-17657 9 days |
| 36723 |
oliver-butterley author:oliver-butterley |
fix(`ClearExcept`): modify so that each `isAuxDecl` is retained |
This PR updates the defintion of `ClearExcept` to skip any `isAuxDecl` and adds a test to confirm this behaviour.
The intent is that clear * - only clears user-visible local declarations; hidden auxiliary declarations should be handled by more specific mechanisms when needed.
**Motivation**
When writing a recursive proof in tactic mode, Lean places the recursive hypothesis in the local context as an *auxiliary declaration* (`LocalDecl.isAuxDecl`). This declaration is:
- Completely invisible in the Infoview (even with all display options enabled)
- Required for the recursive call to elaborate
Previously the `clear * -` tactic (`Mathlib.Tactic.ClearExcept`) iterates over **all** declarations in the local context and clears everything not in the explicit keep set or a type-class instance. As such it silently clears the recursive hypothesis. While the hypothesis can technically be added to the keep set by name, it is not shown in the Infoview, making it easy to overlook.
In simple examples this is never an issue, the inconvenience was found when working with software verification where the context gets huge and needs clearing for performance and where the recursive goals are closed by automation and so it is easy to overlook the need to explicitly add the name of the theorem to the exclude list.
Zulip discussion: ([#general > ClearExcept clears even if isAuxDecl, is this intended?](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/ClearExcept.20clears.20even.20if.20isAuxDecl.2C.20is.20this.20intended.3F/with/578745941)).
---
- [ ] depends on: #36961 (refactor proof which uses clear*- to clear auxDecl created by wlog)
- [ ] depends on: #36966 (warning that clearExcept does nothing in this use)
[](https://gitpod.io/from-referrer/)
|
t-meta |
22/8 |
Mathlib/Data/Vector/Basic.lean,Mathlib/Tactic/ClearExcept.lean,MathlibTest/ClearExcept.lean |
3 |
9 |
['adam84-hub', 'github-actions', 'grunweg', 'mathlib-dependent-issues', 'oliver-butterley'] |
thorimur assignee:thorimur |
9-6777 9 days ago |
15-43233 15 days ago |
15-43221 15 days |
| 37171 |
SnirBroshi author:SnirBroshi |
chore(Data/Int/Init): generalize `le_induction` from `Prop` to `Sort*` + def lemmas |
---
[Zulip 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Add.20note.20to.20help.20search.20similar.20thms/near/535331432)
[](https://gitpod.io/from-referrer/)
|
t-data
large-import
|
56/48 |
Mathlib/Data/Int/Basic.lean,Mathlib/Data/Int/Init.lean,Mathlib/GroupTheory/CoprodI.lean |
3 |
5 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'plp127'] |
joneugster assignee:joneugster |
9-6776 9 days ago |
14-82123 14 days ago |
16-3413 16 days |
| 37724 |
xgenereux author:xgenereux |
feat(UniqueFactorizationDomain/Multiplicity): WfDvdMonoid.max_power_factor for finset |
A version of `WfDvdMonoid.max_power_factor` for finsets/finsupp. That is, we take the highest power which divides everything in the finset.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
66/10 |
Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean |
1 |
1 |
['github-actions'] |
nobody |
9-2238 9 days ago |
9-2320 9 days ago |
9-2308 9 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 |
8-67650 8 days ago |
9-66275 9 days ago |
9-66263 9 days |
| 37543 |
EtienneC30 author:EtienneC30 |
feat: lemmas related to setBernoulli |
`setBer(u, p)` only gives mass to families of sets contained in `u`, thus
`setBer(u, p) S = setBer(u, p) {s | s ∈ S ∧ s ⊆ u}`.
Add a `Measure.real` version of `setBernoulli_singleton`.
`setBer(∅, p) = Measure.dirac ∅`.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
28/1 |
Mathlib/Probability/Distributions/SetBernoulli.lean |
1 |
7 |
['DavidLedvinka', 'EtienneC30', 'github-actions', 'kex-y'] |
kex-y assignee:kex-y |
8-60478 8 days ago |
8-60531 8 days ago |
13-42235 13 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'] |
nobody |
8-45048 8 days ago |
8-45124 8 days ago |
8-45112 8 days |
| 37762 |
EtienneC30 author:EtienneC30 |
feat: scalar multiplication of an `NNReal` against `1 : ENNReal` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
4/3 |
Mathlib/Data/ENNReal/Action.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean,Mathlib/Probability/Distributions/SetBernoulli.lean |
3 |
1 |
['github-actions'] |
nobody |
8-37640 8 days ago |
8-37703 8 days ago |
8-38934 8 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'] |
nobody |
8-37142 8 days ago |
8-43800 8 days ago |
8-43788 8 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'] |
nobody |
8-37053 8 days ago |
8-43665 8 days ago |
8-43653 8 days |
| 33520 |
NoneMore author:NoneMore |
feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input |
There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
91/0 |
Mathlib/ModelTheory/ElementarySubstructures.lean |
1 |
9 |
['Citronhat', 'NoneMore', 'fpvandoorn', 'github-actions'] |
fpvandoorn assignee:fpvandoorn |
8-35080 8 days ago |
20-62001 20 days ago |
102-54004 102 days |
| 37744 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/Ideal/IsAugmentation): define the concept of an augmentation ideal |
Define an augmentation ideal in an R-algebra A: this is an `Ideal A` which is a complement to `⊥ : Subalgebra R A` in `A`.
(This subalgebra consists of `R`-multiples of `1`.)
Co-authored with: @mariainesdff
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
98/3 |
Mathlib.lean,Mathlib/Algebra/Algebra/Subalgebra/Tower.lean,Mathlib/Algebra/Module/Submodule/RestrictScalars.lean,Mathlib/RingTheory/Ideal/IsAugmentation.lean |
4 |
1 |
['github-actions'] |
nobody |
8-34833 8 days ago |
8-34833 8 days ago |
8-35211 8 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 |
8-31609 8 days ago |
8-31669 8 days ago |
10-48294 10 days |
| 37738 |
khwilson author:khwilson |
feat(Topology/Order/Bornology): generalize `cobounded_eq` |
`Real.cobounded_eq` and `Int.cobounded_eq` are used in several places throughout Mathlib. They are currently proved in terms of the Metric topology on `Int` and `Real`, but they're really properties of the order bornology on those objects.
Generalize those constructions to `IsOrderBornology` for `LinearOrder`'s and add a few more constructions that are true in other circumstances, e.g., `cobounded NNReal = .atTop` follows from the fact that `NNReal` is both `NoMaxOrder` and `OrderBot`.
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
t-order
|
57/18 |
Mathlib/Analysis/Polynomial/Basic.lean,Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean,Mathlib/Topology/Instances/Int.lean,Mathlib/Topology/Instances/Real/Lemmas.lean,Mathlib/Topology/Order/Bornology.lean |
5 |
14 |
['YaelDillies', 'github-actions', 'khwilson', 'vihdzp'] |
nobody |
8-13325 8 days ago |
8-51271 8 days ago |
8-52102 8 days |
| 35826 |
quangvdao author:quangvdao |
feat(Probability/ProbabilityMassFunction): total variation distance and MetricSpace instance |
Define total variation distance on probability mass functions, provide
a `MetricSpace` instance, and prove the data processing inequality.
The extended TV distance `PMF.etvDist` is defined in `ℝ≥0∞` as
`(1/2) ∑ x, absDiff (p x) (q x)`, using a new symmetric absolute
difference `ENNReal.absDiff`. The real-valued `PMF.tvDist` is its
`toReal`.
New definitions:
- `ENNReal.absDiff`: symmetric absolute difference `(a - b) + (b - a)`
- `PMF.etvDist`: extended total variation distance
- `PMF.tvDist`: real-valued total variation distance
- `PMF.instMetricSpace`: `MetricSpace` instance on `PMF α`
Main results:
- `ENNReal.absDiff_triangle`: triangle inequality for `absDiff`
- `ENNReal.absDiff_tsum_le`: subadditivity over infinite sums
- `PMF.etvDist_le_one`: TV distance is at most 1
- `PMF.etvDist_map_le`: data processing inequality (deterministic maps)
- `PMF.etvDist_bind_right_le`: data processing inequality (Markov kernels)
- `PMF.etvDist_option_punit`: closed form for binary distributions
Supersedes #33680 with a complete, sorry-free implementation.
See Zulip discussion:
This PR was authored with the support of Claude (Cursor IDE).
---
This PR provides a complete formalization of total variation distance for PMFs, including:
1. **`ENNReal.absDiff`** (`Mathlib/Data/ENNReal/AbsDiff.lean`): A symmetric absolute difference
for `ℝ≥0∞` with triangle inequality, connection to real absolute value, and algebraic properties.
The tsum-related lemmas (`absDiff_tsum_le`, `tsum_fiber`) are placed in the TV distance file
to avoid pulling topology imports into `Data.ENNReal`.
2. **`PMF.etvDist` / `PMF.tvDist`** (`Mathlib/Probability/ProbabilityMassFunction/TotalVariation.lean`):
Total variation distance with a `MetricSpace` instance, data processing inequality for both
deterministic maps and Markov kernels, and a closed form for binary distributions.
Compared to #33680, this PR:
- Has no `sorry`s
- Defines the distance in `ℝ≥0∞` first (following Mathlib convention for `edist`/`dist`)
- Includes the data processing inequality
- Has full documentation and passes all Mathlib linters
Made with [Cursor](https://cursor.com) |
t-measure-probability
LLM-generated
|
459/0 |
Mathlib.lean,Mathlib/Data/ENNReal/AbsDiff.lean,Mathlib/Probability/ProbabilityMassFunction/TotalVariation.lean |
3 |
6 |
['BoltonBailey', 'EtienneC30', 'github-actions', 'joneugster', 'quangvdao'] |
kex-y assignee:kex-y |
8-6717 8 days ago |
40-20163 40 days ago |
40-20932 40 days |
| 37304 |
vihdzp author:vihdzp |
feat: if `s ∪ t` is directed then one of `s` or `t` is |
---
Co-authored-by: Kamille Bidan <25210160030@m.fudan.edu.cn>
[](https://gitpod.io/from-referrer/)
|
t-order |
57/0 |
Mathlib/Order/Bounds/Basic.lean |
1 |
12 |
['NoneMore', 'b-mehta', 'fpvandoorn', 'github-actions', 'mathlib-bors', 'plp127', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
8-6716 8 days ago |
9-39032 9 days ago |
12-46420 12 days |
| 37466 |
xgenereux author:xgenereux |
feat(Torsion/PrimaryComponent): direct sum of primaryComponent on primes is the whole module |
Let `M(P)` be the `primaryComponent` for `P : HeightOneSpectrum A`, we have $$M \cong \bigoplus_{P} M(P).$$
This is implemented as `DirectSum.IsInternal`.
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$ |
68/1 |
Mathlib/Algebra/Module/Torsion/PrimaryComponent.lean |
1 |
1 |
['github-actions'] |
ocfnash assignee:ocfnash |
8-6714 8 days ago |
15-10475 15 days ago |
15-10463 15 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'] |
nobody |
8-2550 8 days ago |
8-2625 8 days ago |
8-2613 8 days |
| 31176 |
mcdoll author:mcdoll |
feat(Analysis): Taylor's theorem with the integral remainder |
Prove Taylor's theorem with the integral remainder in higher dimensions.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
145/1 |
Mathlib.lean,Mathlib/Analysis/Calculus/TaylorIntegral.lean,docs/100.yaml,docs/undergrad.yaml |
4 |
7 |
['github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'mcdoll', 'sgouezel'] |
sgouezel assignee:sgouezel |
7-79895 7 days ago |
7-79954 7 days ago |
15-25285 15 days |
| 37544 |
SnirBroshi author:SnirBroshi |
chore(Combinatorics/SimpleGraph/Coloring): move `ConcreteColorings.lean` and `EdgeLabeling.lean` to `Coloring/` |
Moves `SimpleGraph/ConcreteColorings.lean` to `SimpleGraph/Coloring/Constructions.lean`
and `SimpleGraph/EdgeLabeling.lean` to `SimpleGraph/Coloring/EdgeLabeling.lean`.
See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Coloring.20module.20names/with/583281500)
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Coloring.20module.20names/with/583281500) might want to rename `ConcreteColorings` (Edit: the poll chose `Constructions.lean`)
#37546 adds module deprecations
[](https://gitpod.io/from-referrer/)
|
file-removed
t-combinatorics
maintainer-merge
|
2/2 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Constructions.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/EdgeLabeling.lean |
3 |
2 |
['YaelDillies', 'github-actions', 'ooovi'] |
nobody |
7-64041 7 days ago |
10-44493 10 days ago |
10-44625 10 days |
| 37619 |
FernandoChu author:FernandoChu |
feat(topology): Small inductive dimension |
Adds a type class for small inductive dimension. See also https://github.com/leanprover-community/mathlib4/pull/37444.
Co-authored-by: Andrew Yang [the.erd.one@gmail.com](mailto:the.erd.one@gmail.com)
AI disclosure: Claude code assisted in preparing this PR.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
76/0 |
Mathlib.lean,Mathlib/Topology/SmallInductiveDimension.lean |
2 |
4 |
['FernandoChu', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
ocfnash assignee:ocfnash |
7-61873 7 days ago |
7-65832 7 days ago |
11-35859 11 days |
| 37530 |
mcdoll author:mcdoll |
fix(Topology/Algebra): fix bad simps and make arguments implicit for `PointwiseConvergenceCLM` |
We delete all `simps` calls in the definitions of operators on `PointwiseConvergenceCLM` and replace them with `apply_apply` lemmas that do not abuse the defeq between `SLₚₜ` and `SL`. This made the linter discover some typeclass duplications, which we remove by restructuring the file.
As a consequence of the new `simp` lemmas, we can remove all `set_option backward.isDefEq.respectTransparency false in` in `Analysis.Distribution.TemperedDistribution`.
Moreover, we make several arguments implicit, which can be inferred in almost all practical situations.
---
[](https://gitpod.io/from-referrer/)
|
not-ready-to-merge |
88/69 |
Mathlib/Analysis/Distribution/TemperedDistribution.lean,Mathlib/Topology/Algebra/Module/Spaces/PointwiseConvergenceCLM.lean |
2 |
4 |
['github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'mcdoll'] |
nobody |
7-61829 7 days ago |
8-12738 8 days ago |
11-45886 11 days |
| 36849 |
mike1729 author:mike1729 |
feat(Analysis/Normed/Module/SchauderBasis): basic sequences and Grünblum criterium |
This PR introduces the theory of basic sequences in Banach spaces, following Albiac–Kalton. Defines basic sequences in normed spaces, and prove the classical Grünblum criterium for recognizing them.
### Main Definitions
- `IsBasicSequence`: A `Prop` asserting that initial partial sums of `e` are bounded by `K` times
the full partial sum.
- `IsBasicSequence.toSchauderBasis`: Constructs a `SchauderBasis` on the algebraic span of a
nonzero basic sequence.
### Main Results
- `IsBasicSequence.linearIndependent`: A nonzero basic sequence is linearly independent.
- `IsBasicSequence.coe_toSchauderBasis_apply`: The `n`-th basis vector of the constructed Schauder basis coerces to `e n` in the ambient space.
- `IsBasicSequence.enormProjBound_le`: The projection bound of the constructed basis is at most `ENNReal.ofReal K`.
---
- follow up to : #34209
- blocks : #35473
The next planned PRs:
- general selection principle for basic sequences
- characterization when a set contains a basic sequence in terms of weak closure and compactness
- Eberlein–Šmulian theorem
- weakly compact subsets of a Banach space are Fréchet–Urysohn spaces
[](https://gitpod.io/from-referrer/) |
file-removed
t-analysis
new-contributor
|
278/1 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/Basic.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/BasicSequence.lean |
3 |
7 |
['github-actions', 'j-loreaux', 'mike1729'] |
sgouezel assignee:sgouezel |
7-60252 7 days ago |
7-62960 7 days ago |
27-3449 27 days |
| 37342 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for Seq: more `FriendlyOperation` API |
This is a continuation of #35072.
This PR adds more API about friendly operations:
* `FriendlyOperation.coind`: a coinductive principle for proving that operation is friendly
* `FriendlyOperationClass.eq_of_bisim`: a generalisation of `Seq.eq_of_bisim'` for proving two sequences are equal.
---
- [x] depends on: #35072
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-data
t-meta
|
161/0 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean |
1 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
7-58762 7 days ago |
13-49629 13 days ago |
13-49949 13 days |
| 36378 |
EtienneC30 author:EtienneC30 |
refactor: define the geometric distribution via a sum of Dirac masses |
Change the definition of `geometricMeasure p` to be
`Measure.sum (fun n ↦ ENNReal.ofReal ((1 - p) ^ n * p)) • (.dirac n))`
instead of using `PMF`. This allows to directly use API for measures instead of having to develop an API for `PMF`, which anyway is defined as a sum of Dirac masses.
Also add some results about integrals against the geometricMeasure.
---
- [x] depends on: #36355
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
|
138/25 |
Mathlib/Probability/Distributions/Geometric.lean |
1 |
41 |
['DavidLedvinka', 'EtienneC30', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'pfaffelh'] |
RemyDegenne assignee:RemyDegenne |
7-53895 7 days ago |
15-49191 15 days ago |
37-44448 37 days |
| 36495 |
AlexKontorovich author:AlexKontorovich |
chore(Finset/NatDivisors): refactor `card_divisors_mul` and `sum_divisors_mul` to not rely on `ArithmeticFunction` |
`Nat.Coprime.card_divisors_mul` and `Nat.Coprime.sum_divisors_mul` are moved to not rely on `ArithmeticFunction`. See zulip discussion here: [#mathlib4 > Library design question, e.g.`Nat.Coprime.card_divisors_mul` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Library.20design.20question.2C.20e.2Eg.2E.60Nat.2ECoprime.2Ecard_divisors_mul.60/near/577769899)
Co-authored-by: Ziyan Wei and Aayush Rajasekaran
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-number-theory
t-algebra
label:t-algebra$ |
41/14 |
Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Data/Finset/NatDivisors.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean |
3 |
5 |
['AlexKontorovich', 'arajasek', 'github-actions'] |
alreadydone assignee:alreadydone |
7-49644 7 days ago |
7-49700 7 days ago |
30-43747 30 days |
| 37800 |
dtumad author:dtumad |
feat(Probability): Add definition of `SPMF` based on existing `PMF` |
This PR adds a definition of `SPMF A` based on the existing `PMF A` definition, and adds basic monadic operations on them.
---
There's a few different projects now using a definition along these lines so it would be good to align things. I tried to just port just the most basic things for now until the definitions can be agreed on.
[](https://gitpod.io/from-referrer/)
|
new-contributor |
231/0 |
Mathlib.lean,Mathlib/Probability/ProbabilityMassFunction/Basic.lean,Mathlib/Probability/ProbabilityMassFunction/Constructions.lean,Mathlib/Probability/ProbabilityMassFunction/Monad.lean,Mathlib/Probability/ProbabilityMassFunction/SPMF.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean |
6 |
2 |
['github-actions'] |
nobody |
7-49613 7 days ago |
7-49677 7 days ago |
7-51382 7 days |
| 37603 |
Parcly-Taxel author:Parcly-Taxel |
refactor: review of `SetSemiring` |
* Rename `Set.up` and `SetSemiring.down` to `SetSemiring.ofSet` and `SetSemiring.toSet` respectively. Unprotect both and make them equivalences, following `FreeMonoid`.
* Derive `CompleteAtomicBooleanAlgebra` for `SetSemiring` immediately.
* Add `imageHom_id` and `imageHom_comp`. The three existing lemmas about `imageHom` are coalesced into `imageHom_apply`.
Ultimately inspired by https://github.com/leanprover-community/mathlib4/pull/36934#issuecomment-4183475568. |
maintainer-merge |
120/165 |
Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Data/Set/Semiring.lean |
2 |
41 |
['Parcly-Taxel', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'sgouezel'] |
nobody |
7-44799 7 days ago |
7-45057 7 days ago |
8-72449 8 days |
| 36604 |
JovanGerb author:JovanGerb |
feat(Translate): reorder universes |
This PR improves the heuristic for reordering of universes in `to_dual`/`to_additive`. The previous heuristic worked well when the first two universes had to be swapped. For example for translating `a ^ n` to `n • a`, and for dualizing `GaloisConnection`. However, in Category theory we sometimes need to swap more universes because a category instance comes with 2 universes which both need to be swapped. In particular, the comma category, and adjunctions both need this feature.
This PR doesn't add any syntax for specifying the reordering of universes. It is assumed that the universe reordering can always be inferred from the normal reordering and from the type.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
204/91 |
Mathlib/CategoryTheory/Comma/Basic.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/Reorder.lean,MathlibTest/ToDual.lean |
4 |
8 |
['JovanGerb', 'bryangingechen', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] |
dwrensha assignee:dwrensha |
7-40112 7 days ago |
7-40138 7 days ago |
21-55813 21 days |
| 36999 |
themathqueen author:themathqueen |
feat(Analysis/RCLike): lifting `C(X, ℝ)` to `C(X, 𝕜)` |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
131/1 |
Mathlib.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Analysis/RCLike/ContinuousMap.lean |
3 |
7 |
['github-actions', 'j-loreaux', 'themathqueen'] |
urkud assignee:urkud |
7-22953 7 days ago |
7-22655 7 days ago |
23-33351 23 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/)
|
|
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 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
7-16526 7 days ago |
7-19560 7 days ago |
7-19874 7 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 |
39/36 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
3 |
6 |
['github-actions', 'mathlib-merge-conflicts'] |
alreadydone assignee:alreadydone |
7-16042 7 days ago |
7-16067 7 days ago |
42-46737 42 days |
| 36740 |
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):
* `AlgebraicGeometry.Scheme.isBasis_affineOpens`: unchanged 🎉
* `SimpleGraph.Walk.takeUntil_eq_take`: 263 ms before, 180 ms after 🎉
* `SimpleGraph.Walk.dropUntil_eq_drop`: 382 ms before, 261 ms after 🎉
* `Int.image_Ico_emod`: unchanged 🎉
* `Equiv.Perm.ofSubtype_swap_eq`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
7/33 |
Mathlib/AlgebraicGeometry/AffineScheme.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Data/Int/Interval.lean,Mathlib/GroupTheory/Perm/Support.lean |
4 |
7 |
['artie2000', 'chenson2018', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
7-11701 7 days ago |
13-52650 13 days ago |
29-24457 29 days |
| 37722 |
SabrinaJewson author:SabrinaJewson |
feat(Order/Cover): intervals equal singletons iff |
To complement `Set.Icc_eq_singleton_iff`, this introduces:
- `Set.Ioc_eq_singleton_iff`
- `Set.Ico_eq_singleton_iff`
- `Set.Ioi_eq_singleton_iff`
- `Set.Iio_eq_singleton_iff`
- `Set.Ioo_eq_singleton_iff`
Unforunately because of the order of the ands, the last cannot be made self-dual.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
39/0 |
Mathlib/Order/Cover.lean |
1 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
7-8656 7 days ago |
7-8680 7 days ago |
8-81830 8 days |
| 36314 |
JovanGerb author:JovanGerb |
feat(gcongr): support `rintro` patterns |
This PR adds support for `rintro` patterns in the `with` clause of `gcongr`. This makes it consistent with `congr!`.
I've only found one case in mathlib where this could actually be used to shorten a proof.
I split the gcongr `elab` into a separate `syntax` and `elab_rules`, which makes it easier to deal with the syntax.
I noticed that the implementation of `congr!` was unnecessarily converting back and forth between `rintroPat` and `rcasesPat`, so I changed it to simply only use `rintroPat`, and then did the same in `gcongr`.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
41/28 |
Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Tactic/CongrExclamation.lean,Mathlib/Tactic/Convert.lean,Mathlib/Tactic/Core.lean,Mathlib/Tactic/GCongr/Core.lean |
5 |
2 |
['dupuisf', 'github-actions'] |
thorimur assignee:thorimur |
7-6953 7 days ago |
39-56362 39 days ago |
39-56478 39 days |
| 36472 |
EtienneC30 author:EtienneC30 |
feat: finite dimensional distribution of Brownian motion |
Define `gaussianProjectiveFamily : (I : Finset ℝ≥0) → Measure (I → ℝ)`. Each `gaussianProjectiveFamily I` is the centered Gaussian measure over `I → ℝ` with covariance matrix given by `brownianCovMatrix I s t := min s t`.
Prove that these measures satisfy `IsProjectiveMeasureFamily`, which means that they can be extended into a measure over `ℝ≥0 → ℝ` thanks to the Kolmogorov's extension theorem (not in Mathlib yet). The obtained measure is a measure over the set of real processes indexed by `ℝ≥0` and is the law of the Brownian motion.
---
- [x] depends on: #36143
[](https://gitpod.io/from-referrer/)
|
brownian
t-measure-probability
|
226/1 |
Mathlib.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/Probability/BrownianMotion/GaussianProjectiveFamily.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/Probability/Moments/Basic.lean |
5 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
RemyDegenne assignee:RemyDegenne |
7-6951 7 days ago |
30-57755 30 days ago |
30-57744 30 days |
| 37098 |
vihdzp author:vihdzp |
feat: singular cardinals |
We define a singular cardinal as an infinite cardinal which is larger than its cofinality. That's to say, every cardinal is exactly one of the following three: finite, regular, or singular.
Re-opened from #17005, with permission.
---
Co-authored-by: Nir Paz
- [x] depends on: #36933
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
113/28 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean |
4 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'plp127'] |
alreadydone assignee:alreadydone |
7-6948 7 days ago |
10-46960 10 days ago |
22-11307 22 days |
| 37222 |
SnirBroshi author:SnirBroshi |
feat(LinearAlgebra/Matrix/ConjTranspose): `conjTranspose` as an `AlgEquiv` |
Wrap `Matrix.conjTranspose` as a `StarAlgEquiv` to the opposite ring.
Also upgrade the existing `RingEquiv` to a `StarRingEquiv`.
---
This relies on `TrivialStar R` (the matrix has entries in `α` which is an `R`-algebra) because an `AlgEquiv` requires `f (r • M) = r • (f M)` but `conjTranspose` gives `(r • M)ᴴ = (star r) • Mᴴ`.
Unlike `LinearEquiv` there doesn't seem to be a ["semilinear" variant of it over `starRingEnd`](https://github.com/leanprover-community/mathlib4/blob/3871d9aa5a510dda9dcf837fbb6ba30d6927d504/Mathlib/Algebra/Module/LinearMap/Star.lean#L25).
- [x] depends on: #37178
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
29/27 |
Mathlib/LinearAlgebra/Matrix/ConjTranspose.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
ocfnash assignee:ocfnash |
7-6946 7 days ago |
14-82410 14 days ago |
14-82974 14 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'] |
bryangingechen assignee:bryangingechen |
7-6942 7 days ago |
10-36331 10 days ago |
11-59854 11 days |
| 37770 |
tb65536 author:tb65536 |
feat(NumberTheory/ArithmeticFunction/LFunction): an euler product of power series is the limit of the euler products |
This PR proves that an Euler product of arithmetic functions constructed from power series is the limit of the partial Euler products by checking that `ofPowerSeries` satisfies the hypothesis of `tendsTo_eulerProduct_of_tendsTo`.
This requires assuming that the `q`'s tend to infinity, which can be expressed in terms of the `Northcott` predicate from the heights directory. On the one hand, `Northcott` is perhaps not the best name for this rather general predicate, but at least in this case it is still a somewhat reasonable name in the main use case where the `q`'s are the norms of points on `Spec R`.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
label:t-algebra$ |
28/0 |
Mathlib/NumberTheory/ArithmeticFunction/LFunction.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean |
2 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
7-6938 7 days ago |
8-23721 8 days ago |
8-23710 8 days |
| 37791 |
SnkXyx author:SnkXyx |
feat(Algebra/MvPolynomial/Variables): add some lemmas about `vars` |
These lemmas are used in #36103
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
18/0 |
Mathlib/Algebra/MvPolynomial/Variables.lean |
1 |
3 |
['Hagb', 'github-actions'] |
nobody |
7-4423 7 days ago |
7-66624 7 days ago |
7-67699 7 days |
| 37819 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `WithBot` with basic `ωScottContinuous` lemmas |
This is a modification of #34093. See #34093 for details.
---
- [x] depends on: #33941
- [x] depends on: #37258
[](https://gitpod.io/from-referrer/)
|
new-contributor |
337/10 |
Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/TypeTags.lean,Mathlib/Order/WithBot.lean |
6 |
3 |
['github-actions', 'mathlib-dependent-issues'] |
Komyyy assignee:Komyyy |
7-541 7 days ago |
7-584 7 days ago |
7-4390 7 days |
| 37346 |
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):
* `✅️ SimpleGraph.Walk.IsPath.getVert_injOn`: unchanged 🎉
* `✅️ SimpleGraph.Walk.length_bypass_le`: unchanged 🎉
* `✅️ Rat.floor_intCast_div_natCast`: unchanged 🎉
* `✅️ InnerProductGeometry.norm_eq_of_angle_sub_eq_angle_sub_rev_of_angle_ne_pi`: unchanged 🎉
* `✅️ padicNorm.zero_of_padicNorm_eq_zero`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
7/45 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Data/Rat/Floor.lean,Mathlib/Geometry/Euclidean/Triangle.lean,Mathlib/NumberTheory/Padics/PadicNorm.lean |
4 |
8 |
['FernandoChu', 'chenson2018', 'euprunin', 'github-actions'] |
nobody |
6-67472 6 days ago |
17-16888 17 days ago |
17-16876 17 days |
| 32546 |
anishrajeev author:anishrajeev |
feat(ModelTheory): Prove compactness of the type space |
Define the space of types and prove various topological properties of it (zero dimensional, totally separated, compact, baire).
The goal is to formalize the proof of the Omitting Types Theorem
- [ ] depends on: #32215 |
t-logic
new-contributor
large-import
|
31/1 |
Mathlib/ModelTheory/Topology/Types.lean |
1 |
12 |
['NoneMore', 'anishrajeev', 'fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
fpvandoorn assignee:fpvandoorn |
6-61221 6 days ago |
7-79281 7 days ago |
11-77228 11 days |
| 37698 |
Qulinecier author:Qulinecier |
feat: add TendstoInDistribution.continuousOn_comp_prodMk_of_tendstoInMeasure_const |
This PR adds `TendstoInDistribution.continuousOn_comp_prodMk_of_tendstoInMeasure_const`, a generalization of the existing `TendstoInDistribution.continuous_comp_prodMk_of_tendstoInMeasure_const` (Slutsky's theorem) to functions that are only continuous on a closed subset `s` of the domain, rather than everywhere.
This is useful when `g` is only well-behaved on a proper closed subset, such as division (away from zero) or logarithm (on the positive reals), where the previous version requiring global continuity was not applicable.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
92/0 |
Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean |
1 |
2 |
['github-actions'] |
nobody |
6-55274 6 days ago |
9-43961 9 days ago |
9-43949 9 days |
| 36938 |
kebekus author:kebekus |
feat: Poisson Integral Formula for the circle average of `log ‖· - ρ‖` |
Establish an analogue of the **Poisson Integral Formula** for the circle average of `log ‖· - ρ‖` along the circle with radius `‖ρ‖`.
The result will be used to establish Poisson's generalization of the classic Jensen formula in complex analysis.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
207/2 |
Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Complex/Poisson.lean,Mathlib/Analysis/SpecialFunctions/Complex/CircleMap.lean |
3 |
26 |
['github-actions', 'j-loreaux', 'kebekus', 'sgouezel'] |
sgouezel assignee:sgouezel |
6-47385 6 days ago |
6-47385 6 days ago |
23-60929 23 days |
| 37848 |
rwst author:rwst |
feat(RingTheory/PowerSeries/Log): log and exp as inverses |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
87/0 |
Mathlib/RingTheory/PowerSeries/Log.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
2 |
1 |
['github-actions'] |
nobody |
6-42106 6 days ago |
6-42188 6 days ago |
6-42176 6 days |
| 37717 |
adomasbaliuka author:adomasbaliuka |
feat(Analysis/SpecialFunctions/Log): Extends log_mul_self_StrictMonoOn |
- Extends `log_mul_self_monotoneOn` (which had a TODO indicating that it should be extended) to `mul_log_self_StrictMonoOn`
- Adds inequalities [suggested by](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Naming.2FSpelling.3A.20.60mul_log.60.20or.20.60log_mul_self.60.3F/near/583874012) @SnirBroshi like `x - 1 ≤ x * log x`
- Consistently uses intervals in `Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean`
- `NegMulLog.lean`: module docstring explains that (many) lemmas `*_mul_log_*` are also in this file
(Re)naming of lemmas also discussed on Zulip [#mathlib4 > Naming/Spelling: `mul_log` or `log_mul_self`?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Naming.2FSpelling.3A.20.60mul_log.60.20or.20.60log_mul_self.60.3F/with/583877549).
Deprecations:
- `log_mul_self_monotoneOn` (superseded by `mul_log_StrictMonoOn`)
---
Naming may need discussion.
We could furthermore rename the last three lemmas in `Monotone.lean`: [Real.abs_log_mul_self_lt](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/SpecialFunctions/Log/Basic.html#Real.abs_log_mul_self_lt), [Real.abs_log_mul_self_rpow_lt](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/SpecialFunctions/Pow/Real.html#Real.abs_log_mul_self_rpow_lt), [tendsto_log_mul_self_nhdsLT_zero](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.html#tendsto_log_mul_self_nhdsLT_zero) from `log_mul_self` to `mul_log` for consistency. But maybe the burden of renaming them is worse than the slightly inconsistant naming?
[](https://gitpod.io/from-referrer/)
|
t-analysis
large-import
|
60/27 |
Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean,Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean |
2 |
19 |
['SnirBroshi', 'adomasbaliuka', 'github-actions'] |
urkud assignee:urkud |
6-37330 6 days ago |
6-55672 6 days ago |
8-55718 8 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 |
26 |
['ADedecker', 'EtienneC30', 'felixpernegger', 'github-actions'] |
urkud assignee:urkud |
6-35608 6 days ago |
6-35668 6 days ago |
21-10530 21 days |
| 37312 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): Outer regular measures are determined by values on bounded open sets |
We proved that
- Every open set in a metric space is a countable union of bounded open sets.
- Outer regular measures are determined by values on bounded open sets.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
19/0 |
Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/Topology/MetricSpace/Bounded.lean |
2 |
6 |
['CoolRmal', 'EtienneC30', 'github-actions', 'kex-y'] |
kex-y assignee:kex-y |
6-34539 6 days ago |
6-34573 6 days ago |
18-37097 18 days |
| 34138 |
pfaffelh author:pfaffelh |
feat(MeasureTheory): Introduce `DiscreteMeasure α` giving rise to a `Measure α` as a sum of `dirac`s |
Define `DiscreteMeasure α` as a structure with `weight : α → ℝ≥0∞`
Define `toMeasure (w : DiscreteMeasure α) : Measure α` as a sum of diracs
Show properties of the resulting objects
This PR intends to start a more userfriendly interaction with discrete probability (measure) theory, in contrast to probability mass functions (`PMF`). There are two main differences between `DiscreteMeasure` and `PMF`:
* Every `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `DiscreteMeasure`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.)
* The `toMeasure` function of `MassFunction` defines the measure as a sum of diracs, which immediately makes computations possible.
Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change)
- depends on: #37060
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
212/0 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/DiscreteMeasure.lean |
4 |
23 |
['DavidLedvinka', 'github-actions', 'mathlib-merge-conflicts', 'metakunt', 'ocfnash', 'pfaffelh'] |
ocfnash assignee:ocfnash |
6-29877 6 days ago |
6-57605 6 days ago |
78-34925 78 days |
| 36676 |
euprunin author:euprunin |
chore: replace long terminal `simp only […]`:s (≥3 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):
* `Polynomial.map_comp`: unchanged 🎉
* `AlgebraicGeometry.IsClosedImmersion.Spec_iff`: 152 ms before, 107 ms after 🎉
* `nnnorm_pow_le`: unchanged 🎉
* `norm_pow_le`: unchanged 🎉
* `integral_sin`: unchanged 🎉
* `SimpleGraph.Subgraph.le_induce_union`: unchanged 🎉
* `ENNReal.iSup_add_iSup`: unchanged 🎉
* `ENat.iSup_add_iSup`: unchanged 🎉
* `ENat.mul_epow`: unchanged 🎉
* `EReal.abs_eq_zero_iff`: unchanged 🎉
* `Finset.disjoint_biUnion_left`: unchanged 🎉
* `List.splitOnP.go_acc`: unchanged 🎉
* `Multiset.count_map_eq_count`: unchanged 🎉
* `Nat.toDigitsCore_length`: unchanged 🎉
* `PartENat.pos_iff_one_le`: unchanged 🎉
* `Rat.intCast_div_self`: unchanged 🎉
* `Set.biUnion_empty_finset`: unchanged 🎉
* `Quot.subsingleton_iff`: unchanged 🎉
* `Equiv.Perm.support_closure_subset_union`: unchanged 🎉
* `Module.Basis.reindexRange_repr'`: unchanged 🎉
* `MeasureTheory.mul_le_addHaar_image_of_lt_det`: unchanged 🎉
* `MeasureTheory.memLp_finset_sum`: unchanged 🎉
* `MeasureTheory.exists_lt_lowerSemicontinuous_integral_lt`: 450 ms before, 404 ms after 🎉
* `BoundedContinuousFunction.toReal_lintegral_coe_eq_integral`: unchanged 🎉
* `nullMeasurableSet_region_between_oc`: unchanged 🎉
* `nullMeasurableSet_region_between_co`: unchanged 🎉
* `nullMeasurableSet_region_between_cc`: unchanged 🎉
* `MeasureTheory.integral_le_liminf_integral_of_forall_isOpen_measure_le_liminf_measure`: unchanged 🎉
* `padicValNat.pow_add_pow`: unchanged 🎉
* `Monotone.biUnion_Ico_Ioc_map_succ`: unchanged 🎉
* `ProbabilityTheory.condIndepSets_singleton_iff`: unchanged 🎉
* `ProbabilityTheory.sum_variance_truncation_le`: unchanged 🎉
* `IsLocalRing.CotangentSpace.span_image_eq_top_iff`: unchanged 🎉
* `galRestrict'_galLift`: 163 ms before, 48 ms after 🎉
* `Valuation.ne_zero_of_isUnit`: unchanged 🎉
* `hasProd_prod`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
35/35 |
Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/ENat/Lattice.lean,Mathlib/Data/ENat/Pow.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finset/Union.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Nat/Digits/Defs.lean,Mathlib/Data/Rat/Lemmas.lean,Mathlib/Data/Set/Constructions.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/Portmanteau.lean,Mathlib/NumberTheory/Multiplicity.lean,Mathlib/Order/SuccPred/IntervalSucc.lean,Mathlib/Probability/Independence/Conditional.lean,Mathlib/Probability/StrongLaw.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean |
30 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
6-27190 6 days ago |
10-57259 10 days ago |
29-47775 29 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 |
1 |
['artie2000', 'github-actions'] |
nobody |
6-27151 6 days ago |
29-35203 29 days ago |
29-35191 29 days |
| 34154 |
euprunin author:euprunin |
chore: golf using `grind` (and add four supporting `grind` annotations) |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `Orientation.nonneg_inner_and_areaForm_eq_zero_iff_sameRay`: 311 ms before, 284 ms after 🎉
* `UV.compression_self`: 29 ms before, 19 ms after 🎉
* `IsSepClosed.exists_root_C_mul_X_pow_add_C_mul_X_add_C`: 405 ms before, 291 ms after 🎉
* `InnerProductGeometry.norm_add_eq_add_norm_iff_angle_eq_zero`: 425 ms before, 309 ms after 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
12/34 |
Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Degree/Operations.lean,Mathlib/Analysis/InnerProductSpace/TwoDim.lean,Mathlib/Combinatorics/SetFamily/Compression/UV.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean |
6 |
23 |
['Parcly-Taxel', 'Vierkantor', 'artie2000', 'chenson2018', 'euprunin', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'tb65536'] |
Vierkantor assignee:Vierkantor |
6-26991 6 days ago |
9-26378 9 days ago |
73-51256 73 days |
| 34375 |
jvanwinden author:jvanwinden |
feat(MeasureTheory/Function/AEEqOfLIntegral): introduce lemmas for rewriting a.e. inequalities |
Introduce the following lemmas:
- ae_le_const_iff_forall_gt_imp_ae_lt,
- ae_const_le_iff_forall_lt_imp_ae_gt,
- ae_le_const_iff_forall_gt_imp_ae_le,
- ae_const_le_iff_forall_lt_imp_ae_ge,
which can be used get an epsilon of room in a.e. inequalities, with the epsilon being outside the a.e. quantifier. The 'le/ge' variants require a dense ordering.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
31/44 |
Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean,Mathlib/Topology/Order/LiminfLimsup.lean |
2 |
13 |
['EtienneC30', 'github-actions', 'jvanwinden', 'urkud'] |
kex-y assignee:kex-y |
6-26682 6 days ago |
6-33027 6 days ago |
47-37892 47 days |
| 37291 |
IvanRenison author:IvanRenison |
refactor(Combinatorics/SimpleGraph): move `chromaticNumber_le_two_iff_isBipartite` and `chromaticNumber_eq_two_iff` to `Bipartite` file |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
10/12 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean |
2 |
2 |
['Ruben-VandeVelde', 'github-actions'] |
nobody |
6-25983 6 days ago |
19-13791 19 days ago |
19-13779 19 days |
| 37743 |
Raph-DG author:Raph-DG |
chore(RingTheory): Connecting dimensionLEOne and krullDimLE |
---
We should probably also change the name of DimensionLEOne to something more descriptive. I'm not sure what this should be, perhaps NonZeroPrimesMaximal or if we want to keep the relation to krull dim maybe KrullDimZeroOrDomainOfKrullDimOne (this is horrendous but maybe somebody can come up with a nice refinement)
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
9/0 |
Mathlib/RingTheory/KrullDimension/Regular.lean |
1 |
1 |
['github-actions'] |
nobody |
6-21260 6 days ago |
8-48621 8 days ago |
8-49102 8 days |
| 36686 |
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):
* `List.prod_map_ite`: unchanged 🎉
* `Path.Homotopy.trans_assoc_reparam`: 2938 ms before, 717 ms after 🎉
* `SimplexCategory.δ_comp_δ`: 522 ms before, 316 ms after 🎉
* `Finsupp.ext_iff'`: unchanged 🎉
* `Computation.bind_assoc`: unchanged 🎉
* `Set.piecewise_insert`: unchanged 🎉
* `ZMod.valMinAbs_mem_Ioc`: unchanged 🎉
* `Matrix.det_eq_of_forall_row_eq_smul_add_pred_aux`: 2141 ms before, 2004 ms after 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
11/51 |
Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Set/Piecewise.lean,Mathlib/Data/ZMod/ValMinAbs.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean |
8 |
11 |
['artie2000', 'chenson2018', 'euprunin', 'github-actions', 'ooovi'] |
nobody |
6-20168 6 days ago |
31-41164 31 days ago |
31-41152 31 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 |
6-19777 6 days ago |
9-44222 9 days ago |
9-44210 9 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'] |
nobody |
6-14913 6 days ago |
6-14985 6 days ago |
8-12082 8 days |
| 37388 |
xgenereux author:xgenereux |
feat(FunctionField): constant extensions are finite |
Let `F` be a function field over `Fq`. If `E` is an algebraic extension of `Fq` which is contained in `F` then it is finite over `Fq`.
To implement this, we model the following tower of extensions:
```
E(X) - F
/ \ |
E[X] Fq(X)
/ \ /
E Fq[X]
\ /
Fq
```
by assuming algebra hypotheses on the level of `Fq[X]` and `E[X]` and use
```
attribute [local instance] Polynomial.algebra
```
together with the scoped `RatFunc` instances `RatFunc.liftAlgebra` and `RatFunc.isScalarTower_liftAlgebra` to obtain the appropriate algebra instances from `RatFunc Fq/E`.
One annoying thing is that using these instances creates a diamond with `RatFunc.instSMulOfFractionRingPolynomial`, I am working on trying to find a fix but don't have anything at the moment. I am open to suggestions!
Here are some details on this diamond:
Since both `RatFunc E` and `FractionRing E[X]` (which are not defeq) have an `IsFractionRing E[X]` instance we get two maps coming from `RatFunc.liftAlgebra`:
1. (RatFunc.liftAlgebra Fq (FractionRing E[X]))
2. (RatFunc.liftAlgebra Fq (RatFunc E))
Where the first one is transported back to `RatFunc E` via `RatFunc.instSMulOfFractionRingPolynomial`. Analyzing
```
@RatFunc.instSMulOfFractionRingPolynomial _ _ (RatFunc Fq) (RatFunc.liftAlgebra Fq (FractionRing E[X])).toSMul
= (RatFunc.liftAlgebra Fq (RatFunc E)).toSMul
```
we see that this boils down to
`{ toFractionRing := (IsLocalization.lift ⋯) x } = (IsFractionRing.lift ⋯) x` not being defeq.
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-number-theory |
64/0 |
Mathlib/NumberTheory/FunctionField.lean,docs/references.bib |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
tb65536 assignee:tb65536 |
6-13333 6 days ago |
6-13391 6 days ago |
16-19726 16 days |
| 35413 |
joneugster author:joneugster |
fix(Util/CountHeartbeats): move elaboration in #count_heartbeats inside a namespace |
This PR continues the work from #21182.
Original PR: https://github.com/leanprover-community/mathlib4/pull/21182 |
t-meta |
73/6 |
Mathlib/Util/CountHeartbeats.lean,MathlibTest/CountHeartbeats.lean |
2 |
3 |
['github-actions', 'joneugster', 'mathlib-bors'] |
adamtopaz assignee:adamtopaz |
6-6750 6 days ago |
58-36594 58 days ago |
58-36582 58 days |
| 36545 |
yuanyi-350 author:yuanyi-350 |
feat(ProbabilityTheory): Add Kolmogorov's inequality |
ref: https://en.wikipedia.org/wiki/Kolmogorov%27s_inequality
---
- [x] depends on: #36542
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
|
147/0 |
Mathlib.lean,Mathlib/Probability/CondVar.lean,Mathlib/Probability/Martingale/Kolmogorov.lean,Mathlib/Probability/Martingale/OptionalStopping.lean |
4 |
3 |
['CoolRmal', 'github-actions', 'mathlib-dependent-issues'] |
kex-y assignee:kex-y |
6-6747 6 days ago |
33-58297 33 days ago |
33-60074 33 days |
| 37439 |
ADedecker author:ADedecker |
feat: UniformConvergenceCLM version of ContinuousLinearEquiv.arrowCongr |
The absence of simp lemmas comes from the fact that the natural lemmas would break the API boundary. I will try to think about how to make this cleaner.
---
- [ ] depends on: #37614
[](https://gitpod.io/from-referrer/)
|
t-topology |
137/55 |
Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Algebra/Module/Spaces/ContinuousLinearMap.lean,Mathlib/Topology/Algebra/Module/Spaces/UniformConvergenceCLM.lean |
3 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
loefflerd assignee:loefflerd |
6-6741 6 days ago |
8-55328 8 days ago |
9-79897 9 days |
| 37828 |
EtienneC30 author:EtienneC30 |
feat: aemeasurable version of `map_measureReal_apply` |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
7/2 |
Mathlib/MeasureTheory/Measure/Real.lean |
1 |
1 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
6-6736 6 days ago |
6-69541 6 days ago |
6-69529 6 days |
| 37830 |
EtienneC30 author:EtienneC30 |
feat: the law of independent random variables is the product of their laws |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
50/0 |
Mathlib/Probability/HasLaw.lean,Mathlib/Probability/Independence/InfinitePi.lean |
2 |
1 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
6-6735 6 days ago |
6-65783 6 days ago |
6-65771 6 days |
| 37873 |
artie2000 author:artie2000 |
chore(FieldTheory/Minpoly/Basic): reorganise section variables |
* Remove duplicate sections
This PR does not affect any declarations (including variable explicitness)
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
5/18 |
Mathlib/FieldTheory/Minpoly/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
6-2672 6 days ago |
6-2797 6 days ago |
6-2785 6 days |
| 28546 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… |
This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`.
Summary of additions:
- **Full shift and shift action**
- `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type).
- Right shift `shift g x` with convention `(shift g x) h = x (h * g)`.
- **Cylinders and topology**
- `cylinder U x : Set (G → A)` for finite `U : Finset G`.
- Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed.
- Equality with dependent products:
`cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API.
- **Patterns, occurrences, and subshifts**
- `Pattern A G` with finite `support : Finset G` and `data : support → A`.
- `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law.
- `forbids F` and `Subshift A G` (closed, shift-invariant subsets).
- `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness.
- **Language on finite shapes and counting**
- `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`.
- **Entropy along a shape sequence**
- `limsupAtTop` (as an `sInf` of eventual upper bounds).
- `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)`
for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`).
- **Specializations**
- `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`.
- `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`.
Mathematical remarks:
- The API is **shape-parametric**: entropy is defined along user-provided finite shapes.
- On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss).
This PR does not assume amenability; the family of shapes is an explicit input.
Motivation:
Provide a clean, reusable base for symbolic dynamics on groups in mathlib.
Future work:
- Add a Følner predicate and prove shape-independence / limit existence on amenable groups.
- Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors).
- Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch).
|
t-dynamics
new-contributor
|
665/0 |
Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean |
3 |
183 |
['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] |
urkud assignee:urkud |
5-78120 5 days ago |
5-78155 5 days ago |
151-3589 151 days |
| 37748 |
YaelDillies author:YaelDillies |
chore: syntactically generalise `symm_mk` |
---
[](https://gitpod.io/from-referrer/)
|
|
36/38 |
Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/Algebra/Star/StarAlgHom.lean,Mathlib/Algebra/Star/StarRingHom.lean,Mathlib/Logic/Equiv/Defs.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/Morita/Matrix.lean,Mathlib/RingTheory/Polynomial/Quotient.lean,Mathlib/RingTheory/TensorProduct/Free.lean |
10 |
8 |
['JovanGerb', 'YaelDillies', 'eric-wieser', 'github-actions'] |
nobody |
5-77555 5 days ago |
7-56661 7 days ago |
7-61946 7 days |
| 36416 |
j-loreaux author:j-loreaux |
feat(Analysis/CStarAlgebra): norms of sums of orthogonal selfadjoint elements |
---
- [ ] depends on: #36407
- [ ] depends on: #37569
[](https://gitpod.io/from-referrer/)
|
t-analysis
maintainer-merge
|
130/1 |
Mathlib/Algebra/Star/BigOperators.lean,Mathlib/Algebra/Star/SelfAdjoint.lean,Mathlib/Analysis/CStarAlgebra/Fuglede.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean |
4 |
22 |
['github-actions', 'grunweg', 'j-loreaux', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'themathqueen'] |
loefflerd assignee:loefflerd |
5-69227 5 days ago |
5-84802 5 days ago |
11-63820 11 days |
| 33443 |
sahanwijetunga author:sahanwijetunga |
feat: Define Isometries of Bilinear Spaces |
---
We define Isometries of Bilinear Spaces, closely following the implementation of isometries of quadratic spaces.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
maintainer-merge
label:t-algebra$ |
278/0 |
Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/Isometry.lean,Mathlib/LinearAlgebra/BilinearForm/IsometryEquiv.lean |
3 |
25 |
['github-actions', 'robin-carlier', 'sahanwijetunga'] |
mattrobball assignee:mattrobball |
5-69046 5 days ago |
5-69205 5 days ago |
54-9901 54 days |
| 37845 |
grunweg author:grunweg |
chore: golf using positivity |
---
[](https://gitpod.io/from-referrer/)
|
|
13/14 |
Archive/Imo/Imo2008Q3.lean,Archive/OxfordInvariants/Summer2021/Week3P1.lean,Mathlib/Analysis/InnerProductSpace/Positive.lean,Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Pochhammer.lean,Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Data/ZMod/ValMinAbs.lean,Mathlib/NumberTheory/ClassNumber/Finite.lean |
9 |
3 |
['github-actions', 'grunweg', 'leanprover-radar'] |
nobody |
5-62777 5 days ago |
6-44040 6 days ago |
6-44028 6 days |
| 37771 |
tb65536 author:tb65536 |
feat(AlgebraicGeometry/EllipticCurve/LFunction): define the L-Function of an elliptic curve |
This PR defines the L-Function of an elliptic curve.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
t-algebraic-geometry
label:t-algebra$ |
83/0 |
Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/LFunction.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
3 |
3 |
['github-actions', 'tb65536', 'wwylele'] |
riccardobrasca assignee:riccardobrasca |
5-59411 5 days ago |
8-19254 8 days ago |
8-19244 8 days |
| 37840 |
tb65536 author:tb65536 |
chore(RingTheory/Localization/AtPrime/Basic): use `under` instead of `comap (algebraMap R S)` |
This PR switches over from `comap (algebraMap R S)` to `under`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
162/144 |
Mathlib/AlgebraicGeometry/Noetherian.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/RingTheory/DedekindDomain/Dvr.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Frobenius.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Ideal/GoingUp.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean,Mathlib/RingTheory/IntegralClosure/GoingDown.lean,Mathlib/RingTheory/Jacobson/Ring.lean,Mathlib/RingTheory/KrullDimension/Polynomial.lean,Mathlib/RingTheory/LocalProperties/Injective.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean,Mathlib/RingTheory/Localization/AtPrime/Extension.lean,Mathlib/RingTheory/Localization/Ideal.lean,Mathlib/RingTheory/QuasiFinite/Basic.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean |
19 |
2 |
['github-actions', 'robin-carlier', 'tb65536'] |
erdOne assignee:erdOne |
5-59259 5 days ago |
6-47225 6 days ago |
6-47220 6 days |
| 34271 |
gasparattila author:gasparattila |
feat(Topology/Sets): second-countability of `(Nonempty)Compacts` |
---
- [x] depends on: #34266
- [x] depends on: #34268
[](https://gitpod.io/from-referrer/)
|
t-topology |
17/76 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sets/VietorisTopology.lean |
2 |
8 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'scholzhannah'] |
mcdoll assignee:mcdoll |
5-58867 5 days ago |
7-60749 7 days ago |
14-32782 14 days |
| 36401 |
JovanGerb author:JovanGerb |
feat(positivity): positivity extension for `a - b` |
This PR adds support in `positivity` for proving things about subtraction. For example, if the goal is `0 < a - b`, and there is a local hypothesis of type `b < a`, then we close the goal.
The motivation is that we want `positivity` to be a flexible tactic. So, when trying to prove `0 < a - b` using a local hypothesis, we should look for the simp normal form of this, which is `b < a`.
---
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Can.20I.20make.20positivity.20work.20for.20this.3F/near/578277240)
[](https://gitpod.io/from-referrer/)
|
t-meta
maintainer-merge
|
63/26 |
Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Complex/AbelLimit.lean,Mathlib/Analysis/Complex/BorelCaratheodory.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Convex/BetweenList.lean,Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Geometry/Manifold/Riemannian/PathELength.lean,Mathlib/Tactic/Positivity/Basic.lean,MathlibTest/positivity.lean |
10 |
10 |
['JovanGerb', 'github-actions', 'hrmacbeth', 'j-loreaux', 'joneugster', 'leanprover-radar'] |
joneugster assignee:joneugster |
5-57748 5 days ago |
5-61661 5 days ago |
23-32552 23 days |
| 37882 |
tb65536 author:tb65536 |
feat(RingTheory): instances for flatness and projectivity of localizations |
This PR adds instances for flatness and projectivity of localizations. Note that we already have `Module.Flat.localizedModule`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
12/0 |
Mathlib/RingTheory/Flat/Stability.lean,Mathlib/RingTheory/LocalProperties/Projective.lean |
2 |
1 |
['github-actions'] |
nobody |
5-47609 5 days ago |
5-47609 5 days ago |
5-51348 5 days |
| 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 |
165/0 |
Mathlib.lean,Mathlib/Topology/LocallyFinsupp/Pushforward.lean |
2 |
24 |
['Raph-DG', 'chrisflav', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
joelriou assignee:joelriou |
5-47591 5 days ago |
5-62991 5 days ago |
11-11282 11 days |
| 37884 |
DanielJHorton author:DanielJHorton |
feat(LinearAlgebra/TensorProduct/Baisc): add lift_zero theorem for TensorProduct |
---
Added the following theorem to `TensorProduct`
```
@[simp]
theorem lift_zero : lift (0 : M →ₛₗ[σ₁₂] N →ₛₗ[σ₁₂] P₂) = 0 :=
Eq.symm <| lift.unique fun _ _ => by simp only [LinearMap.zero_apply]
```
|
new-contributor
t-algebra
easy
label:t-algebra$ |
4/0 |
Mathlib/LinearAlgebra/TensorProduct/Basic.lean |
1 |
2 |
['github-actions'] |
nobody |
5-46514 5 days ago |
5-48791 5 days ago |
5-48850 5 days |
| 37890 |
tb65536 author:tb65536 |
feat(RingTheory/Spectrum/Prime/FreeLocus): add variant of `Module.rankAtStalk_eq` for better rewriting |
This PR adds a variant of `Module.rankAtStalk_eq` for better rewriting. I also generalized `Ideal.Fiber` to `Module`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
8/2 |
Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean,Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean |
2 |
1 |
['github-actions'] |
nobody |
5-45340 5 days ago |
5-45340 5 days ago |
5-45329 5 days |
| 37858 |
tb65536 author:tb65536 |
feat(RingTheory/LocalRing/ResidueField/Fiber): `Ideal.Fiber` is a quotient of a localization |
This PR proves that `Ideal.Fiber` is a quotient of a localization. This is needed for #37130.
---
- [ ] depends on: #37380
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
16/0 |
Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean |
1 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
5-45158 5 days ago |
5-45161 5 days ago |
5-45889 5 days |
| 36501 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/GradedAlgebra/Homogeneous/RingQuot): graded structure on the quotient of a graded ring by a homogeneous ideal |
Define the graded structure on the quotient of a graded ring by a homogeneous ideal
Co-authored with: @mariainesdff
(This is WIP because it still needs some `erw`, various instances do not seem to match,
and the overall structure has to be cleaned-up.
- Maybe define the graded structure on the quotient of a graded module by a homogeneous submodule.
- There is also an issue of working with ring congruences rather than with ideals. )
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
600/2 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Data/DFinsupp/BigOperators.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/RingQuot.lean |
5 |
11 |
['AntoineChambert-Loir', 'chrisflav', 'eric-wieser', 'github-actions', 'robin-carlier'] |
ocfnash and robin-carlier assignee:ocfnash assignee:robin-carlier |
5-43951 5 days ago |
16-46892 16 days ago |
16-46893 16 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'] |
nobody |
5-33627 5 days ago |
5-33627 5 days ago |
5-33616 5 days |
| 35243 |
ScottCarnahan author:ScottCarnahan |
refactor(Algebra/MonoidAlgebra/PointwiseSMul): switch action from Finsupp to (Add)MonoidAlgebra and multiplicativize |
This PR moves the API for convolution action on functions from `Finsupp` to `MonoidAlgebra`, adding a `Semiring` hypothesis. We do this move, because the convolution action of finsupps on formal functions is more naturally expressed as an action by the monoid algebra with its convolutional multiplication.
This PR also multiplicativizes, preserving the original material with `to_additive`.
---
The large import is on a module that will be deprecated - I had to add the imports to make the deprecated flags work, but ultimately they will be irrelevant.
[](https://gitpod.io/from-referrer/)
|
large-import
t-algebra
label:t-algebra$ |
167/118 |
Mathlib.lean,Mathlib/Algebra/MonoidAlgebra/PointwiseSMul.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/Finsupp/PointwiseSMul.lean,Mathlib/Data/Set/SMulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/Summable.lean |
7 |
5 |
['ScottCarnahan', 'github-actions', 'mathlib-merge-conflicts', 'ocfnash'] |
ocfnash assignee:ocfnash |
5-30346 5 days ago |
5-30402 5 days ago |
40-45538 40 days |
| 33715 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/Projectivization/Action): prove that the action is 2-transitive and primitive |
Define the action of the special linear group on the projectivization.
Prove that it is 2-transitive and primitive.
---
- [x] depends on: #33387
- [x] depends on: #33347
- [x] depends on: #32757
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
246/4 |
Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/Projectivization/Action.lean,Mathlib/LinearAlgebra/Projectivization/Basic.lean,Mathlib/LinearAlgebra/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean |
6 |
12 |
['AntoineChambert-Loir', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
joelriou assignee:joelriou |
5-14415 5 days ago |
5-14469 5 days ago |
11-39053 11 days |
| 35622 |
SnirBroshi author:SnirBroshi |
feat(Logic/Function/Basic): `onFun` and `swap` preserve relation properties |
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
141/19 |
Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Function/Defs.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/WellFounded.lean,Mathlib/Order/WithBot.lean |
8 |
7 |
['SnirBroshi', 'github-actions', 'leanprover-radar', 'vihdzp'] |
nobody |
5-6962 5 days ago |
40-83785 40 days ago |
52-67624 52 days |
| 36856 |
harahu author:harahu |
doc(Geometry): tidy bibliography entry |
Use canonical author names and rename the bib key to match the corrected ASCII transcription of Domínguez. Sources: https://fama.iff.csic.es/personas/margalef/margalef.html ; https://produccioncientifica.ucm.es/investigadores/166066/tesis
Normalize the title and move the translation information into a note phrased as 'Translated from the Spanish original'. Sources: https://books.google.com/books/about/Differential_Topology.html?id=gexAr04vRT4C ; https://books.google.com/books/about/Topolog%C3%ADa_diferencial.html?id=0PRMy3ffm4QC
Use the conventional publisher form 'North-Holland Publishing Co., Amsterdam' instead of the imported catalog-style field. Sources: https://search.worldcat.org/title/Differential-topology/oclc/25713102 ; https://www.ams.org/tran/2010-362-08/S0002-9947-10-05073-7/
Prepared with assistance from Codex.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
LLM-generated
|
8/7 |
Mathlib/Geometry/Manifold/Immersion.lean,docs/references.bib |
2 |
4 |
['github-actions', 'grunweg', 'harahu'] |
nobody |
5-6960 5 days ago |
27-22911 27 days ago |
27-34120 27 days |
| 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 does not depend `Q(PartialOrder $α)`, and the constructors of `Strictness` now have their order typeclass arguments. In order to help `Qq` synth instances property, we have to move `assertInstancesCommute` to inner branch, manually add `haveI'` or explicitly pass the order typeclass instance into `.positive`/`.nonnegative`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-meta
|
611/322 |
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/Module/Field.lean,Mathlib/Analysis/Complex/BorelCaratheodory.lean,Mathlib/Analysis/Complex/Order.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean,Mathlib/Combinatorics/Enumerative/DyckWord.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/Totient.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Real.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean,Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean,Mathlib/NumberTheory/LucasLehmer.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean |
37 |
23 |
['HugLycan', 'JovanGerb', 'fpvandoorn', 'github-actions', 'joneugster'] |
dwrensha assignee:dwrensha |
5-6864 5 days ago |
27-63728 27 days ago |
27-66834 27 days |
| 37513 |
chrisflav author:chrisflav |
feat(AlgebraicGeometry): geometrically connected schemes |
---
- [x] depends on: #37515
- [x] depends on: #37514
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
129/0 |
Mathlib.lean,Mathlib/AlgebraicGeometry/Geometrically/Connected.lean,Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/Topology/Connected/Basic.lean |
4 |
5 |
['chrisflav', 'github-actions', 'mathlib-dependent-issues'] |
adamtopaz assignee:adamtopaz |
5-6859 5 days ago |
8-17181 8 days ago |
8-18423 8 days |
| 37542 |
martinwintermath author:martinwintermath |
chore(LinearAlgebra/Dual): deprecate `Module.dualPairing` |
- deprecate `Module.dualPairing` (and associated lemmas) since merely synonym for identity (essentially always easier to just use `.id`, see next bullet point)
- remove use of deprecated lemmas
- remove from file doc-string
- generalize `dualPairing_nondegenerate` + rename to `id_nondegenerate`
- add accompanying `id_separatingLeft`, `id_separatingRight` and versions for `Dual.eval` (similar lemmas have also been proposed in #34487)
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
46/24 |
Mathlib/Analysis/Convex/Cone/TensorProduct.lean,Mathlib/Geometry/Convex/Cone/TensorProduct.lean,Mathlib/LinearAlgebra/Dual/Defs.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean |
4 |
3 |
['artie2000', 'github-actions'] |
dagurtomas assignee:dagurtomas |
5-6857 5 days ago |
13-42823 13 days ago |
13-42811 13 days |
| 37617 |
harahu author:harahu |
doc(FieldTheory): 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/)
|
t-algebra label:t-algebra$ |
33/31 |
Mathlib/FieldTheory/CardinalEmb.lean,Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/FieldTheory/PolynomialGaloisGroup.lean,Mathlib/FieldTheory/RatFunc/Basic.lean |
7 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
5-6856 5 days ago |
12-24814 12 days ago |
12-24802 12 days |
| 37871 |
JJYYY-JJY author:JJYYY-JJY |
feat: support intros and simple rintro in introMerge |
* Extend the `introMerge` linter to handle `intros` and a safe subset of `rintro` tactics, allowing it to suggest merging a wider variety of adjacent introduction tactics.
* Introduce helper functions to normalize supported `rcases` and `rintro` patterns into equivalent `intro` arguments for consistent analysis.
* Add tests to verify the correct merging of mixed introduction tactics and ensure intervening tactics prevent merging.
---
[](https://gitpod.io/from-referrer/)
|
t-meta
new-contributor
|
101/9 |
Mathlib/Dynamics/OmegaLimit.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/TacticAnalysis.lean |
3 |
3 |
['copilot-pull-request-reviewer', 'github-actions'] |
dwrensha assignee:dwrensha |
5-6852 5 days ago |
5-84263 5 days ago |
6-1088 6 days |
| 37846 |
grunweg author:grunweg |
fix(positivity): still prove non-negativity in the `Nat.cast` extension if positivity fails |
---
[](https://gitpod.io/from-referrer/)
|
t-meta
maintainer-merge
|
11/2 |
Mathlib/Tactic/Positivity/Basic.lean,MathlibTest/positivity.lean |
2 |
4 |
['dwrensha', 'github-actions'] |
dwrensha assignee:dwrensha |
5-4693 5 days ago |
5-53313 5 days ago |
5-53303 5 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 |
4-70468 4 days ago |
4-70528 4 days ago |
29-42295 29 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 |
4-68108 4 days ago |
4-68169 4 days ago |
22-65741 22 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 |
4-68072 4 days ago |
31-24240 31 days ago |
31-24228 31 days |
| 37803 |
tb65536 author:tb65536 |
feat(RingTheory/LocalRing/FlatLength): lengths along flat extensions of local rings |
This PR adds a new file with results relating lengths along flat extensions of local rings.
---
- [x] depends on: #37104
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
113/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/FlatLength.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
4-61710 4 days ago |
4-61712 4 days ago |
4-61702 4 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 |
142/117 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Cycle.lean |
3 |
1 |
['github-actions'] |
nobody |
4-50791 4 days ago |
4-50846 4 days ago |
4-51221 4 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
|
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'] |
nobody |
4-46990 4 days ago |
4-49877 4 days ago |
12-5830 12 days |
| 31662 |
edwin1729 author:edwin1729 |
feat(Topology/Order): topological basis of scott topology on Complete… |
…PartialOrder
---
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20Algebraic.20complete.20partial.20order.20and.20domain.20theory/with/536359313) for this PR.
(2/5) PRs in domain theory, proving that scott topologies over Algebraic DCPOs (`CompletePartialOrder`) are sober.
The main reference is [Renata, Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf). But the statements can also be found in the canonical text [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
This first PR proves two prerequisites, namely:
- the specialization order induced by the scott topology corresponds to the existing order of the DCPO. Prop 3.1.5 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.2(1) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
- the upward closures of compact elements of the DCPO form a topological basis for the Scott Topology. Prop 3.5.2 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.6(2) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
- [x] depends on: #33061
**The next PR is here:** #31670
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
235/1 |
Mathlib.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib |
4 |
67 |
['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] |
urkud assignee:urkud |
4-37060 4 days ago |
39-48099 39 days ago |
46-14404 46 days |
| 37904 |
maddycrim author:maddycrim |
feat(LinearAlgebra/PiTensorProduct/PiEquiv): Tensor Product and Direct Product Commute for Finitely Presented Modules |
From FLT Project.
Main definitions:
* `tensorPi_equiv_piTensor'` : `M ⊗[R] (Π i, N i) ≃ₗ[R] Π i, (M ⊗[R] N i)` for finite free modules
* `tensorPi_equiv_piTensor` : the same but for finitely-presented modules.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
264/0 |
Mathlib.lean,Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/LinearAlgebra/PiTensorProduct/PiEquiv.lean |
4 |
5 |
['github-actions', 'maddycrim', 'themathqueen'] |
nobody |
4-29981 4 days ago |
5-29920 5 days ago |
5-31394 5 days |
| 37911 |
SnirBroshi author:SnirBroshi |
chore(Order/Closure): generalize from `PartialOrder` to `Preorder` where possible |
Rearranges declarations to a new `Preorder` section above the existing `PartialOrder` section.
---
Only reordered existing decls, and modified `variable` statements.
[](https://gitpod.io/from-referrer/)
|
t-order |
41/36 |
Mathlib/Order/Closure.lean |
1 |
4 |
['github-actions', 'leanprover-radar', 'themathqueen'] |
nobody |
4-28194 4 days ago |
5-13312 5 days ago |
5-13300 5 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 |
4-27021 4 days ago |
4-27079 4 days ago |
9-39384 9 days |
| 37640 |
IvanRenison author:IvanRenison |
feat(Order/RelIso): add lemmas about congruence with `relIso` |
---
In #37598 I realized this is missing
[](https://gitpod.io/from-referrer/)
|
t-order |
33/1 |
Mathlib/Order/RelIso/Basic.lean |
1 |
10 |
['IvanRenison', 'Komyyy', 'github-actions'] |
Komyyy assignee:Komyyy |
4-26992 4 days ago |
4-27045 4 days ago |
10-29255 10 days |
| 37774 |
weisbrja author:weisbrja |
fix: change variables in `bicompl` to `Sort*` and add missing theorem mentioned in `bicompl` docs |
[#mathlib4 > Why does Mathlib use Type* instead of Sort* in some places?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Why.20does.20Mathlib.20use.20Type.2A.20instead.20of.20Sort.2A.20in.20some.20places.3F/with/583882342)
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
6/1 |
Mathlib/Logic/Function/Basic.lean |
1 |
7 |
['github-actions', 'kbuzzard', 'leanprover-radar', 'weisbrja'] |
nobody |
4-24373 4 days ago |
4-33840 4 days ago |
8-19584 8 days |
| 36018 |
wwylele author:wwylele |
feat(LinearAlgebra/AffineSpace): shifting a subspace towards a point |
This is preparing to calculate the volume of a simplex by integrating the cross-section created by shifting the base plane. Part of #34826.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
297/0 |
Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
3 |
7 |
['copilot-pull-request-reviewer', 'github-actions', 'mathlib-bors'] |
kim-em assignee:kim-em |
4-14619 4 days ago |
10-40700 10 days ago |
35-11163 35 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 |
30/67 |
Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean |
2 |
5 |
['github-actions', 'vihdzp'] |
nobody |
4-14057 4 days ago |
4-59408 4 days ago |
4-59396 4 days |
| 36553 |
j-loreaux author:j-loreaux |
feat: add IsMulCommutative instances for directed families of commutative subobjects |
---
- [ ] depends on: #36549
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
169/1 |
Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Directed.lean,Mathlib/Algebra/Group/Subgroup/Lattice.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/Subsemigroup/Membership.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/RingTheory/NonUnitalSubring/Basic.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean |
11 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
kim-em assignee:kim-em |
4-6544 4 days ago |
14-32360 14 days ago |
14-32552 14 days |
| 37358 |
grunweg author:grunweg |
chore(Geometry/Manifold): don't expose definitions depending on choice |
Some definitions in `Immersion.lean` still depend on choice, but need to be exposed for subsequent instances using their definition. We leave them alone for now.
Also make not exposing definition the default in `LocalDiffeomorph.lean`;
four definitions have useful definitional equalities, the others do not.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
tech debt
|
12/12 |
Mathlib/Geometry/Manifold/Immersion.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean,Mathlib/Geometry/Manifold/LocalDiffeomorph.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean |
4 |
1 |
['github-actions'] |
PatrickMassot assignee:PatrickMassot |
4-6542 4 days ago |
5-38736 5 days ago |
5-39097 5 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'] |
eric-wieser assignee:eric-wieser |
4-6542 4 days ago |
14-20038 14 days ago |
14-20026 14 days |
| 37580 |
ldct author:ldct |
chore: list hints in order of priority |
List hints in order of priority so it's easier to tell what order `hint` tries them in. In a dependent PR I intend to add a tactic to this list.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
9/9 |
Mathlib/Tactic/Common.lean,MathlibTest/hintAll.lean |
2 |
3 |
['github-actions', 'grunweg', 'ldct'] |
JovanGerb assignee:JovanGerb |
4-6541 4 days ago |
5-6256 5 days ago |
5-13323 5 days |
| 37941 |
NoahW314 author:NoahW314 |
feat(RingTheory/MvPolynomial/Homogeneous): add `homogeneousComponent` lemma |
Add a lemma about the `support` of the `(weighted)HomogeneousComponent` of a `MvPolynomial`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
10/0 |
Mathlib/RingTheory/MvPolynomial/Homogeneous.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean |
2 |
1 |
['github-actions'] |
nobody |
4-2944 4 days ago |
4-3016 4 days ago |
4-3004 4 days |
| 36385 |
CoolRmal author:CoolRmal |
feat: a sequential and countably compact space is sequentially compact |
The main result proved in this PR is that a sequential and countably compact space is sequentially compact. We also prove some lemmas:
1. If `f` is an embedding, then `A` is sequentially compact iff `f '' A` is sequentially compact. This result is then used to show the equivalence of `IsSeqCompact A` and `SeqCompactSpace A`.
2. If `f` is inducing, then `A` is countably compact iff `f '' A` is countably compact. This result is then used to show the equivalence of `IsCountablyCompact A` and `CountablyCompactSpace A`.
3. If `f` converges and `g` is another function such that `g x ∈ closure {f x}` for all `x`, then `g` also converges.
---
- [x] depends on: #36174
[](https://gitpod.io/from-referrer/)
|
t-topology |
146/13 |
Mathlib/Topology/Compactness/CountablyCompact.lean,Mathlib/Topology/Inseparable.lean,docs/references.bib |
3 |
33 |
['ADedecker', 'CoolRmal', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
3-77630 3 days ago |
3-77688 3 days ago |
15-67466 15 days |
| 37886 |
LLaurance author:LLaurance |
chore(Algebra): shorten proofs by removing lemmas used in simp |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
6/10 |
Mathlib/Algebra/Free.lean,Mathlib/Algebra/FreeAlgebra.lean |
2 |
3 |
['LLaurance', 'github-actions', 'themathqueen'] |
nobody |
3-74333 3 days ago |
5-44032 5 days ago |
5-44020 5 days |
| 36328 |
Multramate author:Multramate |
feat(AlgebraicGeometry/EllipticCurve): improve API for maps and base changes |
Dot notation for concrete Weierstrass curves (`Affine`/`Jacobian`/`Projective`) does not quite work on `W : WeierstrassCurve F` even though they're all abbreviations of `WeierstrassCurve`, which is annoying for functions that return `WeierstrassCurve`s (currently just `map`, `baseChange`, and `variableChange`). For instance, for an `A : Affine F`, the expression `A.baseChange K` is a `WeierstrassCurve K` rather than an `Affine K`, so `(A.baseChange K).polynomial` will not work since `polynomial` is a function of `Affine K` rather than `WeierstrassCurve K`; instead we have to do `(A.baseChange K).toAffine.polynomial`, which is wordy. This PR introduces abbreviations `Affine/Jacobian/Projective.map/baseChange` to get around this, and introduces scoped notations `W/K`, where the slashes are given by `\textf`. The notation `W⟮K⟯` for `(W.baseChange K)Point` seems to be useless so far and can now be replaced by `(W/K).Point`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
295/299 |
Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean,Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean |
13 |
2 |
['github-actions', 'joelriou'] |
joelriou assignee:joelriou |
3-59995 3 days ago |
3-60053 3 days ago |
39-16883 39 days |
| 37506 |
wwylele author:wwylele |
feat(Analysis/InnerProductSpace): singleton basis for 1d space |
This was brought up in #36462. Similar to existing `FiniteDimensional.basisSingleton`, this provides a OrthonormalBasis version. Also adds simp lemma for `∀ (i j : ι), P i j` for subsingleton `ι`.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
maintainer-merge
|
49/4 |
Mathlib/Analysis/InnerProductSpace/Orthonormal.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Diam.lean,Mathlib/Logic/Basic.lean |
5 |
36 |
['eric-wieser', 'github-actions', 'leanprover-radar', 'loefflerd', 'themathqueen', 'wwylele'] |
loefflerd assignee:loefflerd |
3-47757 3 days ago |
10-48795 10 days ago |
14-9034 14 days |
| 37950 |
martinwintermath author:martinwintermath |
feat(Algebra/Order/Hom): add lemmas about order and `MonoidHomClass` |
Add
* `map_inv_le_map_inv_iff_map_le_map` (and additive version) proving `f x⁻¹ ≤ g x⁻¹ ↔ g x ≤ f x` in a setting where inverses only exists in the domain of `f` and `g`.
* `MonoidHom.ext_iff_le` (and additive version) proving `f = g ↔ (∀ x, f x ≤ g x)`, i.e. an ordered analogue of function extensionality.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
24/0 |
Mathlib/Algebra/Order/Hom/Monoid.lean |
1 |
5 |
['SnirBroshi', 'github-actions', 'themathqueen'] |
nobody |
3-44227 3 days ago |
3-45894 3 days ago |
3-48664 3 days |
| 37955 |
artie2000 author:artie2000 |
feat(Algebra/Polynomial): lemmas about `modByMonic` |
* Add various small lemmas about `Polynomial.modByMonic`
* Remove unneccesary commutativity assumption on `Polynomial.aeval_eq_zero_of_dvd_aeval_eq_zero` by proving `Polynomial.aeval_dvd`
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
20/6 |
Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/RingTheory/Polynomial/IsIntegral.lean |
5 |
1 |
['github-actions'] |
nobody |
3-41240 3 days ago |
3-41300 3 days ago |
3-42136 3 days |
| 37952 |
JovanGerb author:JovanGerb |
feat(FastInstance): suggest using `inferInstance` when possible |
It is easy to accidentally write `fast_instance%` when there already exists an instance. This PR adds a linter against that.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
35/39 |
Mathlib/Algebra/Field/Subfield/Defs.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Submonoid/Defs.lean,Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/RingTheory/NonUnitalSubring/Defs.lean,Mathlib/Tactic/FastInstance.lean,MathlibTest/fast_instance.lean |
7 |
1 |
['github-actions'] |
nobody |
3-34942 3 days ago |
3-35001 3 days ago |
3-39684 3 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 |
3-27361 3 days ago |
3-27419 3 days ago |
8-81258 8 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'] |
nobody |
3-26553 3 days ago |
3-26604 3 days ago |
18-83791 18 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$ |
29/2 |
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 |
4 |
['github-actions', 'vihdzp'] |
nobody |
3-15878 3 days ago |
3-33918 3 days ago |
3-35707 3 days |
| 37670 |
vihdzp author:vihdzp |
feat: miscellaneous results on `DirSupClosed` |
---
[](https://gitpod.io/from-referrer/)
|
t-order
large-import
|
80/7 |
Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/DirSupClosed.lean |
2 |
10 |
['Komyyy', 'github-actions', 'mathlib-splicebot', 'vihdzp'] |
Komyyy assignee:Komyyy |
3-14609 3 days ago |
4-17087 4 days ago |
9-55462 9 days |
| 37960 |
DanielJHorton author:DanielJHorton |
doc: typo in docstring for alternatingMapToDual |
|
t-algebra
easy
new-contributor
label:t-algebra$ |
1/1 |
Mathlib/LinearAlgebra/ExteriorPower/Pairing.lean |
1 |
2 |
['github-actions'] |
nobody |
3-13190 3 days ago |
3-30210 3 days ago |
3-30198 3 days |
| 37967 |
vihdzp author:vihdzp |
chore: add `simp` to `aleph0_lt_univ`, etc |
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
easy
|
5/1 |
Mathlib/SetTheory/Ordinal/Univ.lean |
1 |
2 |
['github-actions'] |
nobody |
3-7809 3 days ago |
3-7786 3 days ago |
3-7962 3 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 |
323/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean |
2 |
6 |
['YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
awainverse and b-mehta assignee:b-mehta assignee:awainverse |
3-6461 3 days ago |
44-72836 44 days ago |
44-72870 44 days |
| 34805 |
DavidLedvinka author:DavidLedvinka |
feat(Tactic): generalize ofScientific NormNum extension to `DivisionSemiring` |
Co-authored-by: @hrmacbeth |
t-meta |
68/20 |
Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/NormNum/OfScientific.lean,MathlibTest/norm_num.lean |
3 |
26 |
['DavidLedvinka', 'JovanGerb', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'thorimur'] |
thorimur assignee:thorimur |
3-6459 3 days ago |
25-23908 25 days ago |
45-65308 45 days |
| 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 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
ADedecker assignee:ADedecker |
3-6458 3 days ago |
14-16703 14 days ago |
18-76429 18 days |
| 36334 |
Multramate author:Multramate |
feat(AlgebraicGeometry/EllipticCurve): add notation and pretty printer for points |
Co-authored-by: Kenny Lau
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
t-meta
|
41/0 |
Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean |
3 |
11 |
['CBirkbeck', 'Multramate', 'erdOne', 'github-actions', 'riccardobrasca'] |
adamtopaz assignee:adamtopaz |
3-6457 3 days ago |
39-23513 39 days ago |
39-23501 39 days |
| 37214 |
Kha author:Kha |
perf(Tactic/Abel): use `mkAuxTheorem` for proof term |
Removes some duplication from types of nested proofs |
t-meta |
4/1 |
Mathlib/Tactic/Abel.lean |
1 |
5 |
['JovanGerb', 'Kha', 'github-actions', 'leanprover-radar'] |
JovanGerb assignee:JovanGerb |
3-6456 3 days ago |
20-41842 20 days ago |
20-41830 20 days |
| 37942 |
yanghangAI author:yanghangAI |
feat(MeasureTheory/Integral/IntervalIntegral/Fubini): Fubini swap for two iterated interval integrals |
## Summary
Adds `MeasureTheory.intervalIntegral_swap_continuous`: Fubini's theorem for two iterated `intervalIntegral`s on `ℝ` under joint continuity of the integrand.
```lean
lemma intervalIntegral_swap_continuous
{f : ℝ → ℝ → ℝ} (hf : Continuous (Function.uncurry f)) (a b c d : ℝ) :
(∫ y in c..d, ∫ x in a..b, f x y) = (∫ x in a..b, ∫ y in c..d, f x y)
```
## Motivation
Mathlib already provides:
- `MeasureTheory.integral_integral_swap` — swaps two full integrals under product integrability
- `MeasureTheory.intervalIntegral_integral_swap` — swaps one interval integral with one full integral
Neither directly swaps two iterated interval integrals, which is a common idiom when reducing two-dimensional integrals to iterated one-dimensional ones (for example when reducing a double integral over a rectangle to iterated 1D integrals in calculus proofs). This PR fills that gap.
## Proof
The proof handles all four orientation combinations (`a ≤ b` vs `b ≤ a`, `c ≤ d` vs `d ≤ c`). It reduces to the ordered case via `intervalIntegral.integral_symm` / `intervalIntegral.integral_neg`, then converts both interval integrals to a single `setIntegral` over `Set.Icc a b ×ˢ Set.Icc c d` via `setIntegral_prod` and `setIntegral_prod_swap`. Integrability on the compact product rectangle comes from `ContinuousOn.integrableOn_compact`.
## AI assistance disclosure
This PR was prepared with help from [Claude Code](https://claude.com/claude-code) (Anthropic's Claude Opus 4.6). Specifically, Claude Code:
- drafted the initial proof structure and the orientation case split;
- located the relevant Mathlib lemmas (`setIntegral_prod`, `setIntegral_prod_swap`, `ContinuousOn.integrableOn_compact`, `Ioc_ae_eq_Icc`) and wired them together;
- iterated on compiler errors until the proof built cleanly under `lake build`, `lake exe shake`, and `lake exe lint-style`.
All mathematical content was reviewed by me before committing, and I verified the final version builds cleanly in a fresh Mathlib tree. I am responsible for the correctness and style of this PR and will handle any review feedback myself.
Happy to discuss the workflow with maintainers if there's interest or concern.
## Zulip
I posted in \`#mathlib4 > general\` asking if this was duplicate work — no responses yet, proceeding since it's a small standalone helper. Happy to close if this conflicts with anyone's in-flight branch. |
t-measure-probability
new-contributor
LLM-generated
|
47/0 |
Mathlib/MeasureTheory/Integral/Prod.lean |
1 |
4 |
['CoolRmal', 'github-actions', 'wwylele'] |
EtienneC30 assignee:EtienneC30 |
3-6451 3 days ago |
3-84491 3 days ago |
3-84479 3 days |
| 37965 |
vihdzp author:vihdzp |
feat: an infinite type has a "pathological relation" |
In the sense that `{y | ¬ r x y}` and `{x | r x y}` are both of cardinal `< #α`.
---
Truthfully I'm not convinced that we need to have this `exists_pathological_rel` theorem. This property is satisfied by any well-ordering of minimal order type, and the theorems `mk_Iio_lt` and `mk_Iic_lt` already prove as much. Though I guess it can still be useful if the type already has an existing `<` relation.
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
33/19 |
Counterexamples/Phillips.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
3 |
10 |
['eric-wieser', 'github-actions', 'vihdzp'] |
nobody |
2-83421 2 days ago |
2-85334 2 days ago |
3-4113 3 days |
| 37625 |
slavanaprienko author:slavanaprienko |
feat(LinearAlgebra/Matrix/Charpoly): general coefficient formula as sum of principal minors |
This PR adds a general formula for the coefficients of `det(1 + X • M)` as sums of principal minors, generalizing the existing `coeff_det_one_add_X_smul_one` (k=1, trace) and `det_eq_sign_charpoly_coeff` (k=n, determinant). It also derives the corresponding formula for the coefficients of the characteristic polynomial via `charpolyRev`.
New results:
- `det_piecewise_one_eq_submatrix_det`: relates piecewise-with-identity to principal submatrix determinants
- `coeff_det_one_add_X_smul_eq_sum_minors`: the k-th coefficient of `det(1 + X • M)` equals the sum of k×k principal minors
- `charpoly_coeff_eq_sum_minors`: coefficients of the characteristic polynomial as signed sums of principal minors
--- |
t-algebra
new-contributor
label:t-algebra$ |
105/1 |
Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean |
1 |
24 |
['eric-wieser', 'github-actions', 'slavanaprienko', 'wwylele'] |
nobody |
2-83223 2 days ago |
10-81252 10 days ago |
12-10328 12 days |
| 37973 |
vihdzp author:vihdzp |
chore(Order/Interval/Set/InitialSeg): clean up file |
We do various small golfs, remove unneeded namespaces, and deprecate some confusing names.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
28/37 |
Mathlib/Order/Interval/Set/InitialSeg.lean |
1 |
1 |
['github-actions'] |
nobody |
2-80131 2 days ago |
2-80640 2 days ago |
2-80628 2 days |
| 37678 |
vihdzp author:vihdzp |
chore(Dynamics/FixedPoints/Defs): create `Defs` file |
---
I got a large import warning on another PR for simply importing the definition `Function.fixedPoints`, which I found rather silly.
[](https://gitpod.io/from-referrer/)
|
t-dynamics
tech debt
maintainer-merge
|
67/44 |
Mathlib.lean,Mathlib/Dynamics/FixedPoints/Basic.lean,Mathlib/Dynamics/FixedPoints/Defs.lean,Mathlib/Logic/Function/Defs.lean |
4 |
2 |
['Ruben-VandeVelde', 'github-actions'] |
urkud assignee:urkud |
2-64844 2 days ago |
10-15132 10 days ago |
10-15698 10 days |
| 36965 |
vihdzp author:vihdzp |
chore(SetTheory/Cardinal): tweak `succ` lemmas |
We leave the `SuccOrder` instance unexposed. It doesn't have any particularly good def-eqs, it's simply defined as the infimum of all larger cardinals. We also golf some surrounding theorems.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
maintainer-merge
|
54/61 |
Mathlib/LinearAlgebra/Dimension/Basic.lean,Mathlib/Order/SuccPred/CompleteLinearOrder.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
5 |
4 |
['YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
2-60894 2 days ago |
2-78751 2 days ago |
24-72949 24 days |
| 37138 |
dtumad author:dtumad |
feat(Data/FinEnum): instances for standard signed and unsigned integer types |
Adds `FinEnum` instances for `UIntN`/`IntN` for various `N`, and for platform sized integers.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
maintainer-merge
|
45/0 |
Mathlib/Data/FinEnum.lean |
1 |
11 |
['dtumad', 'github-actions', 'joneugster', 'linesthatinterlace'] |
joneugster assignee:joneugster |
2-59266 2 days ago |
15-41051 15 days ago |
19-77272 19 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$ |
29/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 |
2-56314 2 days ago |
3-28824 3 days ago |
16-19093 16 days |
| 37995 |
grunweg author:grunweg |
doc(1000.yaml): note Koebe 1/4 and Sard's theorem |
---
[](https://gitpod.io/from-referrer/)
|
documentation
easy
|
7/2 |
docs/1000.yaml |
1 |
1 |
['github-actions'] |
nobody |
2-54637 2 days ago |
2-54701 2 days ago |
2-55277 2 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 |
2-53665 2 days ago |
7-67453 7 days ago |
22-33244 22 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
|
85/30 |
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 |
8 |
5 |
['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'ocfnash'] |
PatrickMassot assignee:PatrickMassot |
2-52391 2 days ago |
2-52185 2 days ago |
40-60631 40 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
|
14/0 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
10 |
['Maldooor', 'github-actions', 'samueloettl'] |
nobody |
2-52250 2 days ago |
2-52308 2 days ago |
58-45675 58 days |
| 37814 |
sglasman author:sglasman |
feat: Equivalence between HopfAlgCat R and Hopf (ModuleCat R) |
This PR resolves a TODO by demonstrating an equivalence of categories between two models of the category of Hopf algebras over a commutative ring R, that of Hopf objects in the module category of R and that of types with a `HopfAlgebra R` instance.
---
AI declaration: I consulted with Claude on proof strategies. The proofs were ultimately written by me.
|
new-contributor
large-import
|
214/4 |
Mathlib/CategoryTheory/Monoidal/Hopf_.lean,Mathlib/RingTheory/HopfAlgebra/Basic.lean |
2 |
4 |
['github-actions', 'robin-carlier', 'sglasman'] |
nobody |
2-46113 2 days ago |
7-22042 7 days ago |
7-22030 7 days |
| 38003 |
grunweg author:grunweg |
chore(downstream_repos.yml): update physlib name and repository |
---
[](https://gitpod.io/from-referrer/)
|
easy
CI
|
2/2 |
scripts/downstream_repos.yml |
1 |
1 |
['github-actions', 'jstoobysmith'] |
nobody |
2-45262 2 days ago |
2-45406 2 days ago |
2-45394 2 days |
| 30077 |
agjftucker author:agjftucker |
feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfBivariate |
Introduce a further specialization of the implicit function theorem; one which applies to a curried bivariate function.
---
- [x] depends on: #26985
This is in large part a response to sgouezel's review comment on #16743
> The real question is whether it's best to formulate the result for curried or uncurried function. My bet is that curried would be better since most functions on products in fact come in curried form, but since you've already written fully the uncurried version (and a todo saying that it would be good having the curried version as well), let's keep it like that for now.
#26985 reviewed by j-loreaux and later on by winstonyin.
#16743 and #26300 reviewed by sgouezel.
[Zulip chat](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Inverse.20function.20theorem.20and.20ContinuousLinearEquiv/with/567586606) with Yury Kudryashov.
[](https://gitpod.io/from-referrer/)
|
t-analysis
maintainer-merge
|
187/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/FDeriv/Partial.lean,Mathlib/Analysis/Calculus/ImplicitFunction/Bivariate.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean |
4 |
14 |
['agjftucker', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
j-loreaux assignee:j-loreaux |
2-45036 2 days ago |
2-45097 2 days ago |
54-25385 54 days |
| 34675 |
YaelDillies author:YaelDillies |
feat: comultiplication as a bialgebra hom |
From Toric
---
- [x] depends on: #32245
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
toric
|
71/12 |
Mathlib/RingTheory/Bialgebra/TensorProduct.lean,Mathlib/RingTheory/Coalgebra/TensorProduct.lean |
2 |
6 |
['YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'riccardobrasca'] |
nobody |
2-45000 2 days ago |
3-68480 3 days ago |
3-68469 3 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 |
1 |
['github-actions'] |
nobody |
2-43938 2 days ago |
6-58317 6 days ago |
6-60683 6 days |
| 37929 |
Vierkantor author:Vierkantor |
chore(Tactic): rewrite `reduce_mod_char` tactic docstring |
This PR rewrites the docstrings for the `reduce_mod_char` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
22/12 |
Mathlib/Tactic/ReduceModChar.lean |
1 |
1 |
['github-actions'] |
nobody |
2-43326 2 days ago |
2-43393 2 days ago |
2-44105 2 days |
| 37931 |
Vierkantor author:Vierkantor |
chore(Tactic): make the (deprecated) `replace` syntax a `@[tactic_alt]` |
This PR replaces the tactic docstring for Mathlib's version of `replace` with a `@[tactic_alt]` attribute + `tactic_extension`. Also update the module docs which did not get updated when `replace` got upstreamed to core Lean.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
7/31 |
Mathlib/Tactic/Replace.lean |
1 |
1 |
['github-actions'] |
nobody |
2-43326 2 days ago |
2-43386 2 days ago |
2-44096 2 days |
| 38005 |
robin-carlier author:robin-carlier |
chore(Algebra): remove simps projections for structures of bundled objects |
I noticed that currently, adding a `@[simps]` tag to a `ModuleCat`-valued definition will generate projections for the `isModule` fields. These projections are removed. Same in `BialgCat` and `HopfAlgCat`.
---
I did not look very hard for all cases of this, but those three should be a starter.
Renaming `carrier` to `coe` will break a few things, so I opted for keeping it like this for now, feel free to disagree, but this will make the diff bigger.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
4/0 |
Mathlib/Algebra/Category/BialgCat/Basic.lean,Mathlib/Algebra/Category/HopfAlgCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Semi.lean |
4 |
1 |
['github-actions'] |
nobody |
2-36142 2 days ago |
2-36199 2 days ago |
2-39332 2 days |
| 34773 |
semaraugusto author:semaraugusto |
feat(InformationTheory): add Shannon entropy for probability mass functions |
Add Shannon entropy for probability mass functions
This PR defines the Shannon entropy of a probability mass function as an
ℝ-valued infinite sum using `Real.negMulLog`, and proves basic properties
and standard computations.
Main results include:
* entropy is nonnegative;
* entropy vanishes iff the PMF is deterministic (`PMF.pure`);
* entropy is strictly positive for non-pure PMFs;
* entropy of a Bernoulli PMF coincides with `Real.binEntropy`;
* entropy of uniform distributions is `log` of the cardinality, both for
`PMF.uniformOfFintype` and `PMF.uniformOfFinset`.
Several small helper lemmas isolate technical arguments about supports,
coercions from `ℝ≥0∞`, and bounds on infinite sums, in order to keep the
main proofs readable.
See the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/generic.20shannon.20entropy.20formalization.20mathlib4/with/570643335).
---
I used ChatGPT for some proof structuring and refactoring suggestions, but all proofs were manually checked and adapted. I verified the arguments and adjusted naming and structure to follow mathlib conventions.
The proof of shannonEntropy_eq_log_card_sub_toReal_klDiv_uniformOfFintype and some of its helper lemmas were initially generated using Codex.
I manually reviewed the generated proof, checked each step, and refactored the code and naming to follow mathlib conventions.
[](https://gitpod.io/from-referrer/)
|
new-contributor
LLM-generated
|
417/0 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean,Mathlib/InformationTheory/Entropy.lean |
3 |
15 |
['adomasbaliuka', 'dupuisf', 'euprunin', 'github-actions', 'mathlib-merge-conflicts', 'mattrobball', 'semaraugusto', 'wwylele'] |
dupuisf and sgouezel assignee:sgouezel assignee:dupuisf |
2-36109 2 days ago |
11-12457 11 days ago |
20-30549 20 days |
| 37851 |
gaetanserre author:gaetanserre |
feat(Category/Kernel): `Stoch` is a positive Markov category |
Add several `Deterministic` instances for `SFinKer` and `Stoch` associators, unitors, braiding, counit, and comul morphisms.
In particular, all isomorphisms in `Stoch` are `Deterministic`. To show that, I created `Kernel.IsDeterministicKernel` that encodes that a kernel is _deterministic_, in the sense of Markov category (see Definition 10.1 of _A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics_, Fritz 2020). I then followed the proof of Example 11.25 to show that `Stoch` is a positive Markov category (see `Kernel.parallelComp_id_comp_copy_comp`), inducing that all isomorphisms in `Stoch` are `Deterministic`.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
t-category-theory
|
414/38 |
Mathlib.lean,Mathlib/CategoryTheory/MarkovCategory/Positive.lean,Mathlib/CategoryTheory/Monoidal/Widesubcategory.lean,Mathlib/Probability/Kernel/Category/SFinKer.lean,Mathlib/Probability/Kernel/Category/Stoch.lean,Mathlib/Probability/Kernel/Composition/KernelLemmas.lean,Mathlib/Probability/Kernel/Deterministic.lean |
7 |
7 |
['gaetanserre', 'github-actions', 'joelriou'] |
RemyDegenne assignee:RemyDegenne |
2-35399 2 days ago |
2-37761 2 days ago |
5-15584 5 days |
| 37773 |
chrisflav author:chrisflav |
chore(Algebra/Category): add `ModuleCat.restrictScalarsIsoOfEquiv` |
Split of as separate PR, because it also contains three basic `simp` lemmas.
We also add missing type annotations in the file `Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
51/15 |
Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Polynomial/Module/Basic.lean,Mathlib/Algebra/Ring/Equiv.lean,Mathlib/RingTheory/Perfection.lean |
5 |
3 |
['chrisflav', 'github-actions', 'robin-carlier'] |
mattrobball assignee:mattrobball |
2-32781 2 days ago |
2-32836 2 days ago |
7-67878 7 days |
| 37796 |
JadAbouHawili author:JadAbouHawili |
feat(Data/Set): add mem_singleton lemma |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
easy
|
9/3 |
Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Insert.lean,Mathlib/Data/Set/Insert.lean |
3 |
5 |
['JadAbouHawili', 'github-actions', 'wwylele'] |
nobody |
2-32541 2 days ago |
4-23734 4 days ago |
7-43310 7 days |
| 37393 |
SnirBroshi author:SnirBroshi |
refactor(Algebra/Order/Monoid/Unbundled/Defs): upgrade `*ReflectLE` from `abbrev`s to `class`es |
... to mitigate performance regression caused by #36629.
Currently these classes are an `abbrev` for `ContravariantClass` so when TC-search tries to synthesize them it ends up looking through all the `ContravariantClass` instances and not just the relevant ones.
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/116290-rss/topic/Significant.20commits.20to.20mathlib4/near/582661644)
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
60/56 |
Mathlib/Algebra/Order/Group/Multiset.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/OrderDual.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean |
7 |
10 |
['JovanGerb', 'SnirBroshi', 'github-actions', 'leanprover-radar', 'vihdzp'] |
kim-em assignee:kim-em |
2-32256 2 days ago |
12-73580 12 days ago |
15-73788 15 days |
| 36758 |
LarsenClose author:LarsenClose |
feat(Algebra/Category/ModuleCat): add locally finitely presentable instance |
Prove that `ModuleCat R` is locally finitely presentable for any commutative
ring `R`. The free rank-1 module is a small strong generator of
`ℵ₀`-presentable objects (Gabriel-Ulmer, Adamek-Rosicky Theorem 1.11).
This is the first `IsLocallyFinitelyPresentable` instance for an algebraic
category in Mathlib. Opens the path to LFP instances for other algebraic
categories (groups, rings, etc.) via the same generator pattern.
Companion to #36104.
### AI disclosure
Developed with assistance from Claude (Anthropic). AI was used for proof
exploration, convention checking, and PR preparation. All mathematical
content and proof strategy reviewed and understood by the author. |
new-contributor
t-algebra
LLM-generated
label:t-algebra$ |
163/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ForgetCorepresentable.lean,Mathlib/Algebra/Category/ModuleCat/Presentable.lean |
3 |
21 |
['LarsenClose', 'eric-wieser', 'github-actions', 'joelriou', 'robin-carlier'] |
nobody |
2-27591 2 days ago |
2-27591 2 days ago |
4-77652 4 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 |
5 |
['Komyyy', 'github-actions', 'mathlib-merge-conflicts', 'tannerduve'] |
Komyyy assignee:Komyyy |
2-21282 2 days ago |
2-41862 2 days ago |
3-17744 3 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'] |
nobody |
2-16247 2 days ago |
2-16313 2 days ago |
2-16301 2 days |
| 37906 |
AntoineChambert-Loir author:AntoineChambert-Loir |
refactor(Data/Nat/Choose/Multinomial): last minute modification before merge |
Addresses the final remark by @b-mehta before #35830 was merged
---
[](https://gitpod.io/from-referrer/)
|
t-data
easy
|
4/4 |
Mathlib/Data/List/ToFinsupp.lean,Mathlib/Data/Nat/Choose/Multinomial.lean |
2 |
3 |
['github-actions', 'mathlib-merge-conflicts', 'themathqueen'] |
nobody |
2-15738 2 days ago |
2-15762 2 days ago |
5-28087 5 days |
| 36419 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/DividedPowerAlgebra/Init): add a computation lemma |
Add a lemma `DividedPowerAlgebra.pow_dp`.
Co-authored with: @mariainesdff
---
- [x] depends on: #35804
- [x] depends on: #35830
[](https://gitpod.io/from-referrer/)
|
|
6/0 |
Mathlib/RingTheory/DividedPowerAlgebra/Init.lean |
1 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-15695 2 days ago |
2-15717 2 days ago |
5-31202 5 days |
| 34742 |
Brian-Nugent author:Brian-Nugent |
feat(SheafCohomology): add API for Sheaf Cohomology |
Defines the long exact sequence on cohomology associated to a short exact sequence of sheaves `H.longSequence`. Also defines `H.equiv₀`, the additive equivalence between `H F 0` and `((sheafSections J AddCommGrpCat).obj (op T)).obj F` when the category has a terminal object `T`.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-category-theory
|
88/3 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
3 |
36 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-merge-conflicts'] |
robin-carlier assignee:robin-carlier |
2-14401 2 days ago |
2-14459 2 days ago |
63-59771 63 days |
| 36507 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): various equivalences for `MvPowerSeries` |
This PR adds a number of equivalences related to power series rings and is patterned after `Mathlib/Algebra/MvPolynomial/Equiv.lean`.
To be specific, it adds:
* `MvPowerSeries.isEmptyEquiv` : The isomorphism between multivariable power series
in no variables and the ground ring.
* `MvPowerSeries.uniqueEquiv` : The isomorphism between multivariable power series
in a single variable and power series over the ground ring.
* `MvPowerSeries.mapEquiv`, `MvPowerSeries.mapAlgEquiv` : The isomorhism between
multivariable power series induced by an isomorphism between the coefficient rings.
* `MvPowerSeries.sumAlgEquiv` : The isomorphism between multivariable power series
in a sum of two types, and multivariable power series in one of the types,
with coefficients in multivariable power series in the other type.
* `MvPowerSeries.commAlgEquiv` : The isomorphism between multivariable power series
in variables `σ` of multivariable power series in variables `τ` and multivariable power series
in variables `τ` of multivariable power series in variables `σ`.
* `MvPowerSeries.optionEquivLeft` : The isomorphism between multivariable power series
in `Option σ` and power series with coefficients in `MvPowerSeries σ R`.
* `MvPowerSeries.optionEquivRight` : The isomorphism between multivariable power series
in `Option σ` and multivariable power series in `σ` with coefficients in `PowerSeries R`
* `MvPowerSeries.finSuccEquiv` : The isomorphism between multivariable power series
in `Fin (n + 1)` and power series over multivariable power series in `Fin n`.
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #35329
- [x] depends on: #36506 |
t-ring-theory |
600/4 |
Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean |
2 |
26 |
['AntoineChambert-Loir', 'BryceT233', 'Thmoas-Guan', 'WenrongZou', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib-dependent-issues'] |
nobody |
2-14221 2 days ago |
2-14839 2 days ago |
8-61310 8 days |
| 38007 |
JovanGerb author:JovanGerb |
perf(Data/Complex/Basic): `no_expose` the `Inv` and `Norm` instance |
This PR hides some more implementation details of complex numbers.
It would be possible to `no_expose` even more definitions, but this could be at the cost of some proof writing convenience.
---
[](https://gitpod.io/from-referrer/)
|
tech debt |
11/12 |
Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Complex/Norm.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Data/Complex/Basic.lean |
4 |
6 |
['JovanGerb', 'github-actions', 'grunweg', 'leanprover-radar'] |
nobody |
2-14140 2 days ago |
2-33217 2 days ago |
2-33294 2 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 |
8 |
['NoahW314', 'SnirBroshi', 'github-actions'] |
nobody |
2-11906 2 days ago |
2-43681 2 days ago |
5-78438 5 days |
| 37648 |
vihdzp author:vihdzp |
chore: make argument in `bddAbove_of_small` implicit |
We use the theorem with an implicit argument much more (~80 times) than we use it with an explicit one (twice).
We also deprecate the redundant `bddAbove_range` lemmas.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
85/92 |
Mathlib/CategoryTheory/ObjectProperty/LimitsClosure.lean,Mathlib/Combinatorics/Matroid/Rank/Cardinal.lean,Mathlib/Data/W/Cardinal.lean,Mathlib/LinearAlgebra/Dimension/Basic.lean,Mathlib/LinearAlgebra/Dimension/Constructions.lean,Mathlib/LinearAlgebra/Dimension/Finite.lean,Mathlib/LinearAlgebra/Dimension/Localization.lean,Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean,Mathlib/ModelTheory/Encoding.lean,Mathlib/RingTheory/AlgebraicIndependent/Basic.lean,Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean,Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean,Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Ordinal.lean,Mathlib/SetTheory/Ordinal/Enum.lean,Mathlib/SetTheory/Ordinal/Family.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean,Mathlib/SetTheory/Ordinal/Topology.lean,Mathlib/SetTheory/ZFC/Cardinal.lean,Mathlib/SetTheory/ZFC/VonNeumann.lean |
23 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
2-11867 2 days ago |
2-11926 2 days ago |
10-45213 10 days |
| 36891 |
vihdzp author:vihdzp |
feat(SetTheory/Ordinal/Exponential): characterization of `a ^ b = 1` |
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
12/0 |
Mathlib/SetTheory/Ordinal/Exponential.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
alreadydone assignee:alreadydone |
2-11266 2 days ago |
22-12747 22 days ago |
26-67943 26 days |
| 36664 |
SnirBroshi author:SnirBroshi |
feat(SetTheory/Ordinal/Commute): characterize when ordinal addition commutes |
---
The proof is from ["Cardinal and Ordinal Numbers"](https://en.wikipedia.org/wiki/Cardinal_and_Ordinal_Numbers).
A similar fact for multiplication is mentioned on [Wikipedia](https://en.wikipedia.org/wiki/Ordinal_arithmetic).
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
51/0 |
Mathlib.lean,Mathlib/SetTheory/Ordinal/Commute.lean,docs/references.bib |
3 |
20 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] |
vihdzp assignee:vihdzp |
2-6962 2 days ago |
31-342 31 days ago |
31-55445 31 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'] |
nobody |
2-6961 2 days ago |
92-24067 92 days ago |
92-24055 92 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'] |
nobody |
2-6961 2 days ago |
31-77578 31 days ago |
31-77566 31 days |
| 34092 |
staroperator author:staroperator |
feat(SetTheory/ZFC): properties of `ZFSet.omega` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
77/10 |
Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/PSet.lean |
3 |
25 |
['Komyyy', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator', 'vihdzp'] |
nobody |
2-6960 2 days ago |
76-28870 76 days ago |
87-74273 87 days |
| 34851 |
dennj author:dennj |
feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations |
This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization:
- `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i`
- `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x`
- `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i`
These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). |
t-data
new-contributor
|
22/0 |
Mathlib/Data/Matrix/Mul.lean |
1 |
7 |
['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
2-6953 2 days ago |
70-22427 70 days ago |
70-22415 70 days |
| 36970 |
astrainfinita author:astrainfinita |
chore: redefine `Nat.div2` `Nat.bodd` |
---
This PR continues the work from #13649.
Original PR: https://github.com/leanprover-community/mathlib4/pull/13649 |
t-data |
54/72 |
Mathlib/Computability/Primrec/Basic.lean,Mathlib/Data/Int/Bitwise.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Logic/Denumerable.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Logic/Equiv/Nat.lean |
7 |
2 |
['astrainfinita', 'github-actions'] |
nobody |
2-6953 2 days ago |
24-82402 24 days ago |
25-1379 25 days |
| 36210 |
vbeffara author:vbeffara |
feat(Combinatorics/SimpleGraph): definitions of graph contraction and graph minor |
A contraction is the image of a graph through a surjective function with connected fibers, and a minor is a contraction of a subgraph.
This PR shows that being a contraction is transitive, but does not show the same for minors because the proof is more involved, it will be in a subsequent PR. The definitions are in `Prop` and do not contain data, but I'm not sure if that was the right choice.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
151/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Contraction.lean,Mathlib/Combinatorics/SimpleGraph/Minor.lean |
3 |
7 |
['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vbeffara'] |
b-mehta assignee:b-mehta |
2-6462 2 days ago |
27-46487 27 days ago |
40-73065 40 days |
| 36398 |
chrisflav author:chrisflav |
feat(RingTheory): a finite étale algebra is étale locally finite split |
From Pi1.
---
- [x] depends on: #36399
The large import is expected: The file is a leaf file that was split among two PRs.
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
117/2 |
Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/TotallySplit.lean,Mathlib/RingTheory/Unramified/Basic.lean |
3 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
mattrobball assignee:mattrobball |
2-6461 2 days ago |
2-58715 2 days ago |
2-60261 2 days |
| 36783 |
wwylele author:wwylele |
feat(RingTheory/Localization): R ⧸ pⁿ ≃+* Rₚ ⧸ (maximalIdeal Rₚ)ⁿ |
This extends the existing `def equivQuotMaximalIdeal : R ⧸ p ≃+* Rₚ ⧸ maximalIdeal Rₚ` to powers of maximal ideals.
---
Disclosure of AI usage: I chat with AI for a sketch of the proof. The code is entirely written by me.
I didn't state the simp lemma for the symm direction because I am not sure how to state it. Following the analog of equivQuotMaximalIdeal_symm_apply_mk, this should be
```
theorem equivQuotMaximalIdealPow_symm_apply_mk (x : R) (s : p.primeCompl) :
(equivQuotMaximalIdealPow p Rₚ n).symm (Ideal.Quotient.mk _ (IsLocalization.mk' Rₚ x s)) =
(Ideal.Quotient.mk (p ^ n) x) * (Ideal.Quotient.mk (p ^ n) s)⁻¹ := by
```
But `(Ideal.Quotient.mk (p ^ n) s)⁻¹` is taking inverse in a non-field ring. Here the inverse always exists because s is not in p. What is the mathlib way to say this?
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
53/0 |
Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean |
3 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
2-6460 2 days ago |
29-6902 29 days ago |
29-6890 29 days |
| 37406 |
vihdzp author:vihdzp |
feat(SetTheory/Cardinal): `IsStrongPrelimit` predicate |
We introduce a predicate for cardinals `c` such that `x < c` implies `x < 2 ^ c`. This is to `IsStrongLimit` as `IsSuccPrelimit` is to `IsSuccLimit`. We then make use of it in a few places where we were writing down `∀ x < c, x < 2 ^ c` explicitly.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
56/25 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Cardinal/Regular.lean |
4 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
2-6459 2 days ago |
14-16672 14 days ago |
15-69592 15 days |
| 37658 |
joelriou author:joelriou |
chore(AlgebraicTopology): rename `SingularHomology.HomotopyInvarianceTopCat` |
Following #37656, it is possible to rename `SingularHomology.HomotopyInvarianceTopCat` as `SingularHomology.HomotopyInvariance`.
---
The file `SingularHomology.HomotopyInvarianceTopCat` is deprecated in #37877.
- [x] depends on: #37656
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
file-removed
|
1/1 |
Mathlib.lean,Mathlib/AlgebraicTopology/SingularHomology/HomotopyInvariance.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues'] |
robin-carlier assignee:robin-carlier |
2-6455 2 days ago |
2-37906 2 days ago |
2-37895 2 days |
| 37671 |
grunweg author:grunweg |
feat: also check for norm_num in the flexible linter |
Most other flexible tactics are terminal; dsimp is missing from this list (but perhaps less important in practice.
---
- [x] depends on: #37880
[](https://gitpod.io/from-referrer/)
|
t-linter |
31/1 |
Archive/Wiedijk100Theorems/AbelRuffini.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semifield.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/CStarAlgebra/Unitary/Connected.lean,Mathlib/Analysis/InnerProductSpace/Convex.lean,Mathlib/Analysis/SpecialFunctions/ArithmeticGeometricMean.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean,Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/MeasureTheory/Integral/MeanInequalities.lean,Mathlib/MeasureTheory/Measure/IntegralCharFun.lean,Mathlib/NumberTheory/Chebyshev.lean,Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Topology/UrysohnsLemma.lean |
19 |
6 |
['SnirBroshi', 'github-actions', 'grunweg', 'mathlib-dependent-issues'] |
thorimur assignee:thorimur |
2-6454 2 days ago |
2-66745 2 days ago |
2-66735 2 days |
| 37917 |
chenson2018 author:chenson2018 |
refactor: elimate string manipulation in `TacticAnalysis.verifyTryThisSuggestions` |
This change should be compatible with, but independent from, #37916. Instead of manipulating pretty-printed strings to identify when `grind?` uses hashes or `approx`, search for the corresponding syntax kinds.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
5/11 |
Mathlib/Tactic/TacticAnalysis/Declarations.lean |
1 |
1 |
['github-actions'] |
dwrensha assignee:dwrensha |
2-6452 2 days ago |
5-9248 5 days ago |
5-9236 5 days |
| 37924 |
JovanGerb author:JovanGerb |
perf(Tactic/FastInstance): use `whnf` on data fields |
This PR lets `fast_instance%` make even faster instances by using `whnf` on data fields.
This PR also changes `withReducible` to the more appropriate `withReducibleAndInstances` in the implementation.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
5/5 |
Mathlib/Tactic/FastInstance.lean,MathlibTest/InferInstanceAsPercent.lean |
2 |
4 |
['JovanGerb', 'github-actions', 'leanprover-radar'] |
dwrensha assignee:dwrensha |
2-6451 2 days ago |
4-60666 4 days ago |
4-60880 4 days |
| 37982 |
chrisflav author:chrisflav |
feat(RingTheory/Etale): descent along faithfully flat maps |
From Pi1.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
121/1 |
Mathlib.lean,Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Descent.lean |
3 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
2-6447 2 days ago |
2-61394 2 days ago |
2-61382 2 days |
| 38012 |
chrisflav author:chrisflav |
chore(CategoryTheory/Limits): dualize existence of limits in `Over` to `Under` |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
147/4 |
Mathlib/CategoryTheory/Limits/Comma.lean,Mathlib/CategoryTheory/Limits/Constructions/Over/Basic.lean,Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean,Mathlib/CategoryTheory/Limits/Opposites.lean |
4 |
1 |
['github-actions'] |
robin-carlier assignee:robin-carlier |
2-6445 2 days ago |
2-34392 2 days ago |
2-34380 2 days |
| 36787 |
hommmmm author:hommmmm |
feat(RingTheory/LocalRing): Krull dimension results for maximal ideal of local ring |
## Summary
This PR adds:
* `IsLocalRing.exists_mem_maximalIdeal_not_mem_sq`: In a Noetherian local ring of positive Krull dimension, there exists an element in the maximal ideal that is not in its square.
The result follows from Nakayama's lemma: if every element of the maximal ideal `𝔪` were in `𝔪²`, then `𝔪 = 𝔪²`, and Nakayama gives `𝔪 = ⊥`, contradicting positive dimension.
## Acknowledgements
Thanks to Dora Kassabova and Leopold Mayer for edit suggestions.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
14/0 |
Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean |
1 |
15 |
['NoahW314', 'chrisflav', 'github-actions', 'hommmmm', 'tb65536', 'wwylele'] |
chrisflav assignee:chrisflav |
2-4865 2 days ago |
2-4914 2 days ago |
28-74117 28 days |
| 37816 |
marcelolynch author:marcelolynch |
fix: Fail lake exe cache on unexpected arguments, add --help |
Currently, `lake exe cache` just ignores unexpected arguments. This leads to unexpected situations like `lake exe cache get --help` being equivalent to `lake exe cache get`. Let's be louder and complain if anything is unexpected. |
CI |
24/3 |
Cache/Main.lean |
1 |
2 |
['adomani', 'github-actions'] |
nobody |
2-1574 2 days ago |
2-1628 2 days ago |
2-9131 2 days |
| 34649 |
peabrainiac author:peabrainiac |
feat(Analysis/Calculus/ContDiff): add notation `ℕ∞ω` for `WithTop ℕ∞` |
Add a `ContDiff`-scoped notation `ℕ∞ω` for `WithTop ℕ∞`, accompanying the existing notations `∞` and `ω` for `(⊤ : ℕ∞) : ℕ∞ω` and `⊤ : ℕ∞ω`.
---
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/RFC.3A.20notation.20for.20.60WithTop.20.E2.84.95.E2.88.9E.60/near/573917824)
I've also replaced `WithTop ℕ∞` with this new notation already in the files that mention it the most, but not in all files yet; many mention `WithTop ℕ∞` just a couple of times but don't open the `ContDiff` namespace. I'm not sure whether that should be taken as a sign to not make the notation scoped, or whether the solution is just to `open scoped ContDiff` in these files or not use the notation there.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-analysis
maintainer-merge
|
276/272 |
Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/ContDiff/CPolynomial.lean,Mathlib/Analysis/Calculus/ContDiff/Comp.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/Deriv.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Calculus/FDeriv/Symmetric.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean,Mathlib/Analysis/Calculus/IteratedDeriv/FaaDiBruno.lean,Mathlib/Analysis/Calculus/VectorField.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/InverseDeriv.lean,Mathlib/Geometry/Manifold/Algebra/LeftInvariantDerivation.lean,Mathlib/Geometry/Manifold/Algebra/LieGroup.lean,Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean,Mathlib/Geometry/Manifold/Algebra/Structures.lean,Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean,Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/Geometry/Manifold/ContMDiff/Defs.lean,Mathlib/Geometry/Manifold/Diffeomorph.lean,Mathlib/Geometry/Manifold/Immersion.lean,Mathlib/Geometry/Manifold/Instances/Real.lean,Mathlib/Geometry/Manifold/Instances/Sphere.lean,Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,Mathlib/Geometry/Manifold/Riemannian/Basic.lean,Mathlib/Geometry/Manifold/Riemannian/PathELength.lean,Mathlib/Geometry/Manifold/SmoothEmbedding.lean,Mathlib/Geometry/Manifold/VectorBundle/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/FiberwiseLinear.lean,Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean,Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean,Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean,Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean,Mathlib/Geometry/Manifold/VectorField/Pullback.lean |
47 |
12 |
['JovanGerb', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'peabrainiac'] |
sgouezel assignee:sgouezel |
1-85340 1 day ago |
1-85365 1 day ago |
13-61814 13 days |
| 37008 |
BryceT233 author:BryceT233 |
feat(Algebra/Ring): `pullback` for `RingHom` and `AlgHom` |
This PR adds `pullback` for `RingHom` and `AlgHom` and adds `IsLocalHom`, `IsLocalRing` lemmas related to them.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
160/0 |
Mathlib/Algebra/Algebra/Subalgebra/Prod.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/RingTheory/LocalRing/LocalSubring.lean |
3 |
5 |
['BryceT233', 'github-actions', 'wwylele'] |
mattrobball assignee:mattrobball |
1-84941 1 day ago |
13-54990 13 days ago |
23-70204 23 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
|
277/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/MapSimp.lean |
5 |
8 |
['adamtopaz', 'dagurtomas', 'github-actions', 'joelriou'] |
adamtopaz assignee:adamtopaz |
1-81373 1 day ago |
2-27665 2 days ago |
20-77682 20 days |
| 35287 |
arnoudvanderleer author:arnoudvanderleer |
feat(AlgebraicTopology/SimplicialSet): define isomorphisms in simplicial sets, and the coherent isomorphism simplicial set |
show that any edge in a simplicial set, that is the image of the forward edge of the coherent isomorphism under a simplicial set morphism, is an isomorphism.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
new-contributor
infinity-cosmos
please-merge-master
|
372/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/CoherentIso.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveCodiscrete.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/CategoryTheory/CodiscreteCategory.lean |
6 |
95 |
['arnoudvanderleer', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-80570 1 day ago |
1-80570 1 day ago |
12-61545 12 days |
| 36376 |
jessealama author:jessealama |
feat(SimpleGraph): bridge from Perm.IsCycle to IsHamiltonian |
This PR provides `IsHamiltonian.ofPerm`, a bridge from `Equiv.Perm.IsCycle` to `SimpleGraph.IsHamiltonian`: if σ is a permutation that is a single cycle with full support on at least 3 elements, and each step `v → σ v` is an edge of `G`, then `G` is Hamiltonian.
### New definitions and lemmas
**`Mathlib/Combinatorics/SimpleGraph/Walks/Iterate.lean`** (new file):
- `Walk.iterate`: builds a walk of length `n` from `x` to `f^[n] x` for any function `f` with `G.Adj x (f x)` for all `x`, defined via `Walk.ofSupport`
- `Walk.length_iterate`, `Walk.support_iterate`, `Walk.edges_iterate`: basic API
**`Mathlib/GroupTheory/Perm/Cycle/Basic.lean`**:
- `IsCycleOn.injOn_pow_apply`: the map `n ↦ (f ^ n) a` is injective on `Finset.range #s`
**`Mathlib/GroupTheory/Perm/Cycle/Concrete.lean`**:
- `Perm.toList_eq_range_map_pow`: expresses `toList` as a range map over powers
**`Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean`**:
- `edge_ne_of_isCycleOn`: edge distinctness for cycle-on permutations
- `IsHamiltonian.ofPerm`: the main theorem
- [ ] depends on: #36307 |
large-import |
169/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Iterate.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean |
5 |
36 |
['SnirBroshi', 'github-actions', 'jessealama', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-66909 1 day ago |
12-21248 12 days ago |
23-63498 23 days |
| 37347 |
JovanGerb author:JovanGerb |
feat: implementation of `@[use_set_notation_for_order]` |
This PR allows the use of `⊆` notation while the underlying constant is `≤`.
Similarly for `⊂`/`<`, `⊇`/`≥` and `⊃`/`>`.
- The idea is to later extend this feature to other set notation constants, such as union/intersection.
- There are some types for which we cannot use `LE.le` as the underlying constant, such as `List` and `Multiset`. So, the elaborator for the `⊆` notation needs to make a decision which underlying constant to elaborate to, depending on the type. Sometimes the type is not known yet, which makes things awkward. Most of these cases are solved by delaying the elaboration until later when the type is known.
- However, in some cases this doesn't work either, such as `simp_rw [and_comm (_ ⊆ _)]`, where it is impossible to tell the type when elaborating the term. So, some such cases need to be fixed by making it `simp_rw [and_comm (_ ≤ _)]`. This is because `simp_rw`, unlike `rw`, fully elaborates the rewrite rules before using them. So, when we get the new rewrite tactic, this problem will mostly go away.
See also https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Any.20infimum.20based.20version.20of.20.60OmegaCompletePartialOrder.60.3F/near/579333629
---
[](https://gitpod.io/from-referrer/)
|
t-meta
maintainer-merge
|
345/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SetNotationForOrder.lean,MathlibTest/SetNotationForOrder.lean |
4 |
44 |
['JovanGerb', 'github-actions', 'thorimur'] |
alexjbest and thorimur assignee:alexjbest assignee:thorimur |
1-65347 1 day ago |
3-12359 3 days ago |
16-39834 16 days |
| 37860 |
WenrongZou author:WenrongZou |
feat(PowerSeries): `substInv` add add a variant assuming `IsUnit` |
---
In this PR, I add a variant assuming `IsUnit` in `substInv`.
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
56/28 |
Mathlib/RingTheory/PowerSeries/Substitution.lean |
1 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
1-62224 1 day ago |
1-62245 1 day ago |
5-71670 5 days |
| 37972 |
vihdzp author:vihdzp |
chore: deprecate various theorems about `Ordinal.ToType` |
We should generally be writing theorems about "well-orders of order type `o`", rather than theorems about `o.ToType` (which is just one such well-order, defined via choice).
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
maintainer-merge
|
31/18 |
Mathlib/CategoryTheory/Abelian/GrothendieckCategory/EnoughInjectives.lean,Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean,Mathlib/FieldTheory/CardinalEmb.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
6 |
2 |
['YaelDillies', 'github-actions'] |
nobody |
1-61310 1 day ago |
2-79690 2 days ago |
2-82624 2 days |
| 36544 |
xroblot author:xroblot |
feat(RingTheory/Ideal): restriction maps on decomposition and inertia groups in a Galois tower |
Adds a new file `Mathlib/RingTheory/Ideal/Galois.lean` with results on the action of `Gal(L/K)` on ideals of a ring `B ⊆ L` for a Galois subextension `F/K` of `L/K`. The main results are the surjectivity and kernel descriptions of the natural maps from the decomposition (resp. inertia) group of `P` in `Gal(L/K)` to the decomposition (resp. inertia) group of `p` in `Gal(F/K)`, induced by restriction.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
213/0 |
Mathlib.lean,Mathlib/FieldTheory/Normal/Defs.lean,Mathlib/RingTheory/Ideal/Galois.lean |
3 |
17 |
['copilot-pull-request-reviewer', 'github-actions', 'riccardobrasca', 'tb65536', 'xroblot'] |
riccardobrasca assignee:riccardobrasca |
1-61078 1 day ago |
34-32883 34 days ago |
34-32871 34 days |
| 35653 |
pepamontero author:pepamontero |
feat: add ChartedSpace structure on orbit space |
Add topological preliminaries for properly discontinuous group actions, and use them to equip the orbit space `orbitRel.Quotient G M` with a `ChartedSpace` structure.
In particular:
- Show that the quotient map `Quotient.mk _ : M → orbitRel.Quotient G M` is a covering map and hence a local homeomorphism.
- Construct chosen local inverses of the quotient map and establish properties over them.
- Define a `ChartedSpace` instance on the quotient by composing these local inverses with charts of M.
Future PRs will (hopefully) upgrade this to a smooth manifold structure (assuming a smooth action).
This started as an ItaLean2025 project; here is the [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Quotient.20Manifolds/with/575121158) dedicated to it.
Co-authored by: Michael Rothgang
Co-authored by: Archie Browne @archiebrowne
Co-authored by: Enrique Diaz Blanco @qdiazblanco
Co-authored by: Juanjo Madrigal @juanjomadrigal |
new-contributor
t-differential-geometry
|
162/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Instances/OrbitSpace.lean,Mathlib/Topology/Algebra/OrbitSpace.lean |
3 |
70 |
['Rida-Hamadani', 'github-actions', 'grunweg', 'pepamontero'] |
grunweg assignee:grunweg |
1-57054 1 day ago |
2-18545 2 days ago |
51-68365 51 days |
| 37247 |
yuma-mizuno author:yuma-mizuno |
feat(GroupTheory/MonoidLocalization): add prime transport lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
75/7 |
Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean |
3 |
6 |
['github-actions', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
1-56851 1 day ago |
20-18022 20 days ago |
20-18010 20 days |
| 38037 |
linesthatinterlace author:linesthatinterlace |
feat: extend `LawfulXor` lemmas and add `Equiv.xor` |
This PR extends the work of #37712 by adding additional lemmas and adding `xor-as-a-permutation`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
270/0 |
Mathlib.lean,Mathlib/Data/Fin/Init.lean,Mathlib/Data/LawfulXor/Basic.lean,Mathlib/Data/LawfulXor/Equiv.lean |
4 |
3 |
['github-actions', 'linesthatinterlace'] |
eric-wieser and linesthatinterlace assignee:eric-wieser assignee:linesthatinterlace |
1-54909 1 day ago |
1-56049 1 day ago |
1-56139 1 day |
| 37831 |
EtienneC30 author:EtienneC30 |
feat: the cardinal of a finset is an ite sum over a bigger finset |
If `s ⊆ t` then `s.card = ∑ i ∈ t, if i ∈ s then 1 else 0`.
---
[](https://gitpod.io/from-referrer/)
|
t-data
t-algebra
label:t-algebra$ |
9/2 |
Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Data/Finset/BooleanAlgebra.lean,Mathlib/Data/Finset/Filter.lean |
3 |
3 |
['EtienneC30', 'github-actions', 'robin-carlier'] |
nobody |
1-52772 1 day ago |
1-60116 1 day ago |
6-63317 6 days |
| 36357 |
yuanyi-350 author:yuanyi-350 |
feat(Analysis/Calculus/IteratedDeriv): add affine composition lemmas |
This PR adds composition lemmas for `iteratedDerivWithin` and `iteratedFDerivWithin` on maps `𝕜 → F`, covering
`x ↦ f (-x)`, `x ↦ f (c + x)`, `x ↦ f (x + c)`, `x ↦ f (x - c)`, and `x ↦ f (c - x)`.
To support these statements, it also adds one-dimensional `fderivWithin` lemmas that do not require a `UniqueDiffWithinAt` hypothesis:
- `fderivWithin_zero_of_not_uniqueDiffWithinAt`
- `fderivWithin_const_smul_field'`
- `fderivWithin_neg'`
- `fderivWithin_comp_neg`
Finally, it rewrites `iteratedDeriv_comp_neg` to follow from the new Fréchet-derivative lemmas, and shortens two proofs in `ContDiff/FTaylorSeries` by replacing hand-written arguments with existing general lemmas.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
89/9 |
Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Equiv.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean |
5 |
15 |
['github-actions', 'j-loreaux', 'sgouezel', 'urkud', 'yuanyi-350'] |
sgouezel assignee:sgouezel |
1-50115 1 day ago |
8-7066 8 days ago |
19-43937 19 days |
| 37053 |
artie2000 author:artie2000 |
refactor(Analysis/Convex/Cone): use `PointedCone` in Riesz extension theorem |
Change the statement of the Riesz extension theorem to take a `PointedCone` rather than a `ConvexCone`.
This PR is part of a series replacing `ConvexCone` with `PointedCone`. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Replacing.20.60ConvexCone.60.20with.20.60PointedCone.60/near/581184307
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
maintainer-merge
|
15/12 |
Mathlib/Analysis/Convex/Cone/Extension.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean |
2 |
8 |
['YaelDillies', 'artie2000', 'github-actions', 'mathlib-merge-conflicts', 'ocfnash'] |
nobody |
1-48354 1 day ago |
1-48382 1 day ago |
21-3407 21 days |
| 37298 |
artie2000 author:artie2000 |
refactor(Algebra/Order): unbundle group and ring cone |
* Unbundle `GroupCone` and `RingCone` using `Submonoid.IsMulPointed`
---
[](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 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
1-47218 1 day ago |
17-33550 17 days ago |
17-34093 17 days |
| 38031 |
tb65536 author:tb65536 |
feat(RingTheory/Artinian/Ring): an Artinian ring is isomorphic to the product of its localizations |
This PR proves that an Artinian ring is isomorphic to the product of its localizations.
---
The best proof I could come up with goes via the quotient by the power of the nilradical, but it's rather clunky, so alternate proofs more than welcome!
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
85/1 |
Mathlib/RingTheory/Artinian/Ring.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
1-37410 1 day ago |
1-62478 1 day ago |
1-62467 1 day |
| 37505 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph): add lemma `SimpleGraph.length_cycleBypass_le` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
3/0 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
4 |
['IvanRenison', 'Rida-Hamadani', 'YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
1-34845 1 day ago |
3-13788 3 days ago |
14-16018 14 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
|
138/1 |
Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean |
1 |
3 |
['github-actions'] |
nobody |
1-34252 1 day ago |
1-35600 1 day ago |
1-35588 1 day |
| 28499 |
yoh-tanimoto author:yoh-tanimoto |
feat(MeasureTheory/VectorMeasure): add integral of a vector-valued function against a vector measure |
add `VectorMeasureWithPairing.integral` for normed vector spaces `E`, `F`, a Banach space `G` , a continuous linear pairing `B : E →L[ℝ] F →L[ℝ] → G` and an `F`-valued vector measure `μ`, which should be informally written as `∫ B (f x) ∂μ x`.
motivation: there are natural vector measures such as signed measures and complex measures, and their integrals appear naturally e.g. in a proof of the spectral theorem for general bounded normal operators on a Hilbert space.
- [x] depends on: #26160 for the definition and lemmas about the total variation of a vector measure. |
t-measure-probability |
247/0 |
Mathlib.lean,Mathlib/MeasureTheory/VectorMeasure/Integral.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean |
3 |
51 |
['EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'yoh-tanimoto'] |
EtienneC30 assignee:EtienneC30 |
1-33376 1 day ago |
1-33437 1 day ago |
3-66651 3 days |
| 33313 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Coloring/Edge): create a basic edge-coloring API |
Also moves `Coloring/VertexColoring.lean` to `Coloring/Vertex.lean`, see [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Coloring.20module.20names/with/583281500)
---
Future work (which I'm working on):
- Relating degrees to edge-colorability (`G.maxDegree ≤ G.chromaticIndex`)
- [Vizing's theorem](https://en.wikipedia.org/wiki/Vizing%27s_theorem) (`G.chromaticIndex ≤ G.maxDegree + 1`)
- `chromaticIndex ⊤ = (if Even #V then #V - 1 else #V)`
- `[Infinite α] → chromaticIndex ⊤ = ⊤`
Module name decided on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Coloring.20module.20names/with/583281500).
- [x] depends on: #33292
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
file-removed
|
291/6 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Edge.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Vertex.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean,Mathlib/Combinatorics/SimpleGraph/Partition.lean,Mathlib/Combinatorics/SimpleGraph/Sum.lean |
8 |
16 |
['SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'ooovi'] |
nobody |
1-31816 1 day ago |
10-42261 10 days ago |
23-71718 23 days |
| 34245 |
staroperator author:staroperator |
feat(Data/Set): add `Set.Uncountable` |
There are `Set` specialized shortcuts `Set.Finite`, `Set.Infinite` and `Set.Countable`, but lacking `Set.Uncountable`. I find this useful in #34246.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
82/4 |
Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Data/Set/Countable.lean,Mathlib/SetTheory/Cardinal/Basic.lean |
3 |
18 |
['github-actions', 'joneugster', 'staroperator', 'vihdzp'] |
joneugster assignee:joneugster |
1-25757 1 day ago |
1-25870 1 day ago |
13-47012 13 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'] |
nobody |
1-22322 1 day ago |
2-18853 2 days ago |
2-20458 2 days |
| 34820 |
staroperator author:staroperator |
feat(Order/Ideal): more results on order ideals |
Some iffs, closure of finite supremum, and that every proper ideal is contained in a maximal ideal.
---
- [x] depends on: #37467
[](https://gitpod.io/from-referrer/)
|
t-order
large-import
|
89/5 |
Mathlib/Order/Ideal.lean |
1 |
18 |
['Komyyy', 'bryangingechen', 'github-actions', 'leanprover-radar', 'mathlib-dependent-issues', 'staroperator'] |
Komyyy assignee:Komyyy |
1-18360 1 day ago |
1-18360 1 day ago |
57-5456 57 days |
| 34123 |
staroperator author:staroperator |
feat(Data/Set/Finite): finite distributivity for complete distributive lattices |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
41/0 |
Mathlib/Data/Set/Finite/Lattice.lean |
1 |
13 |
['Komyyy', 'github-actions', 'plp127', 'staroperator'] |
Komyyy assignee:Komyyy |
1-17998 1 day ago |
1-17998 1 day ago |
47-21975 47 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 |
479/0 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/NormDet.lean,docs/references.bib |
3 |
12 |
['copilot-pull-request-reviewer', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'wwylele'] |
j-loreaux assignee:j-loreaux |
1-17202 1 day ago |
1-16940 1 day ago |
15-33910 15 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)$$
- I kept `SimpContFract.determinant_aux`, since it is used downstream in `Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean`.
- The `SimpContFract` version is still available unchanged, so this should avoid breaking existing users of the old API.
- I was not sure whether `(g.s.get? i).elim 0 Pair.a` is the correct or most idiomatic way to represent the partial numerator `aᵢ` in this context. Any feedback on a more canonical formulation would be appreciated.
- The use of `0` as the default partial numerator in `(g.s.get? i).elim 0 Pair.a` allows product formulation that remains valid when the fraction is terminated. |
t-algebra
new-contributor
large-import
label:t-algebra$ |
53/29 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Determinant.lean |
2 |
9 |
['emlis42', 'github-actions', 'vihdzp'] |
nobody |
1-12779 1 day ago |
2-52308 2 days ago |
2-52793 2 days |
| 36840 |
SnirBroshi author:SnirBroshi |
feat(SetTheory/Ordinal/Arithmetic): a few ordinal division lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
27/8 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
1-6962 1 day ago |
28-4494 28 days ago |
28-4482 28 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 |
3 |
['github-actions', 'wwylele'] |
nobody |
1-6960 1 day ago |
52-56870 52 days ago |
52-71364 52 days |
| 34963 |
Parcly-Taxel author:Parcly-Taxel |
feat(Archive): proof of the Robbins conjecture |
Cf. [#mathlib4 > Alternative axiomatization of boolean algebras @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Alternative.20axiomatization.20of.20boolean.20algebras/near/558900960) and #31924. |
t-algebra label:t-algebra$ |
610/0 |
Archive.lean,Archive/Robbins.lean |
2 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
1-6502 1 day ago |
66-85917 66 days ago |
67-1157 67 days |
| 36308 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Subgraph): a couple of `subgraphOfAdj` lemmas |
Also golf a lemma (it's one line longer but it looks simpler to me).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
14/5 |
Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
1 |
4 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
b-mehta assignee:b-mehta |
1-6501 1 day ago |
39-72559 39 days ago |
39-72547 39 days |
| 36626 |
SnirBroshi author:SnirBroshi |
feat(Order/UpperLower/Basic): an injective function constrained by the identity function using a well-order is the identity |
---
(yes I know `IsLowerSet` is bundled but I need the theorems for unbundled relations 🙈)
[](https://gitpod.io/from-referrer/)
|
t-order |
30/0 |
Mathlib/Order/UpperLower/Basic.lean |
1 |
6 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
1-6499 1 day ago |
33-6931 33 days ago |
33-6919 33 days |
| 36682 |
harahu author:harahu |
chore(Data): avoid lazy continuation in md lists |
We replace lazy continuation lines in lists with either:
- indented lines, to signify that the line is indeed a continuation line; or
- a newline, where the continuation line(s) were in fact intended to be disconnected from the list.
We do this because lazy continuation is a markdown footgun that one does well to avoid.
We also standardize indentation such that continuation lines now line up with the first line of the item they're continuing. This seems to be the solution enforced by markdown formatters, e.g. `mdformat`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
18/7 |
Mathlib/Data/Bracket.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/FlagRange.lean,Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Data/Multiset/DershowitzManna.lean,Mathlib/Data/PNat/Xgcd.lean,Mathlib/Data/Part.lean,Mathlib/Data/Stream/Defs.lean |
9 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
1-6499 1 day ago |
31-44401 31 days ago |
31-44389 31 days |
| 37350 |
aditya-ramabadran author:aditya-ramabadran |
feat(Analysis/Distribution): define canonical maps between Schwartz/test functions, distributions/tempered distributions |
Defines these canonical maps: (1) continuous linear map from $\mathcal D$ to $\mathcal S$, and (2) induced (linear) restriction map from $\mathcal S'$ to $\mathcal D'$, as assigned by @ADedecker.
---
Put in a separate file since Distribution.lean only imports TestFunction right now and I thought it was cleaner to do in a new bridge file with both the maps. Open to changing this though.
* Made use of #36445 (proved first map locally on fixed support spaces first by local seminorm estimates, then used limitCLM)
* Needed a real to complex bridge `TestFunction.ToComplexSchwartzMap` since distributions are defined on real-valued test functions but tempered distributions in mathlib are defined on complex-valued Schwartz functions
* Induced map $\mathcal S'(E,F) \to \mathcal D'(Ω,F)$ is $\mathbb C$-linear
The main important defs are `ContDiffMapSupportedIn.toSchwartzMapCLM` which is the local fixed-support part, then `TestFunction.toSchwartzMapCLM` (where the continuity uses limitCLM to glue the local continuous linear maps on each $\mathcal D_K$), and `TemperedDistribution.toDistributionLM` which is the linear map from tempered distributions to ordinary distributions.
Tested with `lake env lean Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean`
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
279/0 |
Mathlib.lean,Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean |
2 |
3 |
['aditya-ramabadran', 'github-actions'] |
j-loreaux assignee:j-loreaux |
1-6497 1 day ago |
14-42428 14 days ago |
14-82811 14 days |
| 37449 |
dagurtomas author:dagurtomas |
feat(Condensed): the free light condensed module on `ℕ∪∞` is internally projective |
From [LeanCondensed](https://github.com/dagurtomas/LeanCondensed)
Co-authored by: @jonasvanderschaaf
---
- [x] depends on: #37451
- [x] depends on: #37452
- [x] depends on: #37453
- [x] depends on: #37454
[](https://gitpod.io/from-referrer/)
|
t-condensed |
363/0 |
Mathlib.lean,Mathlib/Condensed/Light/Sequence.lean,Mathlib/Topology/Category/LightProfinite/Sequence.lean |
3 |
12 |
['dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib-splicebot'] |
riccardobrasca assignee:riccardobrasca |
1-6496 1 day ago |
2-83326 2 days ago |
3-4237 3 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'] |
TwoFX assignee:TwoFX |
1-6495 1 day ago |
14-22083 14 days ago |
14-22071 14 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'] |
TwoFX assignee:TwoFX |
1-6494 1 day ago |
13-60157 13 days ago |
13-60145 13 days |
| 37540 |
quantumsnow author:quantumsnow |
feat(CategoryTheory/MorphismProperty/Comma): add MorphismProperty.Arrow |
This is needed for the category of topological pairs (#36621).
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
maintainer-merge
|
109/8 |
Mathlib/CategoryTheory/MorphismProperty/Comma.lean |
1 |
20 |
['chrisflav', 'github-actions', 'joelriou', 'quantumsnow'] |
robin-carlier assignee:robin-carlier |
1-6493 1 day ago |
1-59531 1 day ago |
1-66928 1 day |
| 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'] |
bryangingechen assignee:bryangingechen |
1-6493 1 day ago |
9-9872 9 days ago |
9-10353 9 days |
| 37808 |
JovanGerb author:JovanGerb |
feat(Translate): locally modify name guessing dictionaries |
This PR adds the feature to `to_dual` and `to_additive` that you can now locally modify the name translation dictionary.
With this change, we run the risk of having the automated translations being harder to predict. For this reason, the changes to the dictionary do not persisted through imports. Instead, the change lasts until the end of the file (though it ignores sections).
See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Order.20dual.20tactic/near/580834166
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
111/39 |
Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/GaloisConnection/Defs.lean,Mathlib/Order/Interval/Set/Basic.lean,Mathlib/Order/Interval/Set/Disjoint.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/GuessName.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Tactic/Translate/ToDual.lean,MathlibTest/ToDual.lean |
9 |
3 |
['JovanGerb', 'bryangingechen', 'github-actions'] |
kim-em assignee:kim-em |
1-6492 1 day ago |
3-46479 3 days ago |
3-53701 3 days |
| 37926 |
e-271828 author:e-271828 |
feat(Analysis/Analytic): add AnalyticAt properties for iterated dslope |
This PR adds three fundamental lemmas in the `AnalyticAt` namespace to establish the analyticity of the (iterated) `dslope` function:
* `AnalyticAt.dslope_of_ne`
* `AnalyticAt.iterate_dslope_of_ne`
* `AnalyticAt.iterate_dslope` (at the singularity, using `has_fpower_series_iterate_dslope_fslope`)
These properties are crucial for factoring out removable singularities iteratively while preserving analyticity.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
29/0 |
Mathlib/Analysis/Analytic/IsolatedZeros.lean |
1 |
6 |
['e-271828', 'github-actions', 'wwylele'] |
j-loreaux assignee:j-loreaux |
1-6491 1 day ago |
4-60470 4 days ago |
4-60458 4 days |
| 37985 |
Raph-DG author:Raph-DG |
feat(Topology): intersections preserve Notherian-ness and Quasisober-ness |
In this PR we prove some basic topology lemmas about the preservation of noetherianness and quasisoberness under intersections.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
39/0 |
Mathlib/Topology/Constructions.lean,Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Sober.lean |
3 |
5 |
['Raph-DG', 'github-actions', 'grunweg', 'vihdzp'] |
PatrickMassot assignee:PatrickMassot |
1-6490 1 day ago |
2-50293 2 days ago |
2-60106 2 days |
| 35846 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): adic completeness for `MvPowerSeries` |
This PR continues the work in #35670 and #35707 by adding typeclass instances for the completeness of `MvPowerSeries` when the index type is finite.
---
- [x] depends on: #35789
- [x] depends on: #35707
- [x] depends on: #35670
- [x] depends on: #35597
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
large-import
|
25/0 |
Mathlib/RingTheory/AdicCompletion/Completeness.lean |
1 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-83776 23 hours ago |
5-63447 5 days ago |
5-63539 5 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'] |
nobody |
0-81678 22 hours ago |
0-81742 22 hours ago |
0-82891 23 hours |
| 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.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
117/2 |
Mathlib.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/UFD.lean,Mathlib/RingTheory/Localization/Away/Basic.lean |
4 |
2 |
['github-actions', 'tb65536'] |
mattrobball assignee:mattrobball |
0-80226 22 hours ago |
15-38298 15 days ago |
30-36155 30 days |
| 36951 |
mbkybky author:mbkybky |
feat(Algebra/Module): define stably free modules |
We define stably free modules: a module `M` over a commutative ring `R` is called stably free if there exists a finite free module `N` over `R` such that `M ⊕ N` is free.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
67/0 |
Mathlib.lean,Mathlib/Algebra/Module/StablyFree/Basic.lean |
2 |
6 |
['dagurtomas', 'github-actions', 'mbkybky'] |
dagurtomas assignee:dagurtomas |
0-80202 22 hours ago |
5-55624 5 days ago |
24-26712 24 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 |
72/2 |
Mathlib/Algebra/Homology/ExactSequence.lean,Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean,Mathlib/CategoryTheory/ComposableArrows/Basic.lean |
3 |
5 |
['Brian-Nugent', 'erdOne', 'github-actions'] |
adamtopaz assignee:adamtopaz |
0-80052 22 hours ago |
0-80052 22 hours ago |
14-44885 14 days |
| 31219 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): lemma about `IsBaseChange` under exact sequence |
In this lemma, we proved cokernel preserve `IsBaseChange S` and kernel preserve `IsBaseChange S` when `S` is flat.
Co-authored-by: Wang Jingting
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
171/0 |
Mathlib.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangeRightExact.lean |
4 |
22 |
['Thmoas-Guan', 'chrisflav', 'erdOne', 'github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'urkud'] |
joelriou assignee:joelriou |
0-74549 20 hours ago |
1-50299 1 day ago |
33-53683 33 days |
| 31644 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): projective dimension of quotient regular sequence |
In this PR, we proved that for finitely generated module over Noetherian local ring, quotient by regular sequence increase the projective dimension by exactly its length.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
190/0 |
Mathlib.lean,Mathlib/RingTheory/Regular/ProjectiveDimension.lean |
2 |
28 |
['Thmoas-Guan', 'erdOne', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
0-74420 20 hours ago |
9-40717 9 days ago |
13-71412 13 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
|
175/5 |
Mathlib/RingTheory/AdicCompletion/LocalRing.lean |
1 |
11 |
['BryceT233', 'Thmoas-Guan', 'github-actions'] |
nobody |
0-73402 20 hours ago |
2-60540 2 days ago |
2-72322 2 days |
| 37934 |
Thmoas-Guan author:Thmoas-Guan |
feat(FieldTheory): definition of transcendental separable field extension |
In this PR, we intriduced the concept of separably generated field extension and transcendental separable field extension.
Further properties would be in #37838
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
69/0 |
Mathlib.lean,Mathlib/FieldTheory/TranscendentalSeparable.lean |
2 |
1 |
['github-actions'] |
nobody |
0-73238 20 hours ago |
2-79091 2 days ago |
2-79823 2 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 |
224/8 |
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 |
10 |
['WenrongZou', 'eric-wieser', 'github-actions'] |
nobody |
0-73194 20 hours ago |
1-17528 1 day ago |
1-18069 1 day |
| 37645 |
joelriou author:joelriou |
feat(CategoryTheory/Limits): `sigmaConst` preserves colimits |
More precisely `sigmaConst.obj R` commutes with colimits. We also compute the cokernel of `(sigmaConst.obj R).map f` when `f` is a map in `Type*`.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
143/49 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean,Mathlib/CategoryTheory/Limits/Preserves/SigmaConst.lean |
3 |
8 |
['dagurtomas', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
0-72903 20 hours ago |
0-72925 20 hours ago |
10-31873 10 days |
| 29434 |
ntapiam author:ntapiam |
feat(NonAssoc/LieAdmissible): prove every ring/algebra is LieAdmissible |
-awaiting-author |
t-algebra
new-contributor
label:t-algebra$ |
32/6 |
Mathlib/Algebra/NonAssoc/LieAdmissible/Defs.lean |
1 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
nobody |
0-70036 19 hours ago |
0-70097 19 hours ago |
0-71179 19 hours |
| 38058 |
nielstron author:nielstron |
doc(Computability): fix typo in TM Config description |
Corrects minor grammatical error in comments.
---
[](https://gitpod.io/from-referrer/)
|
t-computability
new-contributor
maintainer-merge
|
3/3 |
Mathlib/Computability/TuringMachine/Config.lean |
1 |
6 |
['github-actions', 'grunweg', 'nielstron'] |
nobody |
0-69943 19 hours ago |
0-70661 19 hours ago |
0-71605 19 hours |
| 37418 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): introduce `Multiseries.Sorted` |
* Introduce `Multiseries.leadingExp` - the leading exponent of a multiseries, along with a few structural lemmas.
* Introduce `Multiseries.Sorted` predicate stating that exponents in a multiseries as a list are strictly decreasing.
* Provide constructors (`nil`, `cons`), a coinductive principle, and basic constructions for `Sorted`.
---
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-meta |
201/0 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean |
1 |
29 |
['github-actions', 'joneugster', 'mathlib-merge-conflicts', 'vasnesterov'] |
joneugster assignee:joneugster |
0-69875 19 hours ago |
0-70549 19 hours ago |
15-18016 15 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 |
204/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 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-67165 18 hours ago |
0-67219 18 hours ago |
6-82778 6 days |
| 37806 |
Raph-DG author:Raph-DG |
chore(Topology): rename `Function.locallyFinsupp` to `Function.LocallyFinsupp` |
And move single from `LocallyFinSuppWithin` to `LocallyFinsupp`.
---
[](https://gitpod.io/from-referrer/)
|
|
343/146 |
Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean,Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean,Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean,Mathlib/Analysis/Meromorphic/Divisor.lean,Mathlib/Analysis/Meromorphic/FactorizedRational.lean,Mathlib/Analysis/Meromorphic/NormalForm.lean,Mathlib/Topology/LocallyFinsupp.lean |
8 |
6 |
['Raph-DG', 'chrisflav', 'github-actions', 'jcommelin'] |
nobody |
0-66837 18 hours ago |
0-66885 18 hours ago |
3-81285 3 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 |
104/0 |
Mathlib/Order/Hom/Basic.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/Minimal.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Sober.lean |
5 |
1 |
['github-actions'] |
nobody |
0-65797 18 hours ago |
0-65865 18 hours ago |
0-69175 19 hours |
| 37696 |
loefflerd author:loefflerd |
refactor(OnePoint/ProjectiveLine): use Pi instead of Prod |
At the moment `OnePoint.equivProjectivization` identifies the one-point compactification of `K` with the projective space on `K x K`. This is slightly inconvenient since most of mathlib's linear algebra prefers `Fin n → K`. This PR uses the Pi type instead of the product. This is preparatory to adding more material about fixed points of Moebius transformations, etc, in future PR's.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
35/36 |
Mathlib/Topology/Compactification/OnePoint/ProjectiveLine.lean |
1 |
3 |
['bjoernkjoshanssen', 'github-actions', 'loefflerd'] |
dagurtomas assignee:dagurtomas |
0-60739 16 hours ago |
9-45825 9 days ago |
9-45813 9 days |
| 27493 |
themathqueen author:themathqueen |
feat(RingTheory/Coalgebra): define Frobenius algebra |
A Frobenius algebra `A` has the structure of both an algebra and a coalgebra such that:
`(mul ⊗ id) ∘ assoc.symm ∘ (id ⊗ comul) = comul ∘ mul = (id ⊗ mul) ∘ assoc ∘ (comul ⊗ id)`.
In diagrams this law looks like:

It suffices to show that
`(mul ⊗ id) ∘ assoc.symm ∘ (id ⊗ comul) = (id ⊗ mul) ∘ assoc ∘ (comul ⊗ id)`.
---
- [x] depends on: #27567
- [x] depends on: #27569
- [x] depends on: #32245
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
114/0 |
Mathlib.lean,Mathlib/RingTheory/FrobeniusAlgebra/Basic.lean |
2 |
25 |
['YaelDillies', 'erdOne', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'themathqueen'] |
alreadydone assignee:alreadydone |
0-59771 16 hours ago |
4-52264 4 days ago |
32-83555 32 days |
| 37602 |
loefflerd author:loefflerd |
feat(NumberTheory/ModularForms): arithmetic subgroups act properly discontinuously |
Arithmetic subgroups (subgroups of GL(2, R) commensurable with SL(2, Z)) act properly discontinuously on the upper half-plane.
---
- [ ] depends on: #37601
|
t-topology
large-import
|
128/6 |
Mathlib.lean,Mathlib/Analysis/Complex/UpperHalfPlane/ProperAction.lean,Mathlib/NumberTheory/ModularForms/ArithmeticSubgroups.lean,Mathlib/Topology/Algebra/Group/DiscontinuousSubgroup.lean |
4 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-57690 16 hours ago |
0-62009 17 hours ago |
0-63361 17 hours |
| 35906 |
scp020 author:scp020 |
feat(Combinatorics/SimpleGraph/Walk): chords of walks |
Define `Walk.IsChord` and `Walk.IsChordless` predicates in a new file `SimpleGraph/Walk/Chord.lean`.
See "chord" in https://en.wikipedia.org/wiki/Glossary_of_graph_theory
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Walk.2EIsChordless.20live.20in.20mathlib.3F/with/575277309)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
maintainer-merge
|
59/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Chord.lean |
2 |
68 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'scp020'] |
YaelDillies assignee:YaelDillies |
0-55535 15 hours ago |
11-4791 11 days ago |
35-81044 35 days |
| 36201 |
themathqueen author:themathqueen |
feat(Analysis/CStarAlgebra): set of star projections equals the extreme points of the nonnegative closed unit ball |
An element in a non-unital C⋆-algebra is a projection iff it is an extreme point of the nonnegative closed unit ball. This is from 1.6.2 in Sakai's C⋆-algebras and W⋆-algebras (the proof is different though).
Co-authored-by: Jon Bannon <59937998+JonBannon@users.noreply.github.com>
---
- [x] depends on: #35997
[](https://gitpod.io/from-referrer/)
|
t-analysis |
103/0 |
Mathlib.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/Analysis/CStarAlgebra/Extreme.lean,docs/references.bib |
4 |
13 |
['github-actions', 'j-loreaux', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'themathqueen'] |
mcdoll assignee:mcdoll |
0-54172 15 hours ago |
6-14190 6 days ago |
35-43256 35 days |
| 37908 |
WenrongZou author:WenrongZou |
feat(LocalField): add an instance `IsAdicComplete 𝓂[K] 𝒪[K]` |
In this PR, I add an instance `IsAdicComplete 𝓂[K] 𝒪[K]`.
Deletions: proof_wanted: isAdicComplete.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
31/2 |
Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/NumberTheory/LocalField/Basic.lean |
2 |
17 |
['WenrongZou', 'github-actions', 'tb65536'] |
tb65536 assignee:tb65536 |
0-53258 14 hours ago |
0-53315 14 hours ago |
5-7296 5 days |
| 38060 |
vihdzp author:vihdzp |
doc(Algebra/Order/SuccPred): remove outdated TODO |
Both of these lemmas were made `simp` a while ago.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-algebra
t-order
easy
label:t-algebra$ |
1/7 |
Mathlib/Algebra/Order/SuccPred.lean |
1 |
2 |
['github-actions', 'plp127'] |
nobody |
0-51388 14 hours ago |
0-60569 16 hours ago |
0-60615 16 hours |
| 38064 |
JovanGerb author:JovanGerb |
feat(CategoryTheory/CommSq): use `to_dual` |
This PR uses `to_dual` on `CommSq`. There are two possible ways to dualize `CommSq`, due to its inherent symmetry. I picked to option that is consistent with `CommSq.op` and which allows dualizing `LiftStruct` to itself.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
43/17 |
Mathlib/CategoryTheory/CommSq.lean |
1 |
1 |
['github-actions'] |
nobody |
0-50932 14 hours ago |
0-50988 14 hours ago |
0-52758 14 hours |
| 37355 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): refactor `smulShortComplex` |
Use `LinearMap.lsmul` for the `f` of `ModuleCat.smulShortComplex`, also providing new APIs for it.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
20/21 |
Mathlib/RingTheory/Regular/Category.lean |
1 |
16 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'robin-carlier'] |
chrisflav assignee:chrisflav |
0-49988 13 hours ago |
1-78739 1 day ago |
16-35414 16 days |
| 32058 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): category version Baer criterion |
In this PR, we added the cateory version of Baer criterion stating that `M` is injective iff `Ext^1(R/I, M)` vanish for all ideal `I`.
---
- [x] depends on: #36980
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
139/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Baer.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean |
3 |
33 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
0-49803 13 hours ago |
5-70842 5 days ago |
24-1530 24 days |
| 38029 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): lemmas 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 |
74/59 |
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 |
6 |
3 |
['Thmoas-Guan', 'github-actions', 'themathqueen'] |
nobody |
0-49661 13 hours ago |
1-70151 1 day ago |
1-70139 1 day |
| 28684 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): definition of regular ring |
In this PR, we define regular ring as every localization is regular local ring, and proved polynomial over regular ring is regular.
---
- [x] depends on: #28682
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
59/1 |
Mathlib/RingTheory/RegularLocalRing/Defs.lean |
1 |
39 |
['Thmoas-Guan', 'artie2000', 'erdOne', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
0-49150 13 hours ago |
9-85404 9 days ago |
14-25805 14 days |
| 38069 |
grunweg author:grunweg |
doc(Tactic/StacksAttribute): fix outdated doc-string |
---
[](https://gitpod.io/from-referrer/)
|
documentation
easy
t-meta
|
2/1 |
Mathlib/Tactic/StacksAttribute.lean |
1 |
1 |
['github-actions'] |
nobody |
0-48028 13 hours ago |
0-48108 13 hours ago |
0-48096 13 hours |
| 38068 |
mbkybky author:mbkybky |
doc(RingTheory/MvPowerSeries): fix typos in module docstrings |
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-ring-theory
easy
|
5/5 |
Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean,Mathlib/RingTheory/MvPowerSeries/LexOrder.lean |
2 |
1 |
['github-actions'] |
nobody |
0-47384 13 hours ago |
0-48214 13 hours ago |
0-48202 13 hours |
| 38028 |
Thmoas-Guan author:Thmoas-Guan |
chore(RingTheory/Regular): rename file |
Rename `RingTheory.Regular.Depth` into `RingTheory.Regular.LinearMap`
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
113/102 |
Mathlib.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/LinearMap.lean |
3 |
8 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-45927 12 hours ago |
0-45927 12 hours ago |
1-61016 1 day |
| 38067 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet): the subdivision functor |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
214/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Nerve.lean,Mathlib/AlgebraicTopology/SimplicialSet/Subdivision.lean,Mathlib/Order/Category/PartOrd.lean,Mathlib/Order/NonemptyFiniteChains.lean,docs/references.bib |
7 |
1 |
['github-actions'] |
nobody |
0-45741 12 hours ago |
0-45796 12 hours ago |
0-46029 12 hours |
| 28462 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet): the relative cell complex attached to a rank function for a pairing |
This PR gives one of the main results in the combinatorial approach to (strong) anodyne extensions by Sean Moss, *Another approach to the Kan-Quillen model structure*.
For a suitable combinatorial data for a subcomplex `A` of a simplicial set `X` (a proper pairing `P` of `A`), it was previously shown that if the ancestrality relation for this pairing `P` is well founded, then there exists a rank function for the pairing #28351. In this PR, we assume that we have such a rank function, and we show that the inclusion of `A` in `X` is a relative cell complex w.r.t. horn inclusions, i.e. it is a transfinite composition of pushouts of coproducts of horn inclusions. The API allows to keep track of which horns were used, so that this theory can be used in order to study anodyne extensions #37321 as well as inner anodyne extensions #37869. In future PRs, pairings for specific subcomplexes of certain simplicial sets shall be constructed, and this will allow the study of stabiliity properties of anodyne extensions (with respect to binary products and with respect to the subdivision functor), and by adjunction, we shall be able to deduce results regarding Kan fibrations of simplicial sets.
From https://github.com/joelriou/topcat-model-category
---
Some `erw` were added in https://github.com/leanprover-community/mathlib4/pull/28462/changes/72615578b6f671436f9c58a77a97190e671f9584 following the refactor of the category of types #36613. I do not see how to remove them cleanly.
- [x] depends on: #37333
- [x] depends on: #37668
- [x] depends on: #37334
- [x] depends on: #37332
- [x] depends on: #37335
- [x] depends on: #32515
- [x] depends on: #32517
- [x] depends on: #32178
- [x] depends on: #32180
- [x] depends on: #31122
- [x] depends on: #28351
- [x] depends on: #28346
- [x] depends on: #28336
- [x] depends on: #28332
- [x] depends on: #28330
- [x] depends on: #28224
- [x] depends on: #27968
- [x] depends on: #28034
- [x] depends on: #26076
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
644/0 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/IsUniquelyCodimOneFace.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Pairing.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/RelativeCellComplex.lean,Mathlib/CategoryTheory/Limits/Types/Coproducts.lean |
5 |
13 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
0-45693 12 hours ago |
0-66629 18 hours ago |
0-66618 18 hours |
| 37628 |
JadAbouHawili author:JadAbouHawili |
chore: Rename Xor' to Xor |
Rename `Xor'` to `Xor` per the comment which recommended doing so after `v4.25.0-rc1`
Moves:
- Xor' --> Xor
[#new members > Why Xor' and not Xor? Why `Or` and not `OrOp` for `Prop`? @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Why.20Xor.27.20and.20not.20Xor.3F.20Why.20.60Or.60.20and.20not.20.60OrOp.60.20for.20.60Prop.60.3F/near/583510533)
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
75/66 |
Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/Ring/Int/Parity.lean,Mathlib/Algebra/Ring/Parity.lean,Mathlib/Data/Bool/Basic.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Set/Disjoint.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/GroupTheory/Index.lean,Mathlib/Logic/Basic.lean,Mathlib/NumberTheory/RatFunc/Ostrowski.lean,Mathlib/Order/SymmDiff.lean,Mathlib/Tactic/ITauto.lean,Mathlib/Topology/Algebra/Order/Archimedean.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Instances/AddCircle/DenseSubgroup.lean,Mathlib/Topology/Separation/Basic.lean,Mathlib/Topology/Separation/Profinite.lean,MathlibTest/itauto.lean |
18 |
20 |
['JadAbouHawili', 'Ruben-VandeVelde', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-merge-conflicts'] |
nobody |
0-45168 12 hours ago |
0-51964 14 hours ago |
10-85421 10 days |
| 38074 |
WilliamCoram author:WilliamCoram |
refactor: PowerSeries.gaussNorm |
We refactor the definition of the gauss norm on power series to an abbrev of the gauss norm on multivariate power series, and remove the use of `Funlike`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
large-import
|
86/50 |
Mathlib/RingTheory/Polynomial/GaussNorm.lean,Mathlib/RingTheory/PowerSeries/GaussNorm.lean |
2 |
2 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
0-43977 12 hours ago |
0-44044 12 hours ago |
0-45059 12 hours |
| 38041 |
yuanyi-350 author:yuanyi-350 |
chore(Analysis): golf Order, Asymptotic, and Between |
This PR extracts from #37968 the changes to the following files:
- `Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean`
- `Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean`
- `Mathlib/Analysis/Convex/Between.lean`
This is intended to split those refactors into a standalone PR. |
t-analysis |
13/68 |
Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean,Mathlib/Analysis/Convex/Between.lean |
2 |
3 |
['github-actions', 'themathqueen', 'yuanyi-350'] |
ADedecker assignee:ADedecker |
0-43503 12 hours ago |
1-44989 1 day ago |
1-44977 1 day |
| 38033 |
JadAbouHawili author:JadAbouHawili |
feat(Data/Set): add `subsingleton_iff_eq_empty_or_singleton` |
---
proof needs to be golfed, got lost in the api so any feedback/review is appreciated
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-data
easy
maintainer-merge
|
3/0 |
Mathlib/Data/Set/Subsingleton.lean |
1 |
11 |
['JadAbouHawili', 'github-actions', 'themathqueen', 'vihdzp'] |
nobody |
0-41963 11 hours ago |
0-52059 14 hours ago |
1-53141 1 day |
| 37878 |
YaelDillies author:YaelDillies |
chore(Combinatorics/SimpleGraph): avoid structure relation predicates |
Relation predicates used to be `def`s over a `forall`, which was optimal for usability in fields of other structures. This changed in #35591 and #35192 as a byproduct of reducing apparent code duplication. Unfortunately, the usability issue was overlooked.
This PR restores usability by dropping the use of those relation classes that are `structure`s, ie `Std.Irrefl` and `Std.Transitive`. It also uses more widely the `simp` auto-param on `SimpleGraph.loopless`.
---
I would also be happy to revert #35591 and #35192 since this demonstrates a good use case for the `def` versions of the relation predicates.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
42/52 |
Archive/Wiedijk100Theorems/Konigsberg.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/Maps.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/Trails.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/ModelTheory/Graph.lean,Mathlib/Order/Cover.lean,Mathlib/Order/RelClasses.lean |
19 |
7 |
['SnirBroshi', 'Vierkantor', 'YaelDillies', 'github-actions'] |
nobody |
0-40711 11 hours ago |
5-66432 5 days ago |
5-69502 5 days |
| 37552 |
pitmonticone author:pitmonticone |
feat(MeasureTheory/BorelSpace): add `measurable_iSup_of_lowerSemicontinuous` |
Add `measurable_biSup_of_continuousOn`: the supremum of a family of measurable functions parameterized by a separable pseudometric space is measurable, provided the family is continuous on the parameter set.
Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project.
Co-authored-by: Jeremy Tan Jie Rui
--- |
carleson
t-measure-probability
|
25/0 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean |
1 |
9 |
['CoolRmal', 'github-actions', 'grunweg', 'pitmonticone'] |
kex-y assignee:kex-y |
0-40306 11 hours ago |
12-52928 12 days ago |
13-35273 13 days |
| 38076 |
yuanyi-350 author:yuanyi-350 |
refactor: golf `Analytic/IteratedFDeriv`, `SpecialFunctions/` |
This PR ports the changes from #37968 restricted to the following files:
- `Mathlib/Analysis/Analytic/IteratedFDeriv.lean`
- `Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean`
- `Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean`
Only these selected file changes are included. |
t-analysis |
5/29 |
Mathlib/Analysis/Analytic/IteratedFDeriv.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean |
3 |
3 |
['github-actions', 'themathqueen'] |
nobody |
0-39836 11 hours ago |
0-40412 11 hours ago |
0-40863 11 hours |
| 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`
* `PointedCone.hull_le_span` as a short form of `Submodule.span_le_restrictScalars R≥0 R s`
In preparation for #36605.
Co-authored by: Artie Khovanov
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry |
20/12 |
Mathlib/Geometry/Convex/Cone/Pointed.lean |
1 |
14 |
['artie2000', 'github-actions', 'martinwintermath', 'mathlib-merge-conflicts', 'ooovi'] |
nobody |
0-39067 10 hours ago |
0-40059 11 hours ago |
13-83134 13 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 |
39 |
['CBirkbeck', 'adamtopaz', 'chrisflav', 'dagurtomas', 'faenuccio', 'github-actions', 'jjdishere', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
0-39046 10 hours ago |
1-53719 1 day ago |
1-53860 1 day |
| 38078 |
yuanyi-350 author:yuanyi-350 |
refactor: golf `ValueDistribution/LogCounting/Asymptotic` `ConstantSpeed` `Analytic/Within` |
This PR selectively ports file-level changes from #37968.
Included files:
- `Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean`
- `Mathlib/Analysis/ConstantSpeed.lean`
- `Mathlib/Analysis/Analytic/Within.lean`
Only these file changes are included.
No build or compile check was run intentionally. |
t-analysis |
32/73 |
Mathlib/Analysis/Analytic/Within.lean,Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean,Mathlib/Analysis/ConstantSpeed.lean |
3 |
2 |
['github-actions', 'yuanyi-350'] |
nobody |
0-37741 10 hours ago |
0-40000 11 hours ago |
0-39988 11 hours |
| 38075 |
yuanyi-350 author:yuanyi-350 |
refactor: golf `CStarAlgebra/Unitization`, `Complex/Trigonometric`, `Asymptotics/SpecificAsymptotics` |
This PR extracts three file-level refactors from #37968 into a standalone branch:
- `Mathlib/Analysis/CStarAlgebra/Unitization.lean`
- `Mathlib/Analysis/Complex/Trigonometric.lean`
- `Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean`
The goal is to make these simplifications reviewable independently of the larger batch PR. |
t-analysis |
4/18 |
Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Complex/Trigonometric.lean |
2 |
7 |
['github-actions', 'leanprover-radar', 'themathqueen', 'yuanyi-350'] |
nobody |
0-37289 10 hours ago |
0-41209 11 hours ago |
0-41197 11 hours |
| 37915 |
Jun2M author:Jun2M |
feat(Topology/CWComplex): 1-skeleton `Graph` of `CWComplex` |
This PR introduces `CWComplex.OneSkeletonGraph`, a graph with 0-dim cells as vertices and 1-dim cells as edges.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
136/1 |
Mathlib.lean,Mathlib/Topology/CWComplex/Classical/Basic.lean,Mathlib/Topology/CWComplex/Classical/Graph.lean |
3 |
16 |
['Jun2M', 'github-actions', 'jcommelin', 'scholzhannah'] |
jcommelin assignee:jcommelin |
0-36342 10 hours ago |
2-39779 2 days ago |
4-72398 4 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 |
1 |
['github-actions'] |
nobody |
0-36149 10 hours ago |
5-27315 5 days ago |
5-28033 5 days |
| 37674 |
gasparattila author:gasparattila |
feat(Topology/Sets): separation properties of `(Nonempty)Compacts` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
79/0 |
Mathlib/Topology/Separation/Basic.lean,Mathlib/Topology/Sets/VietorisTopology.lean |
2 |
12 |
['gasparattila', 'github-actions', 'mathlib-merge-conflicts', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
0-35768 9 hours ago |
0-35793 9 hours ago |
8-82258 8 days |
| 38082 |
tb65536 author:tb65536 |
feat(RingTheory/Ideal/Over): an ideal lying under a prime is prime |
This PR adds a missing API lemma for `Ideal.LiesOver`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
5/1 |
Mathlib/NumberTheory/RamificationInertia/Ramification.lean,Mathlib/RingTheory/Ideal/Over.lean |
2 |
1 |
['github-actions'] |
nobody |
0-35650 9 hours ago |
0-35650 9 hours ago |
0-35639 9 hours |
| 36219 |
gasparattila author:gasparattila |
chore(Order/SupClosed): use `to_dual` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
66/215 |
Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/SupClosed.lean |
2 |
6 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-35036 9 hours ago |
0-35094 9 hours ago |
4-39293 4 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.
---
- [ ] depends on: #30436
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
427/1 |
Mathlib.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml |
4 |
43 |
['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib4-dependent-issues-bot', 'tb65536', 'urkud', 'vihdzp', 'wwylele'] |
chrisflav assignee:chrisflav |
0-34533 9 hours ago |
63-44917 63 days ago |
109-70925 109 days |
| 38085 |
dagurtomas author:dagurtomas |
feat(CategoryTheory): define profunctors |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
151/0 |
Mathlib.lean,Mathlib/CategoryTheory/Profunctor/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
0-34529 9 hours ago |
0-34572 9 hours ago |
0-34630 9 hours |
| 38027 |
8e7 author:8e7 |
feat(Combinatorics/SimpleGraph/StarGraph): 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.
---
All lemmas are hand written first, then golfed with the help of Claude Code.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
92/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/StarGraph.lean |
2 |
35 |
['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
0-34459 9 hours ago |
1-2299 1 day ago |
1-83250 1 day |
| 38083 |
tb65536 author:tb65536 |
feat(RingTheory/DiscreteValuationRing/Basic): compute the length of the quotient of a DVR |
This PR computes the length of the quotient of a DVR by constructing an order isomorphism between the ideals and the order dual of `ENat`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
large-import
label:t-algebra$ |
43/0 |
Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean |
2 |
1 |
['github-actions'] |
nobody |
0-34221 9 hours ago |
0-34221 9 hours ago |
0-34210 9 hours |
| 38084 |
chrisflav author:chrisflav |
chore(RingTheory/Localization): rename and generalize `IsLocalization.at_units` |
We also move it from `Localization.Defs` to `Localization.Basic`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
31/13 |
Mathlib/Algebra/Algebra/Basic.lean,Mathlib/RingTheory/LocalProperties/Basic.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean,Mathlib/RingTheory/Localization/FractionRing.lean |
5 |
1 |
['github-actions'] |
nobody |
0-34101 9 hours ago |
0-34154 9 hours ago |
0-34348 9 hours |
| 37414 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): predicates for `UnitMonomial` |
Introduce `FirstNonzeroIsPos`, `FirstNonzeroIsNeg` and `AllZero` predicates on lists of real numbers.
When applied to a list of exponents of a monomial in a well-formed basis, this trichotomy
determines its asymptotic behaviour: `FirstNonzeroIsPos` means it tends to infinity,
`FirstNonzeroIsNeg` means it tends to zero and `AllZero` means it tends to a constant.
---
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/) |
t-meta |
148/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Monomial/Predicates.lean |
3 |
15 |
['WilliamCoram', 'github-actions', 'j-loreaux', 'joneugster', 'vasnesterov'] |
joneugster assignee:joneugster |
0-33818 9 hours ago |
0-34571 9 hours ago |
14-13517 14 days |
| 38081 |
tb65536 author:tb65536 |
feat(LinearAlgebra/Dimension/StrongRankCondition): `algebraMap` bijective implies rank one |
This PR proves that if `algebraMap R S` is bijective, then `S` has rank one as an `R`-algebra.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
maintainer-merge
label:t-algebra$ |
18/0 |
Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean |
1 |
8 |
['github-actions', 'tb65536', 'themathqueen'] |
nobody |
0-33006 9 hours ago |
0-32835 9 hours ago |
0-35665 9 hours |
| 26345 |
mans0954 author:mans0954 |
feat(Analysis/LocallyConvex/Polar): Bipolar theorem |
The bipolar theorem states that the polar of the polar of a set `s` is equal to the closed absolutely convex hull of `s`.
The argument here follows Conway, Chapter V. 1.8.
This PR continues the work from #20843.
Original PR: https://github.com/leanprover-community/mathlib4/pull/20843
- [x] depends on: #27316 |
t-analysis |
171/6 |
Mathlib.lean,Mathlib/Analysis/LocallyConvex/AbsConvex.lean,Mathlib/Analysis/LocallyConvex/Bipolar.lean,Mathlib/Analysis/LocallyConvex/Polar.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Topology/Algebra/Module/Spaces/WeakBilin.lean |
6 |
122 |
['JonBannon', 'eric-wieser', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'leanprover-community-bot-assistant', 'mans0954', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mcdoll', 'themathqueen', 'vihdzp'] |
faenuccio and j-loreaux assignee:j-loreaux assignee:faenuccio |
0-30589 8 hours ago |
0-30622 8 hours ago |
17-72374 17 days |
| 37998 |
chrisflav author:chrisflav |
chore(RingTheory): `Module.Flat` is invariant under `ULift` |
From Proetale.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
126/3 |
Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Flat/Stability.lean,Mathlib/RingTheory/RingHom/Flat.lean,Mathlib/RingTheory/TensorProduct/Maps.lean |
4 |
13 |
['chrisflav', 'erdOne', 'eric-wieser', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
0-30234 8 hours ago |
2-51193 2 days ago |
2-51181 2 days |
| 37643 |
dupuisf author:dupuisf |
feat(CStarAlgebra): `x ↦ x ^ p` is operator concave for `p ∈ [0, 1]` |
This PR shows that `x ↦ x ^ p` is operator concave (i.e. `CFC.nnrpow` is concave) on positive elements of a C*-algebra for `p ∈ [0, 1]`.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
192/12 |
Mathlib/Algebra/Algebra/Unitization.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Order.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/RingInverseOrder.lean |
8 |
9 |
['dupuisf', 'github-actions', 'j-loreaux'] |
j-loreaux assignee:j-loreaux |
0-29158 8 hours ago |
0-29158 8 hours ago |
9-48541 9 days |
| 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 |
3 |
['github-actions', 'kbuzzard', 'leanprover-radar'] |
nobody |
0-27838 7 hours ago |
0-27869 7 hours ago |
0-27873 7 hours |
| 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 |
0-24837 6 hours ago |
0-42494 11 hours ago |
0-42920 11 hours |
| 36104 |
LarsenClose author:LarsenClose |
feat(CategoryTheory/Endofunctor/Algebra): add Adámek's initial algebra theorem |
Adds Adámek's initial algebra theorem for endofunctors on categories
with an initial object. Given `F : C ⥤ C` where `C` has an initial
object, if the initial chain `⊥ → F(⊥) → F²(⊥) → ⋯` has a colimit
preserved by `F`, then `F` has an initial algebra whose structure map
is an isomorphism.
New files:
- `InitialChain.lean`: defines `iterateObj F n`, `iterateMap F n`,
and `initialChain F : ℕ ⥤ C` via `Functor.ofSequence`.
- `ChainShift.lean`: constructs `shiftCocone` and `extendCocone`,
proves `shiftCoconeIsColimit` (shifted cocone inherits colimit).
- `Adamek.lean`: main result. Constructs the initial `F`-algebra
`adamek F c hc` and proves `adamek_isInitial`. Convenience API:
`adamekFromInitial`, `adamekStructureIso`, `adamekFixedPoint`.
0 sorry. References Adámek 1974.
### AI disclosure
Developed with assistance from Claude (Anthropic). AI was used for proof
exploration, convention checking, and PR preparation. All mathematical
content and proof strategy reviewed and understood by the author. |
t-category-theory
new-contributor
LLM-generated
|
462/0 |
Mathlib.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/Adamek.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/ChainShift.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/InitialChain.lean,docs/references.bib |
5 |
28 |
['LarsenClose', 'dagurtomas', 'euprunin', 'github-actions', 'grunweg', 'joelriou'] |
joelriou assignee:joelriou |
0-23116 6 hours ago |
0-23117 6 hours ago |
16-26155 16 days |
| 37864 |
JovanGerb author:JovanGerb |
chore: reorder arguments of `AddMonoidHom.map_zsmul` |
This PR modifies `AddMonoidHom.map_nsmul`, `AddMonoidHom.map_zsmul` and `AddMonoidHom.map_zsmul'` so that their order of arguments is as expected. This is then consistent with `map_nsmul`/`map_zsmul`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
23/24 |
Mathlib/Algebra/Category/Grp/ZModuleEquivalence.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/Module/CharacterModule.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Analysis/Complex/Circle.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Angle.lean,Mathlib/CategoryTheory/Linear/Basic.lean,Mathlib/CategoryTheory/Linear/LinearFunctor.lean,Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean |
10 |
4 |
['JovanGerb', 'github-actions', 'themathqueen'] |
nobody |
0-22974 6 hours ago |
4-11484 4 days ago |
4-15814 4 days |
| 38065 |
JovanGerb author:JovanGerb |
chore(CategoryTheory/Comma/Arrow): restore use of `inferInstanceAs` |
This PR fixes the category instance on `Arrow` to be less leaky. This is a fix after the refactor in #37764.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
4/2 |
Mathlib/CategoryTheory/Comma/Arrow.lean |
1 |
4 |
['JovanGerb', 'github-actions', 'leanprover-radar'] |
nobody |
0-22883 6 hours ago |
0-52648 14 hours ago |
0-52636 14 hours |
| 37815 |
Jun2M author:Jun2M |
feat(Analysis/SpecialFunctions/Complex/Circle): Anticlockwise Path on `Circle` |
This PR introduces explicit path constructions on the unit circle (`Circle`) and proves fundamental topological properties regarding its connectedness.
Main Definitions:
- `Circle.angleDiff`: The directed angle length from `x` to `y` along the anti-clockwise arc, using the principal arg.
- `Circle.path`: An explicit `Path x y` on the circle traversing in the anti-clockwise direction, constructed using `Circle.exp`.
Main Instances and Theorems:
- `instPathConnectedSpaceCircle`
- `Circle.range_path_union_range_path` & `Circle.range_path_inter_range_path`: The anti-clockwise path from `x` to `y` and the path from `y` to `x` are internally disjoint and covers the entire circle.
- `Circle.singleton_compl_isPathConnected`: The circle minus a single point remains path-connected.
- `Circle.not_isPreconnected_pair_compl`: The circle minus two distinct points is disconnected (not preconnected).
---
- [x] depends on: #37813
[](https://gitpod.io/from-referrer/)
|
t-analysis |
207/17 |
Mathlib/Analysis/Convex/PathConnected.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/Complex/Circle.lean |
3 |
26 |
['Jun2M', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues'] |
j-loreaux assignee:j-loreaux |
0-22651 6 hours ago |
0-36729 10 hours ago |
6-16502 6 days |
| 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.
This PR generalises #35776 to also unify `Graph`.
### Main definitions
* `GraphLike α β Gr`: A typeclass parameterized by a vertex type `α`, dart type `β` and a graph type `Gr` (with `α` as an `outParam`).
* `GraphLike.verts : Set α`: The set of vertices of the graph.
* `GraphLike.darts : Set β`: The set of darts of the graph.
* `GraphLike.Adj : α → α → Prop`: The adjacency relation, defined by default as `Nonempty (darts G u v)`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
281/0 |
Mathlib.lean,Mathlib/Combinatorics/Digraph/GraphLike.lean,Mathlib/Combinatorics/GraphLike/Basic.lean,Mathlib/Combinatorics/SimpleGraph/GraphLike.lean |
4 |
45 |
['IvanRenison', 'Jun2M', 'SnirBroshi', 'github-actions', 'lauramonk', 'mathlib-merge-conflicts'] |
nobody |
0-21896 6 hours ago |
8-15684 8 days ago |
29-71467 29 days |
| 37622 |
jano-wol author:jano-wol |
feat: trace-nilpotency criterion |
Trace-nilpotency criterion
---
This pull request introduces a proof of the trace-nilpotency criterion over algebraically closed fields of characteristic zero. We show that for a finite-dimensional representation M of a Lie algebra L with `traceForm K L M = 0` the [L, L]-module M is nilpotent.
Cartan's criterion proof overview following Humphreys, Ch. 4, pp. 31–32. We plan to deliver the proof in 3 steps:
1. This PR: Prove the trace-nilpotency criterion over algebraically closed fields. Uses Jordan–Chevalley decomposition, Lagrange interpolation.
2. Remove the algebraic closure assumption by scalar extension.
3. Prove Cartan's criterion by Engel's theorem + PR 2. This is the easiest out of the three steps.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
291/0 |
Mathlib.lean,Mathlib/Algebra/Lie/AdjointAction/JordanChevalley.lean,Mathlib/Algebra/Lie/NilpotentOfTrace.lean |
3 |
14 |
['github-actions', 'jano-wol', 'ocfnash'] |
ocfnash assignee:ocfnash |
0-20942 5 hours ago |
0-21209 5 hours ago |
9-12295 9 days |
| 38073 |
sgouezel author:sgouezel |
chore: fix diamonds in Ideals |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
37/16 |
Mathlib/GroupTheory/PresentedGroup.lean,Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/GroupTheory/Sylow.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean,Mathlib/RingTheory/Congruence/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Defs.lean |
6 |
15 |
['github-actions', 'leanprover-radar', 'sgouezel'] |
nobody |
0-20276 5 hours ago |
0-21291 5 hours ago |
0-43882 12 hours |
| 37862 |
DanielJHorton author:DanielJHorton |
feat(LinearAlgebra/BilinearMap): associativity of compl/compr and comp |
---
This PR adds theorems on the associativity of compositions of linear and bilinear maps in the file `LinearAlgebra/BilinearMap.lean`.
These are:
```
theorem compl₂_comp ... : h.compl₂ (g ∘ₛₗ f) = (h.compl₂ g).compl₂ f
theorem compl₁₂_comp₁ ... : f.compl₁₂ (g ∘ₗ h) g' = (f.compl₁₂ g g') ∘ₗ h
theorem compl₁₂_comp₂ ... : f.compl₁₂ g (g' ∘ₗ h') = (f.compl₁₂ g g').compl₂ h'
theorem compl₁₂_comp₁₂ ... : f.compl₁₂ (g ∘ₗ h) (g' ∘ₗ h') = (f.compl₁₂ g g').compl₁₂ h h'
theorem compr₂_comp ... : f.compr₂ (h ∘ₗ g) = (f.compr₂ g).compr₂ h
```
Additionally, it also includes:
- A theorem `compr₂_id`, analogous to the already existing theorems `compl₂_id` and `compl₁₂_id_id`
- Removal of some unused variable declarations in `section CommSemiring` |
new-contributor
t-algebra
label:t-algebra$ |
43/4 |
Mathlib/LinearAlgebra/BilinearMap.lean |
1 |
10 |
['DanielJHorton', 'github-actions', 'themathqueen'] |
nobody |
0-20217 5 hours ago |
0-20217 5 hours ago |
5-85298 5 days |
| 38024 |
vihdzp author:vihdzp |
chore: generalize cardinal supremum theorems to conditionally complete lattices |
---
[](https://gitpod.io/from-referrer/)
|
t-order
t-set-theory
|
36/27 |
Mathlib/LinearAlgebra/Dimension/Finite.lean,Mathlib/Order/SuccPred/CompleteLinearOrder.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Order.lean |
5 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-18680 5 hours ago |
1-11662 1 day ago |
2-3462 2 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
|
149/0 |
Mathlib.lean,Mathlib/InformationTheory/Coding/LinearCode.lean |
2 |
27 |
['cduenasnavarro', 'github-actions', 'rkirov', 'vihdzp', 'wwylele'] |
RemyDegenne assignee:RemyDegenne |
0-17649 4 hours ago |
2-24902 2 days ago |
2-25653 2 days |
| 35365 |
wwylele author:wwylele |
feat(LinearAlgebra/Simplex): closedInterior = interior + face.closedInterior |
Intermediate lemma towards #34826. This will be used to show the measure on `interior` and `closedInterior` are equal, as the difference is a zero-measure set.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
73/0 |
Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
1 |
12 |
['copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
eric-wieser assignee:eric-wieser |
0-15292 4 hours ago |
5-84423 5 days ago |
59-37985 59 days |
| 35753 |
Vilin97 author:Vilin97 |
feat(Topology/Algebra/Order): regular grid helpers and piecewise linear interpolation |
Make API for piecewise linear interpolation on regular grids. I need these to for ODE time-stepping methods, like forward Euler, and later Runge–Kutta methods.
Follow-up PR: #35755 (forward Euler method convergence).
I don't know if these numerical analysis ODE-solving methods even belong in mathlib. If someone could advise me on it, I would appreciate it.
---
The initial proof was produced by [Aristotle](https://aristotle.harmonic.fun). The code was iteratively refined (factoring out lemmas, golfing, simplifying proofs) using Claude Code. |
t-topology
new-contributor
LLM-generated
|
204/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean |
2 |
42 |
['Vilin97', 'YanYablonovskiy', 'adomani', 'botbaki-review', 'copilot-pull-request-reviewer', 'dagurtomas', 'eric-wieser', 'github-actions', 'grunweg', 'j-loreaux', 'wwylele'] |
j-loreaux assignee:j-loreaux |
0-14641 4 hours ago |
0-19716 5 hours ago |
26-1353 26 days |
| 37861 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): Connectedness of `Graph` |
This PR introduces
- `IsConnectedComponentOf`, a graph is a connected component of another graph, and
- `IsConnected`, a graph is a self component
Under this definition, an empty graph is not connected.
Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com)
---
- [x] depends on: #37610
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
92/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Connected/Component.lean |
2 |
5 |
['Jun2M', 'SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues'] |
nobody |
0-10873 3 hours ago |
0-10873 3 hours ago |
1-52391 1 day |
| 37868 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): map on `Graph` |
This PR introduces vertex map on graphs, `map`.
Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
115/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Maps.lean |
2 |
4 |
['YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-10630 2 hours ago |
0-10685 2 hours ago |
5-84192 5 days |
| 38094 |
JovanGerb author:JovanGerb |
chore(CategoryTheory/Preadditive): shorten `Preadditive` instances with term proofs |
Clean up some `Preadditive` instances. This also gives better defeq for `nsmul` and `zsmul` on natural transformations.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
98/271 |
Mathlib/CategoryTheory/Preadditive/EilenbergMoore.lean,Mathlib/CategoryTheory/Preadditive/EndoFunctor.lean,Mathlib/CategoryTheory/Preadditive/FunctorCategory.lean |
3 |
1 |
['github-actions'] |
nobody |
0-10589 2 hours ago |
0-10669 2 hours ago |
0-10657 2 hours |
| 37927 |
Vierkantor author:Vierkantor |
chore(Tactic): rewrite `order` tactic docstring |
This PR rewrites the docstrings for the `order` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long.
The `order_core` docstring also gets a little rewrite to make clearer that it is an implementation detail (and also explain exactly what it does).
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
13/3 |
Mathlib/Tactic/Order.lean |
1 |
2 |
['JovanGerb', 'github-actions'] |
JovanGerb assignee:JovanGerb |
0-10419 2 hours ago |
2-43406 2 days ago |
2-45515 2 days |
| 38091 |
eric-wieser author:eric-wieser |
feat(Topology/Order/AtTopBotIxx): locally finite families of intervals |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
45/0 |
Mathlib/Topology/Order/AtTopBotIxx.lean |
1 |
1 |
['github-actions'] |
nobody |
0-9968 2 hours ago |
0-10020 2 hours ago |
0-11332 3 hours |
| 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 |
16 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
0-6962 1 hour ago |
21-63129 21 days ago |
40-56937 40 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'] |
nobody |
0-6961 1 hour ago |
21-46989 21 days ago |
25-83053 25 days |
| 36948 |
Parcly-Taxel author:Parcly-Taxel |
feat: subtraction and ±1 lemmas for `IsCoprime, IsRelPrime` |
From my Redhill PhD project. |
t-ring-theory |
84/0 |
Mathlib/RingTheory/Coprime/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-6960 1 hour ago |
25-57033 25 days ago |
25-57021 25 days |
| 37067 |
kbuzzard author:kbuzzard |
feat: add_group tactic |
Written by Claude Code, additivising the `group` tactic, although there were some problems which needed human input.
---
[](https://gitpod.io/from-referrer/)
This is me burning Claude credits as a result of this comment [#mathlib4 > MulAut and to_additive @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MulAut.20and.20to_additive/near/581059625) .
To my amusement, naively additivising the `group` tactic to make an `add_group` tactic does not work. The problem is that the algorithm run by `group` involves adding `← zpow_neg_one` to the simp set, which rewrites `x⁻¹` to `x ^ (-1)` for `x` in any group. Amusingly, when additivised, this becomes `-x -> -1 • x` which then immediately becomes `(-1 • 1) • x` which then becomes `((-1 • 1) • 1) • x` etc etc, as the integers are themselves an additive group. Instead, Claude found the following trick: drop `← neg_one_zsmul` and `neg_one_zsmul_add`, and use `neg_add_rev` and `neg_zero` to reduce `-(a+b)` and `-0`, use `zsmul_neg` to reduce `n • (-a)` to `(-n) • a` and then use things like `add_neg_cancel_right` and `neg_add_cancel_right` to do `-b + b` and `b + -b` together with some new `zsmul_neg_trick` lemmas to deal with `(n • b) + -b` etc. The idea is to ensure that any consecutive chains of `b`'s and `-b`'s and `z • b`'s will all get amalgamated, but we cannot change `-b` to `-1 • b` so have to try harder than in the multiplicative case.
Here is a detailed (human-written!) explanation of the difference between `Tactic/AddGroup.lean` and the additivisation of `Tactic/Group.Lean`.
1) Note that the `zpow_trick` lemmas in `Tactic/Group.lean` are additivised, so we import `Group.lean` in `AddGroup.lean` to access these additivised lemmas.
2) `Mathlib.Algebra.Group.Commutator` has no additive version (and it's not clear that it should have one), so we don't use an additive version of `commutatorElement_def` (which expands `⁅g₁, g₂⁆` to `g₁ * g₂ * g₁⁻¹ * g₂⁻¹`). Note: that means that we cannot additivise a test.
3) Line 67 of the additive file uses `neg_add_rev, neg_zero, zsmul_neg, ← neg_zsmul,` as a workaround for the looping ` ← zpow_neg_one`.
4) `Int.mul_neg, Int.neg_mul` are dropped (they don't seem to be needed, all tests are passing, ring_nf is probably doing this.)
5) `sub_eq_add_neg` is added: people use subtraction in additive groups; division doesn't seem to be covered for multiplicative groups? So `add_group` can solve `a + b - b = a` but `group` cannot solve `a * b / b = a`.
***
There is also one fewer test in the `add_group` tests, as I had to remove the commutator test.
I don't know much at all about tactic-writing, the PR is all Claude code, but a lot of it is to_additive copypasta. The review of the code above is my own. |
t-meta
LLM-generated
|
183/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/AddGroup.lean,MathlibTest/AddGroup.lean |
4 |
3 |
['github-actions', 'kbuzzard'] |
nobody |
0-6960 1 hour ago |
23-8063 23 days ago |
23-9294 23 days |
| 38057 |
mathlib-nolints author:mathlib-nolints |
chore: remove declarations deprecated between 2021-04-15 and 2025-10-15 |
I am happy to remove some deprecated declarations for you!
Please check if there are any remaining stray comments or other issues before merging.
---
[workflow run for this PR](https://github.com/leanprover-community/mathlib4/actions/runs/24437431499) |
|
1/1016 |
Mathlib/Algebra/Category/Grp/CartesianMonoidal.lean,Mathlib/Algebra/Category/Grp/LeftExactFunctor.lean,Mathlib/Algebra/Group/Subgroup/Finite.lean,Mathlib/Algebra/GroupWithZero/Basic.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/Algebra/Ring/Invertible.lean,Mathlib/Algebra/Star/SelfAdjoint.lean,Mathlib/AlgebraicGeometry/AffineScheme.lean,Mathlib/AlgebraicGeometry/AffineSpace.lean,Mathlib/AlgebraicGeometry/Cover/MorphismProperty.lean,Mathlib/AlgebraicGeometry/Gluing.lean,Mathlib/AlgebraicGeometry/Morphisms/Affine.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Constructors.lean,Mathlib/AlgebraicGeometry/Morphisms/Descent.lean,Mathlib/AlgebraicGeometry/Morphisms/Integral.lean,Mathlib/AlgebraicGeometry/Morphisms/LocalIso.lean,Mathlib/AlgebraicGeometry/Morphisms/Preimmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Proper.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/OpenImmersion.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/PullbackCarrier.lean,Mathlib/AlgebraicGeometry/Pullbacks.lean,Mathlib/AlgebraicGeometry/ResidueField.lean,Mathlib/AlgebraicGeometry/Restrict.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/AlgebraicGeometry/Spec.lean,Mathlib/AlgebraicGeometry/Stalk.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/NormalForms.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/Calculus/Deriv/Add.lean,Mathlib/Analysis/Calculus/VectorField.lean,Mathlib/Analysis/Complex/ValueDistribution/FirstMainTheorem.lean,Mathlib/Analysis/Convex/BetweenList.lean,Mathlib/Analysis/LocallyConvex/Polar.lean,Mathlib/Analysis/Matrix/Order.lean,Mathlib/CategoryTheory/Bicategory/Strict/Pseudofunctor.lean,Mathlib/CategoryTheory/Comma/StructuredArrow/Small.lean,Mathlib/CategoryTheory/Generator/Basic.lean,Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean,Mathlib/CategoryTheory/Monoidal/CommGrp_.lean,Mathlib/CategoryTheory/Monoidal/Grp_.lean,Mathlib/CategoryTheory/Presentable/CardinalFilteredPresentation.lean,Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/CategoryTheory/Sites/IsSheafFor.lean,Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean,Mathlib/Data/DFinsupp/Lex.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Finite/Card.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Int/DivMod.lean,Mathlib/Data/List/FinRange.lean,Mathlib/Data/List/Nodup.lean,Mathlib/Data/List/NodupEquivFin.lean,Mathlib/Data/List/OfFn.lean,Mathlib/Data/List/Pairwise.lean,Mathlib/Data/List/Sort.lean,Mathlib/Data/Multiset/Sort.lean,Mathlib/Data/Nat/Bitwise.lean,Mathlib/Data/Nat/Log.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/Dynamics/Flow.lean,Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean,Mathlib/GroupTheory/Perm/List.lean,Mathlib/LinearAlgebra/Alternating/Uncurry/Fin.lean,Mathlib/LinearAlgebra/TensorProduct/Finiteness.lean,Mathlib/NumberTheory/SumTwoSquares.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/Probability/Independence/Conditional.lean,Mathlib/Probability/Moments/CovarianceBilinDual.lean,Mathlib/RingTheory/Adjoin/PowerBasis.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/LocalRing/Quotient.lean,Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/RingTheory/UniqueFactorizationDomain/FactorSet.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/SetTheory/Cardinal/Finsupp.lean,Mathlib/SetTheory/Ordinal/Family.lean,Mathlib/Topology/Algebra/InfiniteSum/NatInt.lean,Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean,Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean,Mathlib/Topology/Algebra/OpenSubgroup.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/DiscreteSubset.lean,Mathlib/Topology/Homeomorph/Defs.lean,Mathlib/Topology/Order.lean,Mathlib/Topology/Sets/Closeds.lean,Mathlib/Topology/UniformSpace/Ultra/Basic.lean |
100 |
2 |
['adomani', 'github-actions'] |
nobody |
0-6517 1 hour ago |
0-19664 5 hours ago |
0-22877 6 hours |
| 31768 |
Thmoas-Guan author:Thmoas-Guan |
feat(Homology): `Ext` commute with ulift functor |
In this PR, we proved that `Ext` commute with ulift functor in `ModuleCat`.
Further more, we provided compatibility with (semi-)linear equiv of general universe.
---
- [ ] depends on: #31697
- [ ] depends on: #31706
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
193/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Ulift.lean |
2 |
8 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
0-6394 1 hour ago |
0-51159 14 hours ago |
0-53212 14 hours |
| 34702 |
pfaffelh author:pfaffelh |
feat(Data/FinsetPowerset): The set `{v : List.Vector Bool n | v.val.count = k}` has cardinality `n.choose k` |
Show that `{v : List.Vector Bool n | v.val.count = k}` has cardinality `n.choose k`.
The proof builds on `powersetCard k s` (the subsets of `s : Finset _` with cardinality `k`), and an equivalence to the above set.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-data
|
52/1 |
Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Fintype/Pi.lean,Mathlib/Logic/Equiv/Fintype.lean |
3 |
25 |
['DavidLedvinka', 'b-mehta', 'eric-wieser', 'github-actions', 'joneugster', 'pfaffelh'] |
Vierkantor assignee:Vierkantor |
0-6393 1 hour ago |
69-10467 69 days ago |
72-23881 72 days |
| 36443 |
Fieldnote-Echo author:Fieldnote-Echo |
feat(Combinatorics/SimpleGraph): add SimpleGraph.ball (open metric ball) |
Add `SimpleGraph.ball`, the open ball in the graph extended metric.
## Design decisions
- **Open ball** (strict `<`, not `≤`): `ball c ⊤` coincides with the connected
component of `c`, whereas a closed ball would give `closedBall c ⊤ = univ`.
- **Named `SimpleGraph.ball`** (not `eball`): since `dist`-valued balls are less
natural for disconnected graphs, the `e` prefix is unnecessary.
- **Graph-specific** (not via `PseudoEMetricSpace`): avoids importing `ℝ`.
AI assistance: Claude (Opus 4.6) helped draft and iterate on the implementation. I reviewed the code line by line and vouch for the final contents.
Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/SimpleGraph.20metric.20balls/with/577846803).
---
[](https://gitpod.io/from-referrer/) |
t-combinatorics
new-contributor
LLM-generated
|
59/3 |
Mathlib/Combinatorics/SimpleGraph/Metric.lean |
1 |
36 |
['Fieldnote-Echo', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'lauramonk', 'vlad902'] |
awainverse and b-mehta assignee:b-mehta assignee:awainverse |
0-6393 1 hour ago |
36-40977 36 days ago |
36-40965 36 days |
| 36896 |
PieterCuijpers author:PieterCuijpers |
feat (Algebra/Order/Quantale): isMulIdempotent, isMulLeftsided, isMulRightsided, isMulTwosided and strict versions |
* Adding definitions of quantale elements being idempotent, leftsided, rightsided, and twosided, and strict versions
I'd value some discussion on whether especially the definition of isMulIdempotent would belong here, since
it applies to semigroups in general. I only see definitions of IdempotentOp in the library so far, focussing on
operators that are fully idempotent, while in the study of Quantales it seems that subquantales of elements
that are idempotent in the original are also interesting. This argues the need for having definitions on
separate elements.
Also, should we include these definitions in the main Algebra/Order/Quantale.lean file, or start a separate file for them?
And I have a few basic theorems I would like to include, but invite suggestions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
81/1 |
Mathlib/Algebra/Order/Quantale.lean |
1 |
4 |
['NoahW314', 'github-actions'] |
chrisflav assignee:chrisflav |
0-6392 1 hour ago |
26-59028 26 days ago |
26-59016 26 days |
| 36990 |
JovanGerb author:JovanGerb |
fix(RefinedDiscrTree/Lookup): improve the matching score heuristic |
This PR improves the order in which results come out of the `RefinedDiscrTree`. I've explained the motivation in the doc-string. This is probably not the most principled fix, but it is the least disruptive solution I could think of.
For an example, try clicking on `|0|` in
```
import Mathlib
example : |(0 : ℝ)| = 1 := by
rw??
```
And notice that the obvious result `abs_zero` is not the first result.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
44/8 |
Mathlib/Lean/Meta/RefinedDiscrTree/Lookup.lean |
1 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
0-6391 1 hour ago |
24-37442 24 days ago |
24-37430 24 days |
| 37503 |
Vierkantor author:Vierkantor |
chore(*): remove comments mentioning obsolete note `[nolint_ge]` |
In Lean 3 times we used to have a `ge_or_gt` linter which complained if theorem statements contained `≥` or `>`, and it would be silenced with a reference to the library note `[nolint_ge]`. But the linter and its note never got ported, so the references are irrelevant and we should drop them.
---
[](https://gitpod.io/from-referrer/)
|
t-linter
tech debt
|
1/6 |
Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Filter/AtTopBot/Finite.lean,Mathlib/Topology/EMetricSpace/Basic.lean,Mathlib/Topology/MetricSpace/Cauchy.lean |
5 |
4 |
['Vierkantor', 'github-actions', 'grunweg'] |
joneugster assignee:joneugster |
0-6390 1 hour ago |
14-41883 14 days ago |
14-41871 14 days |
| 37512 |
xgenereux author:xgenereux |
feat(Valuation/IsTrivialOn): transcendental_of_lt_one |
For a `K`-algebra `L` and a valuation `v` over `L` which is trivial on `K`, if `y : L` is such that `y ≠ 0` and `v y < 1`, then it is transcendental over `K`.
To add this result we need some lemmas from `RatFunc.AsPolynomial` which are not related to `RatFunc` so I have pulled them out of that file. I also didn't want to put this in `Valuation.Basic` so I have made a new file for valuation which are trivial over some base ring.
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 |
82/25 |
Mathlib.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/RingTheory/Valuation/IsTrivialOn.lean |
3 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
0-6389 1 hour ago |
14-26544 14 days ago |
14-26614 14 days |
| 37545 |
vihdzp author:vihdzp |
feat: ℵ_ univ = univ |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
74/4 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Regular.lean |
2 |
7 |
['github-actions', 'mathlib-merge-conflicts', 'mattdiamond', 'plp127', 'vihdzp'] |
alreadydone assignee:alreadydone |
0-6388 1 hour ago |
2-4845 2 days ago |
13-40694 13 days |
| 37573 |
vihdzp author:vihdzp |
feat: supremum of `≤ c` ordinals of cardinal `≤ c` has cardinal `≤ c` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
47/14 |
Mathlib/SetTheory/Cardinal/Ordinal.lean |
1 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
0-6387 1 hour ago |
13-20228 13 days ago |
13-20216 13 days |
| 37780 |
vihdzp author:vihdzp |
chore(Topology/Order/Basic): use `to_dual` |
---
- [x] depends on: #36958
[](https://gitpod.io/from-referrer/)
|
t-topology
t-order
|
100/175 |
Mathlib/Data/Set/Subsingleton.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Cover.lean,Mathlib/Order/Filter/Ultrafilter/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean,Mathlib/Order/Interval/Set/Pi.lean,Mathlib/Topology/Order/Basic.lean |
7 |
7 |
['JovanGerb', 'github-actions', 'mathlib-dependent-issues', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
0-6387 1 hour ago |
0-59526 16 hours ago |
0-73767 20 hours |
| 37799 |
joelriou author:joelriou |
feat(Topololy/Convenient): the category of `X`-generated spaces |
Given a family `X i` of topological spaces, we introduce two equivalent categories:
* the full subcategory of the category of topological spaces consisting of `X`-generated spaces;
* the category whose objects are any topological space, and morphisms are `X`-continuous maps.
---
- [x] depends on: #37792
[](https://gitpod.io/from-referrer/)
|
t-topology |
289/0 |
Mathlib.lean,Mathlib/Topology/Convenient/Category.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
j-loreaux assignee:j-loreaux |
0-6386 1 hour ago |
1-24129 1 day ago |
1-27005 1 day |
| 37856 |
joelriou author:joelriou |
feat(Topology/Convenient): curryfication of `X`-continuous maps |
Let `X i` be a family of topological spaces. Let `Z` and `T` be topological spaces. In this PR, we endow the type `ContinuousMapGeneratedBy X Z T` of `X`-continuous maps `Z → T` with a topology, and under suitable assumptions, we show that there is a bijection expressing the curryfication/decurryfication of `X`-continuous maps.
---
- [x] depends on: #37792
[](https://gitpod.io/from-referrer/)
|
t-topology |
140/0 |
Mathlib.lean,Mathlib/Topology/Convenient/HomSpace.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
j-loreaux assignee:j-loreaux |
0-6384 1 hour ago |
1-26630 1 day ago |
1-26620 1 day |
| 37938 |
SamuelSchlesinger author:SamuelSchlesinger |
feat(Probability/Posterior): Posterior PMFs and Various Lemmas |
Upstreaming the probability lemmas needed in https://github.com/leanprover/cslib/pull/464. |
t-measure-probability
new-contributor
|
130/0 |
Mathlib.lean,Mathlib/Probability/ProbabilityMassFunction/Posterior.lean |
2 |
3 |
['SamuelSchlesinger', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
0-6383 1 hour ago |
0-47380 13 hours ago |
0-51457 14 hours |
| 37978 |
CBirkbeck author:CBirkbeck |
feat(NumberTheory/ModularForms): cusp form submodule of modular forms |
Introduces the inclusion of cusp forms into modular forms and the corresponding submodule and `IsCuspForm` predicate.
This is in preparation for proving the dimension formula in level one which is in #37979 and see also #37789
The work was done as part of the Sphere packing project. The original code was written by me but the PR was done with the help of Claude Code. |
t-number-theory
LLM-generated
|
201/2 |
Mathlib.lean,Mathlib/NumberTheory/ModularForms/Basic.lean,Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean,Mathlib/NumberTheory/ModularForms/CuspFormSubmodule.lean,Mathlib/NumberTheory/ModularForms/LevelOne.lean |
5 |
4 |
['github-actions', 'loefflerd', 'tb65536'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-6383 1 hour ago |
2-58508 2 days ago |
2-60746 2 days |
| 38016 |
chrisflav author:chrisflav |
feat(RingTheory): `PrimeSpectrum.sigmaToPi` is an open embedding |
In particular, is is a homeomorphism for finite products.
From Pi1.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
71/5 |
Mathlib/RingTheory/Spectrum/Prime/RingHom.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean |
2 |
2 |
['chrisflav', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
0-6382 1 hour ago |
2-22808 2 days ago |
2-22796 2 days |
| 38048 |
gilesgshaw author:gilesgshaw |
feat(Topology/EMetricSpace/Defs): add theorems `EMetric.continuous*_iff*` |
Add 8 theorems of the form `EMetric.continuous*_iff*`, which are exactly analogous to
existing theorems of the form `Metric.continuous*_iff*`
---
Thus the API between the following files (already pretty consistent) is now more consistent
`Topology.MetricSpace.Pseudo.Defs` for `PseudoMetricSpace`
`Topology.EMetricSpace.Defs` for `PseudoEMetricSpace`
I have copied the theorems exactly (that is, changing only `[e]dist` and `Pseudo[E]MetricSpace`),
however perhaps there will be suggestions to make other changes at this opportunity.
(E.g. is it worth making the use of strict implicit parameters more consistent - possibly not?)
|
new-contributor
t-topology
|
44/0 |
Mathlib/Topology/EMetricSpace/Defs.lean |
1 |
3 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
0-6381 1 hour ago |
1-38055 1 day ago |
1-38043 1 day |
| 38061 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet/AnodyneExtensions): the opposite of a pairing |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
159/0 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplexCategory/Rev.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/IsUniquelyCodimOneFace.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Op.lean,Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean,Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplices.lean,Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplicesSubcomplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/Simplices.lean,Mathlib/AlgebraicTopology/SimplicialSet/SubcomplexOp.lean |
9 |
1 |
['github-actions'] |
robin-carlier assignee:robin-carlier |
0-6380 1 hour ago |
0-59939 16 hours ago |
0-59927 16 hours |
| 37935 |
NoahW314 author:NoahW314 |
feat(Topology/Order): `DenselyOrdered` of `PreconnectedSpace` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
10/1 |
Mathlib/Topology/Order/IntermediateValue.lean |
1 |
9 |
['NoahW314', 'github-actions', 'jcommelin', 'plp127'] |
jcommelin assignee:jcommelin |
0-5363 1 hour ago |
0-5378 1 hour ago |
2-52900 2 days |
| 37620 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): `Graph` intersection operations |
Adds `Mathlib/Combinatorics/Graph/Lattice.lean`, which defines intersections of Graph α β values and proves the lattice structure induced by binary intersection. Following PR will add the union operations to this file.
## Main additions
- `CompleteSemilatticeInf (WithTop (Graph α β))`
- `ConditionallyCompletePartialOrderInf (Graph α β)`
- `SemilatticeInf (Graph α β)`
Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
187/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Lattice.lean |
2 |
14 |
['Jun2M', 'YaelDillies', 'github-actions', 'vihdzp'] |
nobody |
0-4976 1 hour ago |
0-10544 2 hours ago |
11-61297 11 days |
| 35976 |
Phelixh author:Phelixh |
feat: add add Liu's uncertainty theory foundations (core/distribution/process modules) |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
2380/0 |
Mathlib.lean,Mathlib/Uncertainty/Base.lean,Mathlib/Uncertainty/BaseCore.lean,Mathlib/Uncertainty/BaseDistribution.lean,Mathlib/Uncertainty/BaseProcess.lean,Mathlib/Uncertainty/Uncertainty.lean |
6 |
30 |
['Phelixh', 'copilot-pull-request-reviewer', 'github-actions'] |
nobody |
0-2274 37 minutes ago |
0-10588 2 hours ago |
17-47647 17 days |
| 37940 |
BryceT233 author:BryceT233 |
feat(Algebra/Category): the category of local algebras with a fixed residue field |
This is an attempt to design the definitions of base category [[Stacks, 06GC]](https://stacks.math.columbia.edu/tag/06GC) and complete base category in deformation theory. The approach we take is to first introduce a larger category of local algebras with a fixed residue field, then define base category and complete base category to be full subcategories of this larger category via `ObjectProperty`.
To be specific:
* In `Defs.lean`, we define `LocAlgCat` and `LocAlgCat.Hom` to be the type of objects and morphisms in the category, and provide a universe lift functor.
* In `Basic.lean`, we introduce the basic construction `ofQuot` and `toOfQuot`, which is the quotient of an object in `LocAlgCat` by a proper Ideal. Then we use them to define `infinitesimalNeighborhood` and `specialFiber` for an object in `LocAlgCat`.
* In `Cotangent.lean`, we introduce `k`-vector space structures on `CotangentSpace` of objects in `LocAlgCat` and prove the exactness of the conormal sequence for the special fiber.
* In `BaseCat.lean`, we define `BaseCat` to be the full subcategory of `LocAlgCat` consisting of Artinian local algebras and introduce the type class of a small extension for morphisms in `BaseCat`. We show that any surjective morphism in `BaseCat` can be factored into a finite composition of small extensions [[Stacks, 06GE]](https://stacks.math.columbia.edu/tag/06GE)
This PR is intended to showcase the overall design and architecture, I will split this into smaller PRs once the community reaches a consensus on the design choices.
---
- [x] depends on: #36657
[](https://gitpod.io/from-referrer/)
|
|
941/0 |
Mathlib.lean,Mathlib/Algebra/Category/LocAlgCat/BaseCat.lean,Mathlib/Algebra/Category/LocAlgCat/Basic.lean,Mathlib/Algebra/Category/LocAlgCat/Cotangent.lean,Mathlib/Algebra/Category/LocAlgCat/Defs.lean,Mathlib/Algebra/Group/Units/ULift.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/LocalRing/RingHom/Basic.lean |
9 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-2107 35 minutes ago |
0-11289 3 hours ago |
1-8162 1 day |
| 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 |
464/391 |
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/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/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/Finite.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/CompactOpen.lean,Mathlib/Topology/Connected/Clopen.lean,Mathlib/Topology/MetricSpace/MetricSeparated.lean,Mathlib/Topology/Separation/Basic.lean,Mathlib/Topology/Separation/GDelta.lean |
78 |
3 |
['SnirBroshi', 'github-actions', 'leanprover-radar'] |
nobody |
0-1738 28 minutes ago |
0-4906 1 hour ago |
0-8490 2 hours |
| 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 |
5 |
['Rida-Hamadani', 'Ruben-VandeVelde', 'SnirBroshi', 'github-actions'] |
nobody |
0-1222 20 minutes ago |
16-786 16 days ago |
16-774 16 days |
| 38023 |
Deicyde author:Deicyde |
feat: add `continuousAt_clm_apply` |
`continuousAt_clm_apply` proves that a map `f : X → CLM` is `continuousAt x` iff all of the applications `q ↦ f q y` are continuous for fixed `y`. This is a natural analogue of `continuousOn_clm_apply` and the proof is essentially identical.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
23/10 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean |
1 |
6 |
['Deicyde', 'github-actions', 'j-loreaux'] |
j-loreaux assignee:j-loreaux |
0-546 9 minutes ago |
0-580 9 minutes ago |
1-21940 1 day |
| 38093 |
mortarsanjaya author:mortarsanjaya |
feat(Algebra/Order/Ring/Unbundled/Basic): Add a generalization of `two_mul_le_add_of_sq_eq_mul` |
The equality `r^2 = a * b` in the hypothesis can be weakened to `r^2 ≤ a * b`.
The implementation requires adding an appropriate `ZeroLEOneClass` instance.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
18/5 |
Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean |
1 |
4 |
['github-actions', 'leanprover-radar', 'mortarsanjaya'] |
nobody |
0-246 4 minutes ago |
0-13193 3 hours ago |
0-13181 3 hours |
| 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 |
| 36786 |
SproutSeeds author:SproutSeeds |
feat(DoubleCounting): parity of odd-degree vertices in bipartite incidence |
Adds `odd_card_filter_odd_bipartiteAbove_iff_odd_card_filter_odd_bipartiteBelow` to
`Mathlib.Combinatorics.Enumerative.DoubleCounting`.
This is the small parity-helper first step for #25231.
Validation:
- `lake build Mathlib.Combinatorics.Enumerative.DoubleCounting`
Supersedes closed #36077 after replaying the helper cleanly on current `master`.
AI usage: used Codex for branch recovery, replay onto current `master`, and draft wording;
final code choices and verification by me.
|
new-contributor
t-combinatorics
large-import
|
17/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean |
1 |
2 |
['github-actions'] |
nobody |
29-1424 29 days ago |
29-1507 29 days ago |
29-1495 29 days |
| 37109 |
zeekmartin author:zeekmartin |
feat(SimpleGraph): card of common neighbors equals card of triangles containing edge |
Adds `SimpleGraph.card_commonNeighbors_eq_card_triangles_containing_edge`
to `Mathlib/Combinatorics/SimpleGraph/Clique.lean`.
For adjacent vertices `u v` in a finite simple graph, establishes the bijection
between common neighbors and 3-cliques containing the edge `{u, v}`:
```lean
theorem card_commonNeighbors_eq_card_triangles_containing_edge
{u v : α} (huv : G.Adj u v) :
(G.commonNeighbors u v).toFinset.card =
((G.cliqueFinset 3).filter fun s => {u, v} ⊆ s).card
```
This connects `commonNeighbors` (defined in `Basic.lean`) with `cliqueFinset` —
a gap not previously covered in `Clique.lean`.
**AI disclosure**: Claude (Anthropic) was used as an assistant during the development of this proof. It helped with the initial proof structure and tactic suggestions. The proof was reviewed and validated step by step by the author, who can vouch for all the content. The mathematical idea originates from the author's prior Lean 4 work on spectral graph theory (github.com/zeekmartin/topostability-lean4).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
LLM-generated
new-contributor
|
61/0 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
7 |
['SnirBroshi', 'github-actions', 'zeekmartin'] |
nobody |
22-32383 22 days ago |
22-39542 22 days ago |
22-39530 22 days |
| 36850 |
whocares-abt author:whocares-abt |
feat(Combinatorics/SimpleGraph/Acyclic): add delete leaf from tree gives tree |
Added theorem stating Deleting a leaf from a tree produces a tree. |
t-combinatorics
new-contributor
|
5/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
7 |
['github-actions', 'vlad902'] |
nobody |
21-45524 21 days ago |
25-70512 25 days ago |
27-53356 27 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'] |
jsm28 assignee:jsm28 |
17-23252 17 days ago |
49-32815 49 days ago |
51-67089 51 days |
| 37006 |
hakii6 author:hakii6 |
feat(LinearAlgebra/Matrix/Block, Analysis/Normed/Algebra/MatrixExponential): add BlockTriangular.pow and BlockTriangular.exp |
# Summary
Add BlockTriangular.pow and BlockTriangular.exp for proving "det (exp A) = exp (trace A)"
# Which part using LLM
The part I used LLM is for
1. Searching duplicated theorems and lemmas I may missed (I already search them myself first).
2. Help me handle the "variables and signatures", the "letI" part, some of lemmas and theorems trivial but hard to find the true one.
3. After I finished, let them helped me check the structure match the disciplines of mathlib.
4. Check the steps PR match the disciplines of mathlib
Most things above are done by me first, then let them to make sure I'm not missing something.
# More context
More context can be found in a topic in "# new member" in Zulip
[#new members > (Matrix and NormedSpace.exp) | det (exp A) = exp (trace A)](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/580964688)
|
new-contributor
LLM-generated
|
54/1 |
Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/Topology/Instances/Matrix.lean |
3 |
59 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'hakii6', 'wwylele'] |
nobody |
17-12781 17 days ago |
19-15749 19 days ago |
24-6962 24 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
|
85/0 |
Mathlib.lean,Mathlib/NumberTheory/Transcendental/AnalyticPart.lean |
2 |
12 |
['MichaelStollBayreuth', 'SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'mkaratarakis'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
15-47349 15 days ago |
15-47404 15 days ago |
19-65849 19 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'] |
PatrickMassot assignee:PatrickMassot |
15-39255 15 days ago |
15-41409 15 days ago |
16-8411 16 days |
| 36788 |
hommmmm author:hommmmm |
feat(RingTheory): height of span of a prime element is one |
## Summary
- Add `Ideal.height_span_singleton_eq_one_of_prime`: in a Noetherian integral domain, the ideal generated by a prime element has height one.
## Notes
The new theorem follows directly from `height_le_one_of_isPrincipal_of_mem_minimalPrimes` (upper bound) and the fact that `span {p} ≠ ⊥` for `p` prime (lower bound).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
12/1 |
Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean |
1 |
5 |
['Multramate', 'github-actions', 'hommmmm'] |
mattrobball assignee:mattrobball |
15-17346 15 days ago |
15-18366 15 days ago |
28-85589 28 days |
| 36781 |
hommmmm author:hommmmm |
feat(RingTheory/UniqueFactorizationDomain): UFD iff height one primes are principal |
We prove that a Noetherian integral domain is a UFD if and only if every prime ideal of height one is principal (`UniqueFactorizationMonoid.iff_height_one_prime_principal`).
## New declarations
* `UniqueFactorizationMonoid.exists_height_one_le_of_finite_height`: given a prime of finite height ≥ 1, there exists a height one prime contained in it.
* `UniqueFactorizationMonoid.ne_bot_of_height_one`: an ideal of height one is nonzero.
* `UniqueFactorizationMonoid.height_ge_one_of_prime_ne_bot`: the height of a nonzero prime ideal in a domain is at least one.
* `UniqueFactorizationMonoid.height_one_prime_principal`: in a UFD, every height one prime is principal.
* `UniqueFactorizationMonoid.of_height_one_prime_principal`: every height one prime being principal implies UFD (Noetherian case).
* `UniqueFactorizationMonoid.iff_height_one_prime_principal`: the full iff statement.
## References
See https://stacks.math.columbia.edu/tag/0AFT
## 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
large-import
|
102/1 |
Mathlib/RingTheory/UniqueFactorizationDomain/Kaplansky.lean |
1 |
8 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'hommmmm', 'tb65536'] |
mattrobball assignee:mattrobball |
15-6487 15 days ago |
24-24728 24 days ago |
28-60323 28 days |
| 36886 |
Deep0Thinking author:Deep0Thinking |
feat(Combinatorics/Enumerative/Bonferroni): add Bonferroni inequalities |
This PR adds Bonferroni inequalities.
Main theorems:
- `Finset.indicator_biUnion_le_bonferroniIndicator_of_odd`
- `Finset.bonferroniIndicator_le_indicator_biUnion_of_even`
- `Finset.card_biUnion_le_bonferroniCard_of_odd`
- `Finset.bonferroniCard_le_card_biUnion_of_even`
Co-authored-by: Claude (Opus 4.6)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
334/4 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Bonferroni.lean,Mathlib/Combinatorics/Enumerative/InclusionExclusion.lean |
3 |
4 |
['AlexeyMilovanov', 'Deep0Thinking', 'github-actions'] |
nobody |
14-49799 14 days ago |
26-42447 26 days ago |
26-43264 26 days |
| 36917 |
iarnoldy author:iarnoldy |
feat(LinearAlgebra/CliffordAlgebra): bivector Lie subalgebra |
Define the submodule of grade-n elements (n-vectors) in a Clifford algebra
and show that bivectors (n = 2) form a `LieSubalgebra` under the commutator
bracket. This gives the standard construction of so(Q) from Cl(Q).
Main definitions:
* `CliffordAlgebra.nvector` — grade-n submodule, spanned by n-fold products of ι
* `CliffordAlgebra.bivector` — nvector 2 Q, the bivector submodule
* `CliffordAlgebra.bivectorLieSubalgebra` — LieSubalgebra of bivectors
Main results:
* `CliffordAlgebra.lie_ι_mul_ι` — explicit commutator formula for bivector generators
* `CliffordAlgebra.lie_mem_bivector` — bracket closure of the bivector submodule
* `CliffordAlgebra.bivector_le_evenOdd_zero` — bivectors lie in the even part
The `LieModule` instance for `CliffordAlgebra Q` acting on itself is provided
explicitly (`instLieModuleSelf`) because automatic synthesis exceeds the default
heartbeat limit.
AI disclosure: This code was generated with AI assistance (Claude, Anthropic).
The submitter directed the construction and QA but is not a Lean programmer.
The mathematical content is classical (Doran & Lasenby, Ch. 3). Extra review
scrutiny is welcomed.
Co-authored-by: Claude
---
Open design questions for reviewers:
1. **Naming**: Is `nvector` the right name? Eric Wieser suggested generalizing
to n-vectors. Alternatives: `ιProd`, `grade`, or following the `exteriorPower`
pattern via `equivExterior` pullback.
2. **Scalar contamination**: The spanning set `{ι m₁ * ι m₂}` includes
`ι m * ι m = Q(m)` (scalars). Eric suggested pulling back `exteriorPower`
through `equivExterior` for pure grades (requires `Invertible (2 : R)`).
Happy to rework if that's preferred.
3. **instLieModuleSelf**: Should this be an upstream issue rather than a
local workaround? @ocfnash
4. **ι_mul_ι_comm'**: This may duplicate existing API (`ι_mul_ι_comm b a`
plus `polar_comm`). Happy to inline if reviewers prefer.
Discussed on Zulip: https://leanprover.zulipchat.com (Is there code for X? thread) |
new-contributor
t-algebra
LLM-generated
label:t-algebra$ |
338/0 |
Mathlib.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Bivector.lean |
2 |
2 |
['github-actions'] |
eric-wieser assignee:eric-wieser |
14-6900 14 days ago |
26-13268 26 days ago |
26-14481 26 days |
| 32583 |
MJ141592 author:MJ141592 |
refactor(SimpleGraph): change bridges not to require the edge to be present |
Remove the requirement for edges to exist in definition of isBridge, and then change the related lemmas to adjust for this, by renaming, fixing the statements and fixing the proofs, including in Acyclic.
Closes #31690.
---
- [x] depends on: #36802
- [x] depends on: #36804 |
t-combinatorics
new-contributor
|
84/84 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean |
4 |
20 |
['MJ141592', 'SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
13-64491 13 days ago |
13-64527 13 days ago |
14-6636 14 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 |
5 |
['KryptosAI', 'Multramate', 'github-actions', 'ooovi'] |
nobody |
13-3084 13 days ago |
13-3142 13 days ago |
27-13458 27 days |
| 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
|
395/0 |
Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
b-mehta assignee:b-mehta |
12-62698 12 days ago |
12-62745 12 days ago |
70-46200 70 days |
| 34182 |
IlPreteRosso author:IlPreteRosso |
refactor(Data/Finsupp): deprecate direct single ↔ Set.indicator shortcuts, add indicator_eq_set_indicator |
Routes Finsupp.single ↔ Set.indicator through Pi.single instead of direct shortcuts.
Adds `indicator_eq_set_indicator` bridging `Finsupp.indicator` and `Set.indicator` for non-dependent functions. Deprecates `single_eq_set_indicator` and `single_eq_indicator` — users should compose through `single_eq_pi_single` + `Set.indicator_singleton` instead. Golfs `single_eq_update` via `single_eq_pi_single`.
Continues #34083. |
t-data
new-contributor
|
27/19 |
Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean |
2 |
31 |
['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] |
TwoFX assignee:TwoFX |
12-28114 12 days ago |
12-34375 12 days ago |
85-3155 85 days |
| 37593 |
IlPreteRosso author:IlPreteRosso |
refactor(Data.Finset.*Antidiagonal): rename set-based defs to `set*Antidiagonal` |
Renames set-based `Finset.mulAntidiagonal` → `setMulAntidiagonal` (and SMul/VAdd variants) to free the `mulAntidiagonal` name for the planned `HasMulAntidiagonal` typeclass. Deprecation aliases added.
Supersedes #34551 |
t-ring-theory
new-contributor
|
178/96 |
Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Data/Finset/MulAntidiagonal.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Summable.lean |
6 |
2 |
['github-actions'] |
nobody |
11-82729 11 days ago |
12-45975 12 days ago |
12-47737 12 days |
| 35733 |
mkaratarakis author:mkaratarakis |
feat: Algebraic setup and matrix coefficients for Gelfond-Schneider theorem |
This PR introduces the foundational algebraic setup and coefficient bounds required for the proof of the Gelfond-Schneider Theorem (Hilbert's Seventh Problem), which establishes that for algebraic numbers $\alpha \neq 0, 1$ and irrational algebraic $\beta$, the number $\alpha^\beta$ is transcendental.
Following the contradiction argument presented in Loo-Keng Hua's "Introduction to Number Theory" (Chapter 17.9, 490 -493) Gelfond's Proof), this file constructs the common number field $K$ and sets up the scaled algebraic integers for the auxiliary linear system. This system will later be solved via Siegel's lemma (Lemma 8.2, 490, Hua).
This PR is essentially the first half of page 490 in the book.
The proof proceeds by assuming $\gamma = \alpha^\beta$ is algebraic, meaning $\alpha$, $\beta$, and $\gamma$ all lie in an algebraic field $K$ of degree $h$.
1. Bundles the common number field $K$, the complex embeddings, and the algebraic preimages $\alpha', \beta', \gamma'$, alongside the core hypotheses of the theorem.
2. Defines the field degree $h = [K : \mathbb{Q}]$, and bounds $m = 2h + 2$ and $n = q^2 / (2m)$ to control the dimensions of the linear system.
3. Defines $c_1$, a natural number chosen so that $c_1 \alpha$, $c_1 \beta$, and $c_1 \gamma$ are algebraic integers in $K$. We prove numerous bounding and integrality lemmas (`isIntegral_c₁α`, `isInt_β_bound`, etc.).
4. Formalizes the core algebraic coefficients $(a+b\beta)^k \alpha^{al} \gamma^{bl}$ which appear in the evaluation of the derivatives of the auxiliary function $R(x)$.
5. By scaling the system by $c_1^{n-1+2mq}$, we successfully restrict the entries of our linear system matrix `A` entirely to the ring of integers $\mathcal{O}_K$, preparing it for the application of Siegel's lemma.
6. House Bounds (`c₂`) : Establishes the foundational base integer $c_2$ to bound the absolute values of the conjugates (houses) of our coefficients.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
913/49 |
Mathlib.lean,Mathlib/NumberTheory/NumberField/House.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean,Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean |
4 |
16 |
['github-actions', 'mkaratarakis', 'tb65536'] |
tb65536 assignee:tb65536 |
11-40356 11 days ago |
11-40411 11 days ago |
24-20835 24 days |
| 37027 |
mike1729 author:mike1729 |
refactor(LocallyConvex,Topology): split WeakDual/WeakSpace and rename WeakBilin |
Reorganize the weak topology files for cleaner dependencies:
1. **Rename** `Analysis.LocallyConvex.WeakDual` → `Analysis.LocallyConvex.WeakBilin`:
This file contains only general `WeakBilin` infrastructure (`LinearMap.toSeminormFamily`,
`weakBilin_withSeminorms`, `WeakBilin.locallyConvexSpace`, etc.) with no reference to
`WeakDual`. The name now reflects the content.
2. **Split** `Topology.Algebra.Module.Spaces.WeakDual` into `WeakDual` and `WeakSpace`:
The `WeakSpace` type, its instances, and `toWeakSpace/toWeakSpaceCLM` move to a new
`Topology.Algebra.Module.Spaces.WeakSpace`. This allows downstream files about weak spaces
to avoid depending on WeakDual.
3. **Add** `WeakSpace.seminormFamily` and `WeakSpace.withSeminorms` to
`Analysis.LocallyConvex.WeakSpace`: The weak topology on `WeakSpace 𝕜 E` is generated
by the seminorm family `fun f x ↦ ‖f x‖` indexed by `StrongDual 𝕜 E`, via the general
`LinearMap.weakBilin_withSeminorms` applied to the flipped `topDualPairing`.
Moves:
- Mathlib.Analysis.LocallyConvex.WeakDual → Mathlib.Analysis.LocallyConvex.WeakBilin
- WeakSpace → Mathlib.Topology.Algebra.Module.Spaces.WeakSpace
- toWeakSpace → Mathlib.Topology.Algebra.Module.Spaces.WeakSpace
- toWeakSpaceCLM → Mathlib.Topology.Algebra.Module.Spaces.WeakSpace
CC @j-loreaux
---
- [ ] depends on: #37314 |
new-contributor
file-removed
|
192/114 |
Mathlib.lean,Mathlib/Analysis/LocallyConvex/WeakBilin.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/Spaces/WeakDual.lean,Mathlib/Topology/Algebra/Module/Spaces/WeakSpace.lean |
6 |
6 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
10-39085 10 days ago |
10-39279 10 days ago |
20-54322 20 days |
| 36889 |
KryptosAI author:KryptosAI |
feat(LinearAlgebra/Matrix/MoorePenrose): define the Moore-Penrose pseudo-inverse |
Defines `IsMoorePenroseInverse` and constructs the Moore-Penrose pseudo-inverse for matrices over `RCLike` fields. Closes #24787.
`Defs.lean` defines the predicate using the heterogeneous four-condition characterization from the issue, plus uniqueness for semigroups with `StarMul`.
`Basic.lean` constructs the inverse via orthogonal projection and `ker(f)ᗮ ≃ₗ range(f)`, then proves:
```lean
theorem exists_isMoorePenroseInverse (A : Matrix m n 𝕜) :
∃ (As : Matrix n m 𝕜), IsMoorePenroseInverse A As
def moorePenroseInverse (A : Matrix m n 𝕜) : Matrix n m 𝕜
lemma moorePenroseInverse_conjTranspose :
moorePenroseInverse (Aᴴ) = (moorePenroseInverse A)ᴴ
lemma moorePenroseInverse_eq_nonsing_inv (hA : IsUnit A) :
moorePenroseInverse A = A⁻¹
```
### AI disclosure
- **Gemini 2.5 Pro**: proof planning, initial code, edits
- **Claude Code (Opus 4.6)**: debugging, compilation, type-checking against mathlib4
I reviewed and directed all changes.
---
[](https://gitpod.io/from-referrer/) |
t-algebra
new-contributor
LLM-generated
label:t-algebra$ |
402/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/MoorePenrose/Basic.lean,Mathlib/LinearAlgebra/Matrix/MoorePenrose/Defs.lean |
3 |
29 |
['KryptosAI', 'eric-wieser', 'github-actions', 'themathqueen', 'vihdzp'] |
ocfnash assignee:ocfnash |
9-44831 9 days ago |
13-3142 13 days ago |
24-36204 24 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$ |
104/29 |
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 |
4 |
['github-actions', 'mathlib-bors', 'mortarsanjaya'] |
nobody |
9-14474 9 days ago |
9-14474 9 days ago |
9-17657 9 days |
| 33520 |
NoneMore author:NoneMore |
feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input |
There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
91/0 |
Mathlib/ModelTheory/ElementarySubstructures.lean |
1 |
9 |
['Citronhat', 'NoneMore', 'fpvandoorn', 'github-actions'] |
fpvandoorn assignee:fpvandoorn |
8-35080 8 days ago |
20-62001 20 days ago |
102-54004 102 days |
| 36849 |
mike1729 author:mike1729 |
feat(Analysis/Normed/Module/SchauderBasis): basic sequences and Grünblum criterium |
This PR introduces the theory of basic sequences in Banach spaces, following Albiac–Kalton. Defines basic sequences in normed spaces, and prove the classical Grünblum criterium for recognizing them.
### Main Definitions
- `IsBasicSequence`: A `Prop` asserting that initial partial sums of `e` are bounded by `K` times
the full partial sum.
- `IsBasicSequence.toSchauderBasis`: Constructs a `SchauderBasis` on the algebraic span of a
nonzero basic sequence.
### Main Results
- `IsBasicSequence.linearIndependent`: A nonzero basic sequence is linearly independent.
- `IsBasicSequence.coe_toSchauderBasis_apply`: The `n`-th basis vector of the constructed Schauder basis coerces to `e n` in the ambient space.
- `IsBasicSequence.enormProjBound_le`: The projection bound of the constructed basis is at most `ENNReal.ofReal K`.
---
- follow up to : #34209
- blocks : #35473
The next planned PRs:
- general selection principle for basic sequences
- characterization when a set contains a basic sequence in terms of weak closure and compactness
- Eberlein–Šmulian theorem
- weakly compact subsets of a Banach space are Fréchet–Urysohn spaces
[](https://gitpod.io/from-referrer/) |
file-removed
t-analysis
new-contributor
|
278/1 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/Basic.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/BasicSequence.lean |
3 |
7 |
['github-actions', 'j-loreaux', 'mike1729'] |
sgouezel assignee:sgouezel |
7-60252 7 days ago |
7-62960 7 days ago |
27-3449 27 days |
| 37800 |
dtumad author:dtumad |
feat(Probability): Add definition of `SPMF` based on existing `PMF` |
This PR adds a definition of `SPMF A` based on the existing `PMF A` definition, and adds basic monadic operations on them.
---
There's a few different projects now using a definition along these lines so it would be good to align things. I tried to just port just the most basic things for now until the definitions can be agreed on.
[](https://gitpod.io/from-referrer/)
|
new-contributor |
231/0 |
Mathlib.lean,Mathlib/Probability/ProbabilityMassFunction/Basic.lean,Mathlib/Probability/ProbabilityMassFunction/Constructions.lean,Mathlib/Probability/ProbabilityMassFunction/Monad.lean,Mathlib/Probability/ProbabilityMassFunction/SPMF.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean |
6 |
2 |
['github-actions'] |
nobody |
7-49613 7 days ago |
7-49677 7 days ago |
7-51382 7 days |
| 37722 |
SabrinaJewson author:SabrinaJewson |
feat(Order/Cover): intervals equal singletons iff |
To complement `Set.Icc_eq_singleton_iff`, this introduces:
- `Set.Ioc_eq_singleton_iff`
- `Set.Ico_eq_singleton_iff`
- `Set.Ioi_eq_singleton_iff`
- `Set.Iio_eq_singleton_iff`
- `Set.Ioo_eq_singleton_iff`
Unforunately because of the order of the ands, the last cannot be made self-dual.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
39/0 |
Mathlib/Order/Cover.lean |
1 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
7-8656 7 days ago |
7-8680 7 days ago |
8-81830 8 days |
| 37791 |
SnkXyx author:SnkXyx |
feat(Algebra/MvPolynomial/Variables): add some lemmas about `vars` |
These lemmas are used in #36103
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
18/0 |
Mathlib/Algebra/MvPolynomial/Variables.lean |
1 |
3 |
['Hagb', 'github-actions'] |
nobody |
7-4423 7 days ago |
7-66624 7 days ago |
7-67699 7 days |
| 37819 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `WithBot` with basic `ωScottContinuous` lemmas |
This is a modification of #34093. See #34093 for details.
---
- [x] depends on: #33941
- [x] depends on: #37258
[](https://gitpod.io/from-referrer/)
|
new-contributor |
337/10 |
Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/TypeTags.lean,Mathlib/Order/WithBot.lean |
6 |
3 |
['github-actions', 'mathlib-dependent-issues'] |
Komyyy assignee:Komyyy |
7-541 7 days ago |
7-584 7 days ago |
7-4390 7 days |
| 32546 |
anishrajeev author:anishrajeev |
feat(ModelTheory): Prove compactness of the type space |
Define the space of types and prove various topological properties of it (zero dimensional, totally separated, compact, baire).
The goal is to formalize the proof of the Omitting Types Theorem
- [ ] depends on: #32215 |
t-logic
new-contributor
large-import
|
31/1 |
Mathlib/ModelTheory/Topology/Types.lean |
1 |
12 |
['NoneMore', 'anishrajeev', 'fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
fpvandoorn assignee:fpvandoorn |
6-61221 6 days ago |
7-79281 7 days ago |
11-77228 11 days |
| 37698 |
Qulinecier author:Qulinecier |
feat: add TendstoInDistribution.continuousOn_comp_prodMk_of_tendstoInMeasure_const |
This PR adds `TendstoInDistribution.continuousOn_comp_prodMk_of_tendstoInMeasure_const`, a generalization of the existing `TendstoInDistribution.continuous_comp_prodMk_of_tendstoInMeasure_const` (Slutsky's theorem) to functions that are only continuous on a closed subset `s` of the domain, rather than everywhere.
This is useful when `g` is only well-behaved on a proper closed subset, such as division (away from zero) or logarithm (on the positive reals), where the previous version requiring global continuity was not applicable.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
92/0 |
Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean |
1 |
2 |
['github-actions'] |
nobody |
6-55274 6 days ago |
9-43961 9 days ago |
9-43949 9 days |
| 34138 |
pfaffelh author:pfaffelh |
feat(MeasureTheory): Introduce `DiscreteMeasure α` giving rise to a `Measure α` as a sum of `dirac`s |
Define `DiscreteMeasure α` as a structure with `weight : α → ℝ≥0∞`
Define `toMeasure (w : DiscreteMeasure α) : Measure α` as a sum of diracs
Show properties of the resulting objects
This PR intends to start a more userfriendly interaction with discrete probability (measure) theory, in contrast to probability mass functions (`PMF`). There are two main differences between `DiscreteMeasure` and `PMF`:
* Every `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `DiscreteMeasure`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.)
* The `toMeasure` function of `MassFunction` defines the measure as a sum of diracs, which immediately makes computations possible.
Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change)
- depends on: #37060
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
212/0 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/DiscreteMeasure.lean |
4 |
23 |
['DavidLedvinka', 'github-actions', 'mathlib-merge-conflicts', 'metakunt', 'ocfnash', 'pfaffelh'] |
ocfnash assignee:ocfnash |
6-29877 6 days ago |
6-57605 6 days ago |
78-34925 78 days |
| 34375 |
jvanwinden author:jvanwinden |
feat(MeasureTheory/Function/AEEqOfLIntegral): introduce lemmas for rewriting a.e. inequalities |
Introduce the following lemmas:
- ae_le_const_iff_forall_gt_imp_ae_lt,
- ae_const_le_iff_forall_lt_imp_ae_gt,
- ae_le_const_iff_forall_gt_imp_ae_le,
- ae_const_le_iff_forall_lt_imp_ae_ge,
which can be used get an epsilon of room in a.e. inequalities, with the epsilon being outside the a.e. quantifier. The 'le/ge' variants require a dense ordering.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
31/44 |
Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean,Mathlib/Topology/Order/LiminfLimsup.lean |
2 |
13 |
['EtienneC30', 'github-actions', 'jvanwinden', 'urkud'] |
kex-y assignee:kex-y |
6-26682 6 days ago |
6-33027 6 days ago |
47-37892 47 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'] |
nobody |
6-14913 6 days ago |
6-14985 6 days ago |
8-12082 8 days |
| 28546 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… |
This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`.
Summary of additions:
- **Full shift and shift action**
- `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type).
- Right shift `shift g x` with convention `(shift g x) h = x (h * g)`.
- **Cylinders and topology**
- `cylinder U x : Set (G → A)` for finite `U : Finset G`.
- Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed.
- Equality with dependent products:
`cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API.
- **Patterns, occurrences, and subshifts**
- `Pattern A G` with finite `support : Finset G` and `data : support → A`.
- `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law.
- `forbids F` and `Subshift A G` (closed, shift-invariant subsets).
- `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness.
- **Language on finite shapes and counting**
- `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`.
- **Entropy along a shape sequence**
- `limsupAtTop` (as an `sInf` of eventual upper bounds).
- `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)`
for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`).
- **Specializations**
- `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`.
- `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`.
Mathematical remarks:
- The API is **shape-parametric**: entropy is defined along user-provided finite shapes.
- On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss).
This PR does not assume amenability; the family of shapes is an explicit input.
Motivation:
Provide a clean, reusable base for symbolic dynamics on groups in mathlib.
Future work:
- Add a Følner predicate and prove shape-independence / limit existence on amenable groups.
- Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors).
- Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch).
|
t-dynamics
new-contributor
|
665/0 |
Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean |
3 |
183 |
['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] |
urkud assignee:urkud |
5-78120 5 days ago |
5-78155 5 days ago |
151-3589 151 days |
| 33443 |
sahanwijetunga author:sahanwijetunga |
feat: Define Isometries of Bilinear Spaces |
---
We define Isometries of Bilinear Spaces, closely following the implementation of isometries of quadratic spaces.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
maintainer-merge
label:t-algebra$ |
278/0 |
Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/Isometry.lean,Mathlib/LinearAlgebra/BilinearForm/IsometryEquiv.lean |
3 |
25 |
['github-actions', 'robin-carlier', 'sahanwijetunga'] |
mattrobball assignee:mattrobball |
5-69046 5 days ago |
5-69205 5 days ago |
54-9901 54 days |
| 37884 |
DanielJHorton author:DanielJHorton |
feat(LinearAlgebra/TensorProduct/Baisc): add lift_zero theorem for TensorProduct |
---
Added the following theorem to `TensorProduct`
```
@[simp]
theorem lift_zero : lift (0 : M →ₛₗ[σ₁₂] N →ₛₗ[σ₁₂] P₂) = 0 :=
Eq.symm <| lift.unique fun _ _ => by simp only [LinearMap.zero_apply]
```
|
new-contributor
t-algebra
easy
label:t-algebra$ |
4/0 |
Mathlib/LinearAlgebra/TensorProduct/Basic.lean |
1 |
2 |
['github-actions'] |
nobody |
5-46514 5 days ago |
5-48791 5 days ago |
5-48850 5 days |
| 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 does not depend `Q(PartialOrder $α)`, and the constructors of `Strictness` now have their order typeclass arguments. In order to help `Qq` synth instances property, we have to move `assertInstancesCommute` to inner branch, manually add `haveI'` or explicitly pass the order typeclass instance into `.positive`/`.nonnegative`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-meta
|
611/322 |
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/Module/Field.lean,Mathlib/Analysis/Complex/BorelCaratheodory.lean,Mathlib/Analysis/Complex/Order.lean,Mathlib/Analysis/SpecialFunctions/Bernstein.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Arctan.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/DerivHyp.lean,Mathlib/Combinatorics/Enumerative/DyckWord.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/Totient.lean,Mathlib/Data/Rat/Cast/Order.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Real.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean,Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean,Mathlib/NumberTheory/LucasLehmer.lean,Mathlib/Tactic/Positivity/Basic.lean,Mathlib/Tactic/Positivity/Core.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean |
37 |
23 |
['HugLycan', 'JovanGerb', 'fpvandoorn', 'github-actions', 'joneugster'] |
dwrensha assignee:dwrensha |
5-6864 5 days ago |
27-63728 27 days ago |
27-66834 27 days |
| 37871 |
JJYYY-JJY author:JJYYY-JJY |
feat: support intros and simple rintro in introMerge |
* Extend the `introMerge` linter to handle `intros` and a safe subset of `rintro` tactics, allowing it to suggest merging a wider variety of adjacent introduction tactics.
* Introduce helper functions to normalize supported `rcases` and `rintro` patterns into equivalent `intro` arguments for consistent analysis.
* Add tests to verify the correct merging of mixed introduction tactics and ensure intervening tactics prevent merging.
---
[](https://gitpod.io/from-referrer/)
|
t-meta
new-contributor
|
101/9 |
Mathlib/Dynamics/OmegaLimit.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/TacticAnalysis.lean |
3 |
3 |
['copilot-pull-request-reviewer', 'github-actions'] |
dwrensha assignee:dwrensha |
5-6852 5 days ago |
5-84263 5 days ago |
6-1088 6 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
|
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'] |
nobody |
4-46990 4 days ago |
4-49877 4 days ago |
12-5830 12 days |
| 31662 |
edwin1729 author:edwin1729 |
feat(Topology/Order): topological basis of scott topology on Complete… |
…PartialOrder
---
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20Algebraic.20complete.20partial.20order.20and.20domain.20theory/with/536359313) for this PR.
(2/5) PRs in domain theory, proving that scott topologies over Algebraic DCPOs (`CompletePartialOrder`) are sober.
The main reference is [Renata, Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf). But the statements can also be found in the canonical text [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
This first PR proves two prerequisites, namely:
- the specialization order induced by the scott topology corresponds to the existing order of the DCPO. Prop 3.1.5 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.2(1) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
- the upward closures of compact elements of the DCPO form a topological basis for the Scott Topology. Prop 3.5.2 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.6(2) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
- [x] depends on: #33061
**The next PR is here:** #31670
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
235/1 |
Mathlib.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib |
4 |
67 |
['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] |
urkud assignee:urkud |
4-37060 4 days ago |
39-48099 39 days ago |
46-14404 46 days |
| 37774 |
weisbrja author:weisbrja |
fix: change variables in `bicompl` to `Sort*` and add missing theorem mentioned in `bicompl` docs |
[#mathlib4 > Why does Mathlib use Type* instead of Sort* in some places?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Why.20does.20Mathlib.20use.20Type.2A.20instead.20of.20Sort.2A.20in.20some.20places.3F/with/583882342)
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
6/1 |
Mathlib/Logic/Function/Basic.lean |
1 |
7 |
['github-actions', 'kbuzzard', 'leanprover-radar', 'weisbrja'] |
nobody |
4-24373 4 days ago |
4-33840 4 days ago |
8-19584 8 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 |
30/67 |
Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean |
2 |
5 |
['github-actions', 'vihdzp'] |
nobody |
4-14057 4 days ago |
4-59408 4 days ago |
4-59396 4 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 |
3-27361 3 days ago |
3-27419 3 days ago |
8-81258 8 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'] |
nobody |
3-26553 3 days ago |
3-26604 3 days ago |
18-83791 18 days |
| 37960 |
DanielJHorton author:DanielJHorton |
doc: typo in docstring for alternatingMapToDual |
|
t-algebra
easy
new-contributor
label:t-algebra$ |
1/1 |
Mathlib/LinearAlgebra/ExteriorPower/Pairing.lean |
1 |
2 |
['github-actions'] |
nobody |
3-13190 3 days ago |
3-30210 3 days ago |
3-30198 3 days |
| 37942 |
yanghangAI author:yanghangAI |
feat(MeasureTheory/Integral/IntervalIntegral/Fubini): Fubini swap for two iterated interval integrals |
## Summary
Adds `MeasureTheory.intervalIntegral_swap_continuous`: Fubini's theorem for two iterated `intervalIntegral`s on `ℝ` under joint continuity of the integrand.
```lean
lemma intervalIntegral_swap_continuous
{f : ℝ → ℝ → ℝ} (hf : Continuous (Function.uncurry f)) (a b c d : ℝ) :
(∫ y in c..d, ∫ x in a..b, f x y) = (∫ x in a..b, ∫ y in c..d, f x y)
```
## Motivation
Mathlib already provides:
- `MeasureTheory.integral_integral_swap` — swaps two full integrals under product integrability
- `MeasureTheory.intervalIntegral_integral_swap` — swaps one interval integral with one full integral
Neither directly swaps two iterated interval integrals, which is a common idiom when reducing two-dimensional integrals to iterated one-dimensional ones (for example when reducing a double integral over a rectangle to iterated 1D integrals in calculus proofs). This PR fills that gap.
## Proof
The proof handles all four orientation combinations (`a ≤ b` vs `b ≤ a`, `c ≤ d` vs `d ≤ c`). It reduces to the ordered case via `intervalIntegral.integral_symm` / `intervalIntegral.integral_neg`, then converts both interval integrals to a single `setIntegral` over `Set.Icc a b ×ˢ Set.Icc c d` via `setIntegral_prod` and `setIntegral_prod_swap`. Integrability on the compact product rectangle comes from `ContinuousOn.integrableOn_compact`.
## AI assistance disclosure
This PR was prepared with help from [Claude Code](https://claude.com/claude-code) (Anthropic's Claude Opus 4.6). Specifically, Claude Code:
- drafted the initial proof structure and the orientation case split;
- located the relevant Mathlib lemmas (`setIntegral_prod`, `setIntegral_prod_swap`, `ContinuousOn.integrableOn_compact`, `Ioc_ae_eq_Icc`) and wired them together;
- iterated on compiler errors until the proof built cleanly under `lake build`, `lake exe shake`, and `lake exe lint-style`.
All mathematical content was reviewed by me before committing, and I verified the final version builds cleanly in a fresh Mathlib tree. I am responsible for the correctness and style of this PR and will handle any review feedback myself.
Happy to discuss the workflow with maintainers if there's interest or concern.
## Zulip
I posted in \`#mathlib4 > general\` asking if this was duplicate work — no responses yet, proceeding since it's a small standalone helper. Happy to close if this conflicts with anyone's in-flight branch. |
t-measure-probability
new-contributor
LLM-generated
|
47/0 |
Mathlib/MeasureTheory/Integral/Prod.lean |
1 |
4 |
['CoolRmal', 'github-actions', 'wwylele'] |
EtienneC30 assignee:EtienneC30 |
3-6451 3 days ago |
3-84491 3 days ago |
3-84479 3 days |
| 37625 |
slavanaprienko author:slavanaprienko |
feat(LinearAlgebra/Matrix/Charpoly): general coefficient formula as sum of principal minors |
This PR adds a general formula for the coefficients of `det(1 + X • M)` as sums of principal minors, generalizing the existing `coeff_det_one_add_X_smul_one` (k=1, trace) and `det_eq_sign_charpoly_coeff` (k=n, determinant). It also derives the corresponding formula for the coefficients of the characteristic polynomial via `charpolyRev`.
New results:
- `det_piecewise_one_eq_submatrix_det`: relates piecewise-with-identity to principal submatrix determinants
- `coeff_det_one_add_X_smul_eq_sum_minors`: the k-th coefficient of `det(1 + X • M)` equals the sum of k×k principal minors
- `charpoly_coeff_eq_sum_minors`: coefficients of the characteristic polynomial as signed sums of principal minors
--- |
t-algebra
new-contributor
label:t-algebra$ |
105/1 |
Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean |
1 |
24 |
['eric-wieser', 'github-actions', 'slavanaprienko', 'wwylele'] |
nobody |
2-83223 2 days ago |
10-81252 10 days ago |
12-10328 12 days |
| 37138 |
dtumad author:dtumad |
feat(Data/FinEnum): instances for standard signed and unsigned integer types |
Adds `FinEnum` instances for `UIntN`/`IntN` for various `N`, and for platform sized integers.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
maintainer-merge
|
45/0 |
Mathlib/Data/FinEnum.lean |
1 |
11 |
['dtumad', 'github-actions', 'joneugster', 'linesthatinterlace'] |
joneugster assignee:joneugster |
2-59266 2 days ago |
15-41051 15 days ago |
19-77272 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
|
14/0 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
10 |
['Maldooor', 'github-actions', 'samueloettl'] |
nobody |
2-52250 2 days ago |
2-52308 2 days ago |
58-45675 58 days |
| 37814 |
sglasman author:sglasman |
feat: Equivalence between HopfAlgCat R and Hopf (ModuleCat R) |
This PR resolves a TODO by demonstrating an equivalence of categories between two models of the category of Hopf algebras over a commutative ring R, that of Hopf objects in the module category of R and that of types with a `HopfAlgebra R` instance.
---
AI declaration: I consulted with Claude on proof strategies. The proofs were ultimately written by me.
|
new-contributor
large-import
|
214/4 |
Mathlib/CategoryTheory/Monoidal/Hopf_.lean,Mathlib/RingTheory/HopfAlgebra/Basic.lean |
2 |
4 |
['github-actions', 'robin-carlier', 'sglasman'] |
nobody |
2-46113 2 days ago |
7-22042 7 days ago |
7-22030 7 days |
| 34773 |
semaraugusto author:semaraugusto |
feat(InformationTheory): add Shannon entropy for probability mass functions |
Add Shannon entropy for probability mass functions
This PR defines the Shannon entropy of a probability mass function as an
ℝ-valued infinite sum using `Real.negMulLog`, and proves basic properties
and standard computations.
Main results include:
* entropy is nonnegative;
* entropy vanishes iff the PMF is deterministic (`PMF.pure`);
* entropy is strictly positive for non-pure PMFs;
* entropy of a Bernoulli PMF coincides with `Real.binEntropy`;
* entropy of uniform distributions is `log` of the cardinality, both for
`PMF.uniformOfFintype` and `PMF.uniformOfFinset`.
Several small helper lemmas isolate technical arguments about supports,
coercions from `ℝ≥0∞`, and bounds on infinite sums, in order to keep the
main proofs readable.
See the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/generic.20shannon.20entropy.20formalization.20mathlib4/with/570643335).
---
I used ChatGPT for some proof structuring and refactoring suggestions, but all proofs were manually checked and adapted. I verified the arguments and adjusted naming and structure to follow mathlib conventions.
The proof of shannonEntropy_eq_log_card_sub_toReal_klDiv_uniformOfFintype and some of its helper lemmas were initially generated using Codex.
I manually reviewed the generated proof, checked each step, and refactored the code and naming to follow mathlib conventions.
[](https://gitpod.io/from-referrer/)
|
new-contributor
LLM-generated
|
417/0 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Log/NegMulLog.lean,Mathlib/InformationTheory/Entropy.lean |
3 |
15 |
['adomasbaliuka', 'dupuisf', 'euprunin', 'github-actions', 'mathlib-merge-conflicts', 'mattrobball', 'semaraugusto', 'wwylele'] |
dupuisf and sgouezel assignee:sgouezel assignee:dupuisf |
2-36109 2 days ago |
11-12457 11 days ago |
20-30549 20 days |
| 37796 |
JadAbouHawili author:JadAbouHawili |
feat(Data/Set): add mem_singleton lemma |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
easy
|
9/3 |
Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Insert.lean,Mathlib/Data/Set/Insert.lean |
3 |
5 |
['JadAbouHawili', 'github-actions', 'wwylele'] |
nobody |
2-32541 2 days ago |
4-23734 4 days ago |
7-43310 7 days |
| 36758 |
LarsenClose author:LarsenClose |
feat(Algebra/Category/ModuleCat): add locally finitely presentable instance |
Prove that `ModuleCat R` is locally finitely presentable for any commutative
ring `R`. The free rank-1 module is a small strong generator of
`ℵ₀`-presentable objects (Gabriel-Ulmer, Adamek-Rosicky Theorem 1.11).
This is the first `IsLocallyFinitelyPresentable` instance for an algebraic
category in Mathlib. Opens the path to LFP instances for other algebraic
categories (groups, rings, etc.) via the same generator pattern.
Companion to #36104.
### AI disclosure
Developed with assistance from Claude (Anthropic). AI was used for proof
exploration, convention checking, and PR preparation. All mathematical
content and proof strategy reviewed and understood by the author. |
new-contributor
t-algebra
LLM-generated
label:t-algebra$ |
163/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ForgetCorepresentable.lean,Mathlib/Algebra/Category/ModuleCat/Presentable.lean |
3 |
21 |
['LarsenClose', 'eric-wieser', 'github-actions', 'joelriou', 'robin-carlier'] |
nobody |
2-27591 2 days ago |
2-27591 2 days ago |
4-77652 4 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 |
5 |
['Komyyy', 'github-actions', 'mathlib-merge-conflicts', 'tannerduve'] |
Komyyy assignee:Komyyy |
2-21282 2 days ago |
2-41862 2 days ago |
3-17744 3 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'] |
nobody |
2-6961 2 days ago |
31-77578 31 days ago |
31-77566 31 days |
| 34851 |
dennj author:dennj |
feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations |
This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization:
- `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i`
- `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x`
- `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i`
These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). |
t-data
new-contributor
|
22/0 |
Mathlib/Data/Matrix/Mul.lean |
1 |
7 |
['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
2-6953 2 days ago |
70-22427 70 days ago |
70-22415 70 days |
| 36210 |
vbeffara author:vbeffara |
feat(Combinatorics/SimpleGraph): definitions of graph contraction and graph minor |
A contraction is the image of a graph through a surjective function with connected fibers, and a minor is a contraction of a subgraph.
This PR shows that being a contraction is transitive, but does not show the same for minors because the proof is more involved, it will be in a subsequent PR. The definitions are in `Prop` and do not contain data, but I'm not sure if that was the right choice.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
151/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Contraction.lean,Mathlib/Combinatorics/SimpleGraph/Minor.lean |
3 |
7 |
['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'vbeffara'] |
b-mehta assignee:b-mehta |
2-6462 2 days ago |
27-46487 27 days ago |
40-73065 40 days |
| 36787 |
hommmmm author:hommmmm |
feat(RingTheory/LocalRing): Krull dimension results for maximal ideal of local ring |
## Summary
This PR adds:
* `IsLocalRing.exists_mem_maximalIdeal_not_mem_sq`: In a Noetherian local ring of positive Krull dimension, there exists an element in the maximal ideal that is not in its square.
The result follows from Nakayama's lemma: if every element of the maximal ideal `𝔪` were in `𝔪²`, then `𝔪 = 𝔪²`, and Nakayama gives `𝔪 = ⊥`, contradicting positive dimension.
## Acknowledgements
Thanks to Dora Kassabova and Leopold Mayer for edit suggestions.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
14/0 |
Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean |
1 |
15 |
['NoahW314', 'chrisflav', 'github-actions', 'hommmmm', 'tb65536', 'wwylele'] |
chrisflav assignee:chrisflav |
2-4865 2 days ago |
2-4914 2 days ago |
28-74117 28 days |
| 35287 |
arnoudvanderleer author:arnoudvanderleer |
feat(AlgebraicTopology/SimplicialSet): define isomorphisms in simplicial sets, and the coherent isomorphism simplicial set |
show that any edge in a simplicial set, that is the image of the forward edge of the coherent isomorphism under a simplicial set morphism, is an isomorphism.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
new-contributor
infinity-cosmos
please-merge-master
|
372/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/CoherentIso.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveCodiscrete.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/CategoryTheory/CodiscreteCategory.lean |
6 |
95 |
['arnoudvanderleer', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-80570 1 day ago |
1-80570 1 day ago |
12-61545 12 days |
| 35653 |
pepamontero author:pepamontero |
feat: add ChartedSpace structure on orbit space |
Add topological preliminaries for properly discontinuous group actions, and use them to equip the orbit space `orbitRel.Quotient G M` with a `ChartedSpace` structure.
In particular:
- Show that the quotient map `Quotient.mk _ : M → orbitRel.Quotient G M` is a covering map and hence a local homeomorphism.
- Construct chosen local inverses of the quotient map and establish properties over them.
- Define a `ChartedSpace` instance on the quotient by composing these local inverses with charts of M.
Future PRs will (hopefully) upgrade this to a smooth manifold structure (assuming a smooth action).
This started as an ItaLean2025 project; here is the [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Quotient.20Manifolds/with/575121158) dedicated to it.
Co-authored by: Michael Rothgang
Co-authored by: Archie Browne @archiebrowne
Co-authored by: Enrique Diaz Blanco @qdiazblanco
Co-authored by: Juanjo Madrigal @juanjomadrigal |
new-contributor
t-differential-geometry
|
162/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Instances/OrbitSpace.lean,Mathlib/Topology/Algebra/OrbitSpace.lean |
3 |
70 |
['Rida-Hamadani', 'github-actions', 'grunweg', 'pepamontero'] |
grunweg assignee:grunweg |
1-57054 1 day ago |
2-18545 2 days ago |
51-68365 51 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
|
138/1 |
Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean |
1 |
3 |
['github-actions'] |
nobody |
1-34252 1 day ago |
1-35600 1 day ago |
1-35588 1 day |
| 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)$$
- I kept `SimpContFract.determinant_aux`, since it is used downstream in `Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean`.
- The `SimpContFract` version is still available unchanged, so this should avoid breaking existing users of the old API.
- I was not sure whether `(g.s.get? i).elim 0 Pair.a` is the correct or most idiomatic way to represent the partial numerator `aᵢ` in this context. Any feedback on a more canonical formulation would be appreciated.
- The use of `0` as the default partial numerator in `(g.s.get? i).elim 0 Pair.a` allows product formulation that remains valid when the fraction is terminated. |
t-algebra
new-contributor
large-import
label:t-algebra$ |
53/29 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Determinant.lean |
2 |
9 |
['emlis42', 'github-actions', 'vihdzp'] |
nobody |
1-12779 1 day ago |
2-52308 2 days ago |
2-52793 2 days |
| 37350 |
aditya-ramabadran author:aditya-ramabadran |
feat(Analysis/Distribution): define canonical maps between Schwartz/test functions, distributions/tempered distributions |
Defines these canonical maps: (1) continuous linear map from $\mathcal D$ to $\mathcal S$, and (2) induced (linear) restriction map from $\mathcal S'$ to $\mathcal D'$, as assigned by @ADedecker.
---
Put in a separate file since Distribution.lean only imports TestFunction right now and I thought it was cleaner to do in a new bridge file with both the maps. Open to changing this though.
* Made use of #36445 (proved first map locally on fixed support spaces first by local seminorm estimates, then used limitCLM)
* Needed a real to complex bridge `TestFunction.ToComplexSchwartzMap` since distributions are defined on real-valued test functions but tempered distributions in mathlib are defined on complex-valued Schwartz functions
* Induced map $\mathcal S'(E,F) \to \mathcal D'(Ω,F)$ is $\mathbb C$-linear
The main important defs are `ContDiffMapSupportedIn.toSchwartzMapCLM` which is the local fixed-support part, then `TestFunction.toSchwartzMapCLM` (where the continuity uses limitCLM to glue the local continuous linear maps on each $\mathcal D_K$), and `TemperedDistribution.toDistributionLM` which is the linear map from tempered distributions to ordinary distributions.
Tested with `lake env lean Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean`
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
279/0 |
Mathlib.lean,Mathlib/Analysis/Distribution/TestFunctionSchwartz.lean |
2 |
3 |
['aditya-ramabadran', 'github-actions'] |
j-loreaux assignee:j-loreaux |
1-6497 1 day ago |
14-42428 14 days ago |
14-82811 14 days |
| 37540 |
quantumsnow author:quantumsnow |
feat(CategoryTheory/MorphismProperty/Comma): add MorphismProperty.Arrow |
This is needed for the category of topological pairs (#36621).
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
maintainer-merge
|
109/8 |
Mathlib/CategoryTheory/MorphismProperty/Comma.lean |
1 |
20 |
['chrisflav', 'github-actions', 'joelriou', 'quantumsnow'] |
robin-carlier assignee:robin-carlier |
1-6493 1 day ago |
1-59531 1 day ago |
1-66928 1 day |
| 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'] |
bryangingechen assignee:bryangingechen |
1-6493 1 day ago |
9-9872 9 days ago |
9-10353 9 days |
| 37926 |
e-271828 author:e-271828 |
feat(Analysis/Analytic): add AnalyticAt properties for iterated dslope |
This PR adds three fundamental lemmas in the `AnalyticAt` namespace to establish the analyticity of the (iterated) `dslope` function:
* `AnalyticAt.dslope_of_ne`
* `AnalyticAt.iterate_dslope_of_ne`
* `AnalyticAt.iterate_dslope` (at the singularity, using `has_fpower_series_iterate_dslope_fslope`)
These properties are crucial for factoring out removable singularities iteratively while preserving analyticity.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
29/0 |
Mathlib/Analysis/Analytic/IsolatedZeros.lean |
1 |
6 |
['e-271828', 'github-actions', 'wwylele'] |
j-loreaux assignee:j-loreaux |
1-6491 1 day ago |
4-60470 4 days ago |
4-60458 4 days |
| 35846 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): adic completeness for `MvPowerSeries` |
This PR continues the work in #35670 and #35707 by adding typeclass instances for the completeness of `MvPowerSeries` when the index type is finite.
---
- [x] depends on: #35789
- [x] depends on: #35707
- [x] depends on: #35670
- [x] depends on: #35597
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
large-import
|
25/0 |
Mathlib/RingTheory/AdicCompletion/Completeness.lean |
1 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-83776 23 hours ago |
5-63447 5 days ago |
5-63539 5 days |
| 29434 |
ntapiam author:ntapiam |
feat(NonAssoc/LieAdmissible): prove every ring/algebra is LieAdmissible |
-awaiting-author |
t-algebra
new-contributor
label:t-algebra$ |
32/6 |
Mathlib/Algebra/NonAssoc/LieAdmissible/Defs.lean |
1 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
nobody |
0-70036 19 hours ago |
0-70097 19 hours ago |
0-71179 19 hours |
| 38058 |
nielstron author:nielstron |
doc(Computability): fix typo in TM Config description |
Corrects minor grammatical error in comments.
---
[](https://gitpod.io/from-referrer/)
|
t-computability
new-contributor
maintainer-merge
|
3/3 |
Mathlib/Computability/TuringMachine/Config.lean |
1 |
6 |
['github-actions', 'grunweg', 'nielstron'] |
nobody |
0-69943 19 hours ago |
0-70661 19 hours ago |
0-71605 19 hours |
| 35906 |
scp020 author:scp020 |
feat(Combinatorics/SimpleGraph/Walk): chords of walks |
Define `Walk.IsChord` and `Walk.IsChordless` predicates in a new file `SimpleGraph/Walk/Chord.lean`.
See "chord" in https://en.wikipedia.org/wiki/Glossary_of_graph_theory
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Walk.2EIsChordless.20live.20in.20mathlib.3F/with/575277309)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
maintainer-merge
|
59/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Chord.lean |
2 |
68 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'scp020'] |
YaelDillies assignee:YaelDillies |
0-55535 15 hours ago |
11-4791 11 days ago |
35-81044 35 days |
| 37628 |
JadAbouHawili author:JadAbouHawili |
chore: Rename Xor' to Xor |
Rename `Xor'` to `Xor` per the comment which recommended doing so after `v4.25.0-rc1`
Moves:
- Xor' --> Xor
[#new members > Why Xor' and not Xor? Why `Or` and not `OrOp` for `Prop`? @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Why.20Xor.27.20and.20not.20Xor.3F.20Why.20.60Or.60.20and.20not.20.60OrOp.60.20for.20.60Prop.60.3F/near/583510533)
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
75/66 |
Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/Ring/Int/Parity.lean,Mathlib/Algebra/Ring/Parity.lean,Mathlib/Data/Bool/Basic.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/Data/Set/Disjoint.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/GroupTheory/Index.lean,Mathlib/Logic/Basic.lean,Mathlib/NumberTheory/RatFunc/Ostrowski.lean,Mathlib/Order/SymmDiff.lean,Mathlib/Tactic/ITauto.lean,Mathlib/Topology/Algebra/Order/Archimedean.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Instances/AddCircle/DenseSubgroup.lean,Mathlib/Topology/Separation/Basic.lean,Mathlib/Topology/Separation/Profinite.lean,MathlibTest/itauto.lean |
18 |
20 |
['JadAbouHawili', 'Ruben-VandeVelde', 'eric-wieser', 'github-actions', 'grunweg', 'mathlib-merge-conflicts'] |
nobody |
0-45168 12 hours ago |
0-51964 14 hours ago |
10-85421 10 days |
| 38074 |
WilliamCoram author:WilliamCoram |
refactor: PowerSeries.gaussNorm |
We refactor the definition of the gauss norm on power series to an abbrev of the gauss norm on multivariate power series, and remove the use of `Funlike`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
large-import
|
86/50 |
Mathlib/RingTheory/Polynomial/GaussNorm.lean,Mathlib/RingTheory/PowerSeries/GaussNorm.lean |
2 |
2 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
0-43977 12 hours ago |
0-44044 12 hours ago |
0-45059 12 hours |
| 38033 |
JadAbouHawili author:JadAbouHawili |
feat(Data/Set): add `subsingleton_iff_eq_empty_or_singleton` |
---
proof needs to be golfed, got lost in the api so any feedback/review is appreciated
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-data
easy
maintainer-merge
|
3/0 |
Mathlib/Data/Set/Subsingleton.lean |
1 |
11 |
['JadAbouHawili', 'github-actions', 'themathqueen', 'vihdzp'] |
nobody |
0-41963 11 hours ago |
0-52059 14 hours ago |
1-53141 1 day |
| 38027 |
8e7 author:8e7 |
feat(Combinatorics/SimpleGraph/StarGraph): 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.
---
All lemmas are hand written first, then golfed with the help of Claude Code.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
92/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/StarGraph.lean |
2 |
35 |
['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
0-34459 9 hours ago |
1-2299 1 day ago |
1-83250 1 day |
| 36104 |
LarsenClose author:LarsenClose |
feat(CategoryTheory/Endofunctor/Algebra): add Adámek's initial algebra theorem |
Adds Adámek's initial algebra theorem for endofunctors on categories
with an initial object. Given `F : C ⥤ C` where `C` has an initial
object, if the initial chain `⊥ → F(⊥) → F²(⊥) → ⋯` has a colimit
preserved by `F`, then `F` has an initial algebra whose structure map
is an isomorphism.
New files:
- `InitialChain.lean`: defines `iterateObj F n`, `iterateMap F n`,
and `initialChain F : ℕ ⥤ C` via `Functor.ofSequence`.
- `ChainShift.lean`: constructs `shiftCocone` and `extendCocone`,
proves `shiftCoconeIsColimit` (shifted cocone inherits colimit).
- `Adamek.lean`: main result. Constructs the initial `F`-algebra
`adamek F c hc` and proves `adamek_isInitial`. Convenience API:
`adamekFromInitial`, `adamekStructureIso`, `adamekFixedPoint`.
0 sorry. References Adámek 1974.
### AI disclosure
Developed with assistance from Claude (Anthropic). AI was used for proof
exploration, convention checking, and PR preparation. All mathematical
content and proof strategy reviewed and understood by the author. |
t-category-theory
new-contributor
LLM-generated
|
462/0 |
Mathlib.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/Adamek.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/ChainShift.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/InitialChain.lean,docs/references.bib |
5 |
28 |
['LarsenClose', 'dagurtomas', 'euprunin', 'github-actions', 'grunweg', 'joelriou'] |
joelriou assignee:joelriou |
0-23116 6 hours ago |
0-23117 6 hours ago |
16-26155 16 days |
| 37862 |
DanielJHorton author:DanielJHorton |
feat(LinearAlgebra/BilinearMap): associativity of compl/compr and comp |
---
This PR adds theorems on the associativity of compositions of linear and bilinear maps in the file `LinearAlgebra/BilinearMap.lean`.
These are:
```
theorem compl₂_comp ... : h.compl₂ (g ∘ₛₗ f) = (h.compl₂ g).compl₂ f
theorem compl₁₂_comp₁ ... : f.compl₁₂ (g ∘ₗ h) g' = (f.compl₁₂ g g') ∘ₗ h
theorem compl₁₂_comp₂ ... : f.compl₁₂ g (g' ∘ₗ h') = (f.compl₁₂ g g').compl₂ h'
theorem compl₁₂_comp₁₂ ... : f.compl₁₂ (g ∘ₗ h) (g' ∘ₗ h') = (f.compl₁₂ g g').compl₁₂ h h'
theorem compr₂_comp ... : f.compr₂ (h ∘ₗ g) = (f.compr₂ g).compr₂ h
```
Additionally, it also includes:
- A theorem `compr₂_id`, analogous to the already existing theorems `compl₂_id` and `compl₁₂_id_id`
- Removal of some unused variable declarations in `section CommSemiring` |
new-contributor
t-algebra
label:t-algebra$ |
43/4 |
Mathlib/LinearAlgebra/BilinearMap.lean |
1 |
10 |
['DanielJHorton', 'github-actions', 'themathqueen'] |
nobody |
0-20217 5 hours ago |
0-20217 5 hours ago |
5-85298 5 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
|
149/0 |
Mathlib.lean,Mathlib/InformationTheory/Coding/LinearCode.lean |
2 |
27 |
['cduenasnavarro', 'github-actions', 'rkirov', 'vihdzp', 'wwylele'] |
RemyDegenne assignee:RemyDegenne |
0-17649 4 hours ago |
2-24902 2 days ago |
2-25653 2 days |
| 35753 |
Vilin97 author:Vilin97 |
feat(Topology/Algebra/Order): regular grid helpers and piecewise linear interpolation |
Make API for piecewise linear interpolation on regular grids. I need these to for ODE time-stepping methods, like forward Euler, and later Runge–Kutta methods.
Follow-up PR: #35755 (forward Euler method convergence).
I don't know if these numerical analysis ODE-solving methods even belong in mathlib. If someone could advise me on it, I would appreciate it.
---
The initial proof was produced by [Aristotle](https://aristotle.harmonic.fun). The code was iteratively refined (factoring out lemmas, golfing, simplifying proofs) using Claude Code. |
t-topology
new-contributor
LLM-generated
|
204/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean |
2 |
42 |
['Vilin97', 'YanYablonovskiy', 'adomani', 'botbaki-review', 'copilot-pull-request-reviewer', 'dagurtomas', 'eric-wieser', 'github-actions', 'grunweg', 'j-loreaux', 'wwylele'] |
j-loreaux assignee:j-loreaux |
0-14641 4 hours ago |
0-19716 5 hours ago |
26-1353 26 days |
| 36443 |
Fieldnote-Echo author:Fieldnote-Echo |
feat(Combinatorics/SimpleGraph): add SimpleGraph.ball (open metric ball) |
Add `SimpleGraph.ball`, the open ball in the graph extended metric.
## Design decisions
- **Open ball** (strict `<`, not `≤`): `ball c ⊤` coincides with the connected
component of `c`, whereas a closed ball would give `closedBall c ⊤ = univ`.
- **Named `SimpleGraph.ball`** (not `eball`): since `dist`-valued balls are less
natural for disconnected graphs, the `e` prefix is unnecessary.
- **Graph-specific** (not via `PseudoEMetricSpace`): avoids importing `ℝ`.
AI assistance: Claude (Opus 4.6) helped draft and iterate on the implementation. I reviewed the code line by line and vouch for the final contents.
Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/SimpleGraph.20metric.20balls/with/577846803).
---
[](https://gitpod.io/from-referrer/) |
t-combinatorics
new-contributor
LLM-generated
|
59/3 |
Mathlib/Combinatorics/SimpleGraph/Metric.lean |
1 |
36 |
['Fieldnote-Echo', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'lauramonk', 'vlad902'] |
awainverse and b-mehta assignee:b-mehta assignee:awainverse |
0-6393 1 hour ago |
36-40977 36 days ago |
36-40965 36 days |
| 36896 |
PieterCuijpers author:PieterCuijpers |
feat (Algebra/Order/Quantale): isMulIdempotent, isMulLeftsided, isMulRightsided, isMulTwosided and strict versions |
* Adding definitions of quantale elements being idempotent, leftsided, rightsided, and twosided, and strict versions
I'd value some discussion on whether especially the definition of isMulIdempotent would belong here, since
it applies to semigroups in general. I only see definitions of IdempotentOp in the library so far, focussing on
operators that are fully idempotent, while in the study of Quantales it seems that subquantales of elements
that are idempotent in the original are also interesting. This argues the need for having definitions on
separate elements.
Also, should we include these definitions in the main Algebra/Order/Quantale.lean file, or start a separate file for them?
And I have a few basic theorems I would like to include, but invite suggestions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
81/1 |
Mathlib/Algebra/Order/Quantale.lean |
1 |
4 |
['NoahW314', 'github-actions'] |
chrisflav assignee:chrisflav |
0-6392 1 hour ago |
26-59028 26 days ago |
26-59016 26 days |
| 37938 |
SamuelSchlesinger author:SamuelSchlesinger |
feat(Probability/Posterior): Posterior PMFs and Various Lemmas |
Upstreaming the probability lemmas needed in https://github.com/leanprover/cslib/pull/464. |
t-measure-probability
new-contributor
|
130/0 |
Mathlib.lean,Mathlib/Probability/ProbabilityMassFunction/Posterior.lean |
2 |
3 |
['SamuelSchlesinger', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
0-6383 1 hour ago |
0-47380 13 hours ago |
0-51457 14 hours |
| 38048 |
gilesgshaw author:gilesgshaw |
feat(Topology/EMetricSpace/Defs): add theorems `EMetric.continuous*_iff*` |
Add 8 theorems of the form `EMetric.continuous*_iff*`, which are exactly analogous to
existing theorems of the form `Metric.continuous*_iff*`
---
Thus the API between the following files (already pretty consistent) is now more consistent
`Topology.MetricSpace.Pseudo.Defs` for `PseudoMetricSpace`
`Topology.EMetricSpace.Defs` for `PseudoEMetricSpace`
I have copied the theorems exactly (that is, changing only `[e]dist` and `Pseudo[E]MetricSpace`),
however perhaps there will be suggestions to make other changes at this opportunity.
(E.g. is it worth making the use of strict implicit parameters more consistent - possibly not?)
|
new-contributor
t-topology
|
44/0 |
Mathlib/Topology/EMetricSpace/Defs.lean |
1 |
3 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
0-6381 1 hour ago |
1-38055 1 day ago |
1-38043 1 day |
| 35976 |
Phelixh author:Phelixh |
feat: add add Liu's uncertainty theory foundations (core/distribution/process modules) |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
2380/0 |
Mathlib.lean,Mathlib/Uncertainty/Base.lean,Mathlib/Uncertainty/BaseCore.lean,Mathlib/Uncertainty/BaseDistribution.lean,Mathlib/Uncertainty/BaseProcess.lean,Mathlib/Uncertainty/Uncertainty.lean |
6 |
30 |
['Phelixh', 'copilot-pull-request-reviewer', 'github-actions'] |
nobody |
0-2274 37 minutes ago |
0-10588 2 hours ago |
17-47647 17 days |
| 38023 |
Deicyde author:Deicyde |
feat: add `continuousAt_clm_apply` |
`continuousAt_clm_apply` proves that a map `f : X → CLM` is `continuousAt x` iff all of the applications `q ↦ f q y` are continuous for fixed `y`. This is a natural analogue of `continuousOn_clm_apply` and the proof is essentially identical.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
23/10 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean |
1 |
6 |
['Deicyde', 'github-actions', 'j-loreaux'] |
j-loreaux assignee:j-loreaux |
0-546 9 minutes ago |
0-580 9 minutes ago |
1-21940 1 day |
| 38093 |
mortarsanjaya author:mortarsanjaya |
feat(Algebra/Order/Ring/Unbundled/Basic): Add a generalization of `two_mul_le_add_of_sq_eq_mul` |
The equality `r^2 = a * b` in the hypothesis can be weakened to `r^2 ≤ a * b`.
The implementation requires adding an appropriate `ZeroLEOneClass` instance.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
18/5 |
Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean |
1 |
4 |
['github-actions', 'leanprover-radar', 'mortarsanjaya'] |
nobody |
0-246 4 minutes ago |
0-13193 3 hours ago |
0-13181 3 hours |