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 |
| 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 |
30-59836 30 days ago |
32-56239 32 days ago |
33-84551 33 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 |
29-45210 29 days ago |
29-46809 29 days ago |
29-61720 29 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 |
26-68949 26 days ago |
31-7537 31 days ago |
32-76186 32 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 |
25-16675 25 days ago |
27-35686 27 days ago |
27-35079 27 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 |
21-65190 21 days ago |
21-68673 21 days ago |
21-68066 21 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 |
21-30227 21 days ago |
23-21079 23 days ago |
23-20472 23 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 |
21-30218 21 days ago |
26-49940 26 days ago |
26-49335 26 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 |
20-62680 20 days ago |
20-64834 20 days ago |
21-31241 21 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 |
20-40771 20 days ago |
20-41791 20 days ago |
34-22019 34 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 |
20-29912 20 days ago |
29-48153 29 days ago |
33-83153 33 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 |
20-4686 20 days ago |
20-5988 20 days ago |
20-11853 20 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 |
19-86115 19 days ago |
19-86180 19 days ago |
19-85573 19 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 |
19-78748 19 days ago |
26-45279 26 days ago |
26-44672 26 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 |
19-73224 19 days ago |
31-65872 31 days ago |
31-66094 31 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 |
19-40106 19 days ago |
19-40131 19 days ago |
20-49416 20 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 |
19-30332 19 days ago |
19-74094 19 days ago |
20-14697 20 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 |
19-30316 19 days ago |
20-330 19 days ago |
19-86123 19 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 |
19-1516 19 days ago |
19-1552 19 days ago |
19-29466 19 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 |
18-72073 18 days ago |
18-72144 18 days ago |
18-71537 18 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 |
18-41569 18 days ago |
18-41638 18 days ago |
18-41031 18 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 |
18-40208 18 days ago |
18-40284 18 days ago |
18-39677 18 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 |
18-30226 18 days ago |
33-68118 33 days ago |
33-67519 33 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 |
18-30218 18 days ago |
18-77418 18 days ago |
18-76811 18 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 |
18-26509 18 days ago |
18-26567 18 days ago |
32-36288 32 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 |
17-86123 17 days ago |
17-86170 17 days ago |
75-69030 75 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 |
17-71113 17 days ago |
25-34646 25 days ago |
25-39736 25 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 |
17-69963 17 days ago |
17-71114 17 days ago |
19-16120 19 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 |
17-56480 17 days ago |
17-59145 17 days ago |
60-43355 60 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 |
17-56182 17 days ago |
17-56226 17 days ago |
18-37144 18 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 |
17-51540 17 days ago |
21-22651 21 days ago |
21-22188 21 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 |
17-51539 17 days ago |
17-57800 17 days ago |
90-25985 90 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 |
17-36410 17 days ago |
17-36484 17 days ago |
17-35877 17 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 |
17-32830 17 days ago |
18-55326 18 days ago |
18-54719 18 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 |
17-30357 17 days ago |
25-30490 25 days ago |
25-29883 25 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 |
17-30351 17 days ago |
18-76202 18 days ago |
18-75595 18 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 |
16-63781 16 days ago |
16-63836 16 days ago |
29-43665 29 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 |
16-58508 16 days ago |
16-58547 16 days ago |
16-58024 16 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 |
16-30093 16 days ago |
18-45330 18 days ago |
18-45007 18 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 |
16-19776 16 days ago |
16-39462 16 days ago |
16-38855 16 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 |
15-64730 15 days ago |
16-46568 16 days ago |
38-57709 38 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 |
15-45993 15 days ago |
15-46067 15 days ago |
15-45460 15 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 |
15-42923 15 days ago |
15-43004 15 days ago |
15-42397 15 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 |
15-30117 15 days ago |
23-76566 23 days ago |
23-76301 23 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 |
15-30115 15 days ago |
20-67222 20 days ago |
20-66663 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 |
14-68256 14 days ago |
18-26567 18 days ago |
29-59034 29 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 |
14-58226 14 days ago |
14-58283 14 days ago |
21-23919 21 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 |
14-49873 14 days ago |
14-49934 14 days ago |
41-16390 41 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 |
14-43613 14 days ago |
14-43613 14 days ago |
14-54972 14 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 |
14-30202 14 days ago |
20-66658 20 days ago |
20-66051 20 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 |
14-4675 14 days ago |
15-3300 15 days ago |
15-2693 15 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 |
13-83903 13 days ago |
13-83956 13 days ago |
18-65065 18 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 |
13-68473 13 days ago |
13-68549 13 days ago |
13-67942 13 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 |
13-61065 13 days ago |
13-61128 13 days ago |
13-61764 13 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 |
13-60567 13 days ago |
13-67225 13 days ago |
13-66618 13 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 |
13-60478 13 days ago |
13-67090 13 days ago |
13-66483 13 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 |
13-58258 13 days ago |
13-58258 13 days ago |
13-58041 13 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 |
13-55034 13 days ago |
13-55094 13 days ago |
15-71124 15 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 |
13-36750 13 days ago |
13-74696 13 days ago |
13-74932 13 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 |
13-30141 13 days ago |
14-62457 14 days ago |
17-69250 17 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 |
13-30139 13 days ago |
20-33900 20 days ago |
20-33293 20 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 |
13-25975 13 days ago |
13-26050 13 days ago |
13-25443 13 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 |
13-16920 13 days ago |
13-16979 13 days ago |
20-48115 20 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 |
13-1066 13 days ago |
15-67918 15 days ago |
15-67455 15 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 |
12-85298 12 days ago |
13-2857 13 days ago |
16-58689 16 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 |
12-83677 12 days ago |
12-86385 12 days ago |
32-26279 32 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 |
12-77320 12 days ago |
20-72616 20 days ago |
42-67278 42 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 |
12-73069 12 days ago |
12-73125 12 days ago |
35-66577 35 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 |
12-68224 12 days ago |
12-68482 12 days ago |
14-8879 14 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 |
12-63537 12 days ago |
12-63563 12 days ago |
26-78643 26 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 |
12-46378 12 days ago |
12-46080 12 days ago |
28-56181 28 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 |
12-39951 12 days ago |
12-42985 12 days ago |
12-42704 12 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 |
12-39467 12 days ago |
12-39492 12 days ago |
47-69567 47 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 |
12-35126 12 days ago |
18-76075 18 days ago |
34-47287 34 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 |
12-30376 12 days ago |
35-81180 35 days ago |
35-80574 35 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 |
12-30373 12 days ago |
15-70385 15 days ago |
27-34137 27 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 |
12-30367 12 days ago |
15-59756 15 days ago |
16-82684 16 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 |
12-4497 12 days ago |
22-40313 22 days ago |
22-39706 22 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 |
11-70810 11 days ago |
11-70810 11 days ago |
28-83759 28 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 |
11-65531 11 days ago |
11-65613 11 days ago |
11-65006 11 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 |
11-59033 11 days ago |
11-59093 11 days ago |
26-33360 26 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 |
11-50107 11 days ago |
11-56452 11 days ago |
52-60722 52 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 |
11-49408 11 days ago |
24-37216 24 days ago |
24-36609 24 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 |
11-43593 11 days ago |
36-64589 36 days ago |
36-63982 36 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 |
11-43202 11 days ago |
14-67647 14 days ago |
14-67040 14 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 |
11-38338 11 days ago |
11-38410 11 days ago |
13-34912 13 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 |
11-36758 11 days ago |
11-36816 11 days ago |
21-42556 21 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 |
11-30172 11 days ago |
38-81722 38 days ago |
38-82904 38 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 |
11-30161 11 days ago |
12-6566 12 days ago |
12-5959 12 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 |
11-30160 11 days ago |
12-2808 12 days ago |
12-2201 12 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 |
11-15145 11 days ago |
11-15180 11 days ago |
156-26419 156 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 |
11-14580 11 days ago |
12-80086 12 days ago |
12-84776 12 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 |
11-6252 11 days ago |
11-21827 11 days ago |
17-250 17 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 |
11-6071 11 days ago |
11-6230 11 days ago |
59-32731 59 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 |
10-86202 10 days ago |
11-67465 11 days ago |
11-66858 11 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 |
10-82684 10 days ago |
11-70650 11 days ago |
11-70050 11 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 |
10-82292 10 days ago |
12-84174 12 days ago |
19-55612 19 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 |
10-81173 10 days ago |
10-85086 10 days ago |
28-55382 28 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 |
10-69939 10 days ago |
10-72216 10 days ago |
10-71680 10 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 |
10-68765 10 days ago |
10-68765 10 days ago |
10-68159 10 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 |
10-57052 10 days ago |
10-57052 10 days ago |
10-56446 10 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 |
10-30385 10 days ago |
32-46336 32 days ago |
32-56950 32 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 |
10-30289 10 days ago |
33-753 33 days ago |
33-3264 33 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 |
10-30277 10 days ago |
11-21288 11 days ago |
11-23918 11 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 |
10-28118 10 days ago |
10-76738 10 days ago |
10-76133 10 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 |
10-7493 10 days ago |
10-7553 10 days ago |
34-65125 34 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 |
10-5133 10 days ago |
10-5194 10 days ago |
28-2171 28 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 |
10-5097 10 days ago |
36-47665 36 days ago |
36-47058 36 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 |
9-74216 9 days ago |
9-74271 9 days ago |
9-74051 9 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 |
9-51619 9 days ago |
10-36737 10 days ago |
10-36130 10 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 |
9-50446 9 days ago |
9-50504 9 days ago |
14-62214 14 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 |
9-47798 9 days ago |
9-57265 9 days ago |
13-42414 13 days |
| 37928 |
AlexeyMilovanov author:AlexeyMilovanov |
refactor(Computability.Encoding): unbundle Γ and remove FinEncoding |
This PR unbundles the alphabet `Γ` from the `Encoding` structure and completely removes `FinEncoding`.
`Encoding`: The alphabet `Γ` is now an explicit parameter: `structure Encoding (α : Type u) (Γ : Type v)`.
`FinEncoding`: Removed. Finiteness is now handled via standard typeclasses (e.g., `[Fintype Γ] (e : Encoding α Γ)`).
Combinators: Functions like `finEncodingPair` are simplified to `encodingPair`, dropping the `fin` prefix and `[Fintype]` requirements where no longer needed.
Downstream: Mechanically updated `Mathlib.Computability` and `Mathlib.ModelTheory` to pass the explicit `Γ` and use `[Fintype Γ]` where `FinEncoding` was previously required.
|
new-contributor |
30/67 |
Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean |
2 |
5 |
['github-actions', 'vihdzp'] |
nobody |
9-37482 9 days ago |
9-82833 9 days ago |
9-82226 9 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 |
9-29969 9 days ago |
19-55785 19 days ago |
19-55382 19 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 |
9-29967 9 days ago |
19-43463 19 days ago |
19-42856 19 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 |
9-29966 9 days ago |
10-29681 10 days ago |
10-36153 10 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 |
9-14655 9 days ago |
9-14713 9 days ago |
21-3896 21 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 |
9-11358 9 days ago |
10-67457 10 days ago |
10-66850 10 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 |
8-83420 8 days ago |
8-83478 8 days ago |
44-39713 44 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 |
8-71182 8 days ago |
15-72220 15 days ago |
19-31864 19 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 |
8-67652 8 days ago |
8-69319 8 days ago |
8-71494 8 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 |
8-64665 8 days ago |
8-64725 8 days ago |
8-64966 8 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 |
8-50786 8 days ago |
8-50844 8 days ago |
14-17688 14 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 |
8-49978 8 days ago |
8-50029 8 days ago |
24-20221 24 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 |
8-39303 8 days ago |
8-57343 8 days ago |
8-58537 8 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 |
8-36615 8 days ago |
8-53635 8 days ago |
8-53028 8 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 |
8-29884 8 days ago |
30-47333 30 days ago |
51-1738 51 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 |
8-29882 8 days ago |
44-46938 44 days ago |
44-46331 44 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 |
8-17156 8 days ago |
8-17665 8 days ago |
8-17058 8 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 |
8-1869 8 days ago |
15-38557 15 days ago |
15-38528 15 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 |
7-79739 7 days ago |
8-52249 8 days ago |
21-41923 21 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 |
7-78062 7 days ago |
7-78126 7 days ago |
7-78107 7 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 |
7-75816 7 days ago |
7-75610 7 days ago |
45-83461 45 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 |
7-68461 7 days ago |
7-68522 7 days ago |
59-48215 59 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 |
7-68425 7 days ago |
9-5505 9 days ago |
9-4899 9 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 |
7-67363 7 days ago |
11-81742 11 days ago |
11-83513 11 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 |
7-59567 7 days ago |
7-59624 7 days ago |
7-62162 7 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 |
7-44707 7 days ago |
7-65287 7 days ago |
8-40574 8 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 |
7-39672 7 days ago |
7-39738 7 days ago |
7-39131 7 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 |
7-39163 7 days ago |
7-39187 7 days ago |
10-50917 10 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 |
7-35331 7 days ago |
7-67106 7 days ago |
11-14868 11 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 |
7-30387 7 days ago |
36-23767 36 days ago |
36-78275 36 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 |
7-30386 7 days ago |
97-47492 97 days ago |
97-46885 97 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 |
7-30385 7 days ago |
81-52295 81 days ago |
93-10703 93 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 |
7-30378 7 days ago |
30-19427 30 days ago |
30-24209 30 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 |
7-29887 7 days ago |
32-69912 32 days ago |
46-9495 46 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 |
7-29885 7 days ago |
34-30327 34 days ago |
34-29720 34 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 |
7-29884 7 days ago |
19-40097 19 days ago |
21-6022 21 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 |
7-29876 7 days ago |
9-84091 9 days ago |
9-83710 9 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 |
7-2372 7 days ago |
8-35784 8 days ago |
21-62664 21 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 |
6-85649 6 days ago |
6-85670 6 days ago |
11-8100 11 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 |
6-78334 6 days ago |
6-79474 6 days ago |
6-78969 6 days |
| 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 |
6-76197 6 days ago |
6-83541 6 days ago |
11-86147 11 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 |
6-73540 6 days ago |
13-30491 13 days ago |
24-66767 24 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 |
6-71779 6 days ago |
6-71807 6 days ago |
26-26237 26 days |
| 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 |
6-58270 6 days ago |
8-37213 8 days ago |
19-38848 19 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 |
6-55241 6 days ago |
15-65686 15 days ago |
29-8148 29 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 |
6-45747 6 days ago |
7-42278 7 days ago |
7-43288 7 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 |
6-40627 6 days ago |
6-40365 6 days ago |
20-56740 20 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 |
6-30387 6 days ago |
33-27919 33 days ago |
33-27312 33 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 |
6-29926 6 days ago |
45-9584 45 days ago |
45-8977 45 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 |
6-29924 6 days ago |
38-30356 38 days ago |
38-29749 38 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 |
6-29924 6 days ago |
36-67826 36 days ago |
36-67219 36 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 |
6-29922 6 days ago |
19-65853 19 days ago |
20-19241 20 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 |
6-29919 6 days ago |
18-83582 18 days ago |
18-82975 18 days |
| 37718 |
SabrinaJewson author:SabrinaJewson |
feat(Order): add conversions from `Std` order typeclasses to Mathlib ones |
`{Preorder, PartialOrder, LinearOrder}.ofStd` exist to facilitate convenient translation from `Std` order typeclasses to Mathlib ones.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
366/0 |
Mathlib.lean,Mathlib/Order/Std.lean,MathlibTest/OrderOfStd.lean |
3 |
2 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
6-29918 6 days ago |
14-33297 14 days ago |
14-33183 14 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 |
6-18703 6 days ago |
6-18767 6 days ago |
6-19321 6 days |
| 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 |
6-17251 6 days ago |
20-61723 20 days ago |
35-58985 35 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 |
6-11574 6 days ago |
6-73724 6 days ago |
38-76513 38 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 |
6-7061 6 days ago |
6-7122 6 days ago |
6-7609 6 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 |
5-83196 5 days ago |
9-75689 9 days ago |
38-19985 38 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 |
5-81115 5 days ago |
5-85434 5 days ago |
5-86191 5 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 |
5-77597 5 days ago |
11-37615 11 days ago |
40-66086 40 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 |
5-73086 5 days ago |
7-7176 7 days ago |
7-6569 7 days |
| 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 |
5-69352 5 days ago |
5-69352 5 days ago |
6-83846 6 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 |
5-68593 5 days ago |
5-75389 5 days ago |
16-21851 16 days |
| 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 |
5-64136 5 days ago |
11-3457 11 days ago |
11-5932 11 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 |
5-62471 5 days ago |
6-77144 6 days ago |
6-76690 6 days |
| 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 |
5-58461 5 days ago |
5-58519 5 days ago |
9-62123 9 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 |
5-53659 5 days ago |
7-74618 7 days ago |
7-74011 7 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 |
5-52583 5 days ago |
5-52583 5 days ago |
14-71371 14 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 |
5-51263 5 days ago |
5-51294 5 days ago |
5-50703 5 days |
| 37865 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): Edge cut of `Graph` |
This PR introduces
- `edgeCut`: A function on set of vertices that returns the set of edges with exactly one end in the set.
- `IsEdgeCut`: A predicate for set of edges that promises it is `edgeCut` of some set.
- `IsBridge`: An edge `e` is a bridge iff it is a singleton edge cut.
- `IsBond`: An edge Set `B` is bond iff it is minimal nonempty edge cut.
---
- [x] depends on: #35879
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
194/0 |
Mathlib/Combinatorics/Graph/Connected/EdgeCut.Lean,Mathlib/Combinatorics/Graph/Subgraph.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
5-48262 5 days ago |
5-65919 5 days ago |
5-65750 5 days |
| 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 |
5-46076 5 days ago |
5-60154 5 days ago |
11-39332 11 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 |
5-43642 5 days ago |
5-43642 5 days ago |
11-21728 11 days |
| 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 |
5-29818 5 days ago |
74-33892 74 days ago |
77-46711 77 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 |
5-29816 5 days ago |
29-60867 29 days ago |
29-60260 29 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 |
5-29813 5 days ago |
7-28270 7 days ago |
18-63524 18 days |
| 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 |
5-29811 5 days ago |
6-47554 6 days ago |
6-49835 6 days |
| 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 |
5-29809 5 days ago |
6-50055 6 days ago |
6-49450 6 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 |
5-29806 5 days ago |
6-61480 6 days ago |
6-60873 6 days |
| 38092 |
SnirBroshi author:SnirBroshi |
chore(Order/Defs/Unbundled): deprecate `def Symmetric` in favor of `class Std.Symm` |
---
[Mathlib's `def Symmetric`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#Symmetric)
[Core's `class Std.Symm`](https://leanprover-community.github.io/mathlib4_docs/Init/Core.html#Std.Symm)
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Relation.20properties.20duplication/near/544638270)
[](https://gitpod.io/from-referrer/)
|
t-order |
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 |
5-25163 5 days ago |
5-28331 5 days ago |
5-31320 5 days |
| 37400 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Acyclic): endpoints of a path have at most one neighbor in the path |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
15/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
5 |
['Rida-Hamadani', 'Ruben-VandeVelde', 'SnirBroshi', 'github-actions'] |
nobody |
5-24647 5 days ago |
21-24211 21 days ago |
21-23604 21 days |
| 38098 |
astrainfinita author:astrainfinita |
chore: make `SMul.comp.smul` `implicit_reducible` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
2/1 |
Mathlib/Algebra/Group/Action/Defs.lean |
1 |
3 |
['astrainfinita', 'github-actions', 'leanprover-radar'] |
nobody |
5-15264 5 days ago |
5-20138 5 days ago |
5-19531 5 days |
| 34298 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): Integral over Ioi tends to zero |
This PR proves that if `f` is integrable on `Ioi a`, then `∫ x in Ioi (b i), f x ∂μ` tends to zero as `b i` tends to infinity. This is an easy corollary of `intervalIntegral_tendsto_integral_Ioi`.
---
- [x] depends on #34197
- [x] depends on #34289
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
91/1 |
Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean |
2 |
30 |
['CoolRmal', 'EtienneC30', 'github-actions', 'mcdoll', 'sgouezel'] |
EtienneC30 assignee:EtienneC30 |
5-7736 5 days ago |
5-7736 5 days ago |
62-23501 62 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 |
5-2583 5 days ago |
37-14603 37 days ago |
37-13996 37 days |
| 38055 |
felixpernegger author:felixpernegger |
feat(Topology/EMetricSpace): add r-variation |
Redoing #37007 (I had accidently deleted my fork which nuked the PR).
See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/p-variation for discussion.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-analysis
|
408/0 |
Mathlib.lean,Mathlib/Topology/EMetricSpace/RVariation.lean |
2 |
2 |
['felixpernegger', 'github-actions'] |
nobody |
4-85680 4 days ago |
5-964 5 days ago |
5-751 5 days |
| 37959 |
artie2000 author:artie2000 |
feat(LinearAlgebra/Dimension/Free): lemmas about finrank |
* Division variant of tower law
* Isomorphic to base ring iff rank is one
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
34/9 |
Mathlib/LinearAlgebra/Dimension/Free.lean |
1 |
4 |
['artie2000', 'github-actions', 'themathqueen'] |
nobody |
4-78875 4 days ago |
4-78935 4 days ago |
8-7576 8 days |
| 37420 |
artie2000 author:artie2000 |
refactor: change definitions to avoid `ConvexCone` |
Change the definitions of `PointedCone.positive` and `PointedCone.closure` to avoid mentioning `ConvexCone`.
This PR is part of a series deprecating `ConvexCone`: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Replacing.20.60ConvexCone.60.20with.20.60PointedCone.60/with/582738985
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
maintainer-merge
|
10/4 |
Mathlib/Analysis/Convex/Cone/Closure.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean |
2 |
3 |
['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'ooovi', 'vihdzp'] |
nobody |
4-77831 4 days ago |
4-77795 4 days ago |
20-11351 20 days |
| 37191 |
artie2000 author:artie2000 |
chore(Geometry/Convex/Cone/Pointed): clean up variables |
* Remove variable overwrites by changing `variable` declarations and renaming variables
* Rename variables to maintain rough type-consistency within the file
* Reorganise sections in order of increasing typeclass strength
* Bring explicit/implicit variables in line with convention
This PR doesn't change any declarations beyond changing variable explicitness.
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry |
148/129 |
Mathlib/Geometry/Convex/Cone/Pointed.lean |
1 |
7 |
['YaelDillies', 'artie2000', 'github-actions', 'martinwintermath', 'mathlib-merge-conflicts'] |
YaelDillies assignee:YaelDillies |
4-76058 4 days ago |
4-76111 4 days ago |
23-78148 23 days |
| 32692 |
WilliamCoram author:WilliamCoram |
feat: define multivariate restricted power series |
We define multivariate restricted power series over a normed ring R, and show the properties that they form a ring when R has the ultrametric property.
This work generalises my previous work in #26089 which will need to be refactored.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-number-theory
new-contributor
|
137/0 |
Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean |
3 |
43 |
['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts'] |
alreadydone assignee:alreadydone |
4-71996 4 days ago |
4-72056 4 days ago |
22-85111 22 days |
| 38120 |
eric-wieser author:eric-wieser |
refactor(Lie/Graded): remove a redundant assumption |
The equality pattern can be helpful when working with families of types, but provides little value when working with families of submodules. Indeed, the only caller passes `rfl`, and any family implementing this interface can use `let +generalize k := i + j` if they really find it useful.
Also adds an implementation note that remarks the design is divergent from GradedModule and GradedMonoid.
I think we should correct this divergence, but it's not at all urgent.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
9/5 |
Mathlib/Algebra/Lie/Graded.lean |
1 |
1 |
['github-actions'] |
nobody |
4-68912 4 days ago |
4-69888 4 days ago |
4-69281 4 days |
| 26735 |
Raph-DG author:Raph-DG |
feat(AlgebraicGeometry): The codimension of a point of a scheme is equal to the krull dimension of the stalk |
In this PR we show that the codimension of a point in a scheme is equal to the krull dimension of the local ring at that point, as in stacks 02IZ.
---
- [x] depends on: #26204 [For the notion of codimension, here we are using the coheight in the specialization order. ]
- [x] depends on: #26225
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
126/0 |
Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Topology/Continuous.lean,Mathlib/Topology/Irreducible.lean,Mathlib/Topology/KrullDimension.lean,Mathlib/Topology/Maps/Basic.lean,Mathlib/Topology/Sets/Closeds.lean,Mathlib/Topology/Sober.lean |
9 |
70 |
['Raph-DG', 'chrisflav', 'erdOne', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] |
adamtopaz and erdOne assignee:adamtopaz assignee:erdOne |
4-68578 4 days ago |
4-68644 4 days ago |
70-58715 70 days |
| 38123 |
grunweg author:grunweg |
chore: three more items for the overview |
All of these are mentioned in the stacks project, hence might sensibly be linked elsewhere: let's add them to the overview.
---
If these make no sense, please push back on this: I'm not an expert in these areas!
[](https://gitpod.io/from-referrer/)
|
documentation |
3/0 |
docs/overview.yaml |
1 |
1 |
['github-actions'] |
nobody |
4-67776 4 days ago |
4-67840 4 days ago |
4-67233 4 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 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mcdoll'] |
ADedecker assignee:ADedecker |
4-66485 4 days ago |
19-40128 19 days ago |
24-12859 24 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.
This PR was assisted by LLMs (Aristotle and Gemini).
---
[](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 |
4-53484 4 days ago |
9-83895 9 days ago |
9-83288 9 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 the 4 classes `{Mul/Add}{Left/Right}ReflectLE` 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
maintainer-merge
label:t-algebra$ |
76/69 |
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/Algebra/Order/Positive/Ring.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean |
10 |
14 |
['JovanGerb', 'SnirBroshi', 'github-actions', 'leanprover-radar', 'vihdzp'] |
kim-em assignee:kim-em |
4-50774 4 days ago |
4-58724 4 days ago |
21-8003 21 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 |
4 |
['euprunin', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
4-50113 4 days ago |
15-80684 15 days ago |
34-70605 34 days |
| 36774 |
euprunin author:euprunin |
chore: replace long terminal `rw […]`:s (≥4 lemmas) with bare `simp`:s |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Finset.lcm_union`: unchanged 🎉
* `Finset.gcd_union`: unchanged 🎉
* `Polynomial.derivative_eval₂_C`: unchanged 🎉
* `Polynomial.expand_pow`: unchanged 🎉
* `Cardinal.mk_real`: unchanged 🎉
* `Real.log_zpow`: unchanged 🎉
* `Matroid.eRank_le_encard_add_eRk_compl`: unchanged 🎉
* `DFinsupp.single_tsub`: unchanged 🎉
* `EReal.inv_neg`: unchanged 🎉
* `Finsupp.toMultiset_map`: unchanged 🎉
* `Finsupp.single_tsub`: unchanged 🎉
* `Multiset.countP_map`: unchanged 🎉
* `Nat.ascFactorial_eq_factorial_mul_choose'`: unchanged 🎉
* `Real.sign_intCast`: unchanged 🎉
* `Real.volume_eball`: unchanged 🎉
* `Real.volume_closedEBall`: unchanged 🎉
* `LFunction_ne_zero_of_not_quadratic_or_ne_one`: 295 ms before, 152 ms after 🎉
* `hasSum_one_div_nat_pow_mul_cos`: unchanged 🎉
* `inv_eq_of_aeval_divX_ne_zero`: unchanged 🎉
* `AlgebraicIndependent.aeval_comp_mvPolynomialOptionEquivPolynomialAdjoin`: unchanged 🎉
* `Ordinal.deriv_mul_eq_opow_omega0_mul`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
22/24 |
Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Expand.lean,Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Combinatorics/Matroid/Rank/ENat.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finsupp/Multiset.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/Data/Real/Sign.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/NumberTheory/LSeries/Nonvanishing.lean,Mathlib/NumberTheory/ZetaValues.lean,Mathlib/RingTheory/Algebraic/Basic.lean,Mathlib/RingTheory/AlgebraicIndependent/Basic.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean |
19 |
2 |
['artie2000', 'euprunin', 'github-actions'] |
nobody |
4-50102 4 days ago |
34-58628 34 days ago |
34-58021 34 days |
| 36963 |
seewoo5 author:seewoo5 |
feat(ModularForms): SL2 action and Serre derivative |
---
[](https://gitpod.io/from-referrer/)
Equivariance of Serre derivative under SL2 action. More precisely, $$\partial_k (F|_k \gamma) = (\partial_{k} F)|_{k+2} \gamma$$. From [Sphere Packing Project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean). |
t-number-theory
large-import
|
164/1 |
Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/NumberTheory/ModularForms/Derivative.lean |
2 |
8 |
['github-actions', 'seewoo5', 'tb65536', 'wwylele'] |
tb65536 assignee:tb65536 |
4-46155 4 days ago |
4-46155 4 days ago |
5-85515 5 days |
| 37598 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Coloring): add lemmas about coloring and maps |
---
Idea from this Zulip thread: [graph theory>Second Order Monadic Logic for Graph](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Second.20Order.20Monadic.20Logic.20for.20Graph/with/583013775)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
37/13 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
18 |
['IvanRenison', 'SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
4-43658 4 days ago |
4-47746 4 days ago |
15-76355 15 days |
| 37045 |
edegeltje author:edegeltje |
feat(CategoryTheory/Limits): Pullback squares in cartesian monoidal categories |
This PR adds various lemmas about standard pullback squares in categories with chosen finite products.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
351/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/CartesianMonoidal.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean |
3 |
40 |
['FernandoChu', 'dagurtomas', 'edegeltje', 'github-actions', 'joelriou', 'robin-carlier'] |
joelriou assignee:joelriou |
4-39104 4 days ago |
4-39104 4 days ago |
19-42362 19 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 |
39 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-merge-conflicts'] |
robin-carlier assignee:robin-carlier |
4-31846 4 days ago |
4-31846 4 days ago |
68-59972 68 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'] |
nobody |
4-30386 4 days ago |
31-30734 31 days ago |
33-49330 33 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'] |
riccardobrasca assignee:riccardobrasca |
4-29924 4 days ago |
30-80458 30 days ago |
30-79851 30 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'] |
joelriou assignee:joelriou |
4-29923 4 days ago |
18-66248 18 days ago |
18-65641 18 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'] |
dagurtomas assignee:dagurtomas |
4-29922 4 days ago |
14-51123 14 days ago |
14-50516 14 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'] |
dagurtomas assignee:dagurtomas |
4-29922 4 days ago |
14-37899 14 days ago |
14-40487 14 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'] |
dagurtomas assignee:dagurtomas |
4-29920 4 days ago |
13-3649 13 days ago |
13-4129 13 days |
| 38131 |
eric-wieser author:eric-wieser |
refactor: deprecate `Finset.affineCombinationSingleWeights` |
This is much more verbose than `Pi.single _ 1`, and the latter has more theorems.
---
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
63/70 |
Mathlib/Analysis/Convex/Between.lean,Mathlib/Analysis/Convex/Side.lean,Mathlib/Analysis/Convex/StrictCombination.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/Geometry/Euclidean/Sphere/SecondInter.lean,Mathlib/LinearAlgebra/AffineSpace/Ceva.lean,Mathlib/LinearAlgebra/AffineSpace/Combination.lean,Mathlib/LinearAlgebra/AffineSpace/Independent.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
9 |
1 |
['github-actions', 'wwylele'] |
jsm28 assignee:jsm28 |
4-29908 4 days ago |
4-50527 4 days ago |
4-50940 4 days |
| 38095 |
astrainfinita author:astrainfinita |
perf(Algebra/*/{InjSurj, TransferInstance}): reduce instance `Expr`s |
---
We can not just use `fast_instance%`, because `fast_instance%` reduces instances into constructor applications, but their arguments may still not be reduced.
This PR continues the work from #13795.
Original PR: https://github.com/leanprover-community/mathlib4/pull/13795
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/instance.20unfolding.20phenomenon/) |
t-algebra label:t-algebra$ |
401/219 |
Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/TransferInstance.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/TransferInstance.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/Group/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/GroupWithZero/Action/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Ring/InjSurj.lean,Mathlib/Algebra/Ring/TransferInstance.lean,Mathlib/Util/TermReduce.lean,scripts/noshake.json |
16 |
7 |
['astrainfinita', 'github-actions', 'leanprover-radar'] |
nobody |
4-29338 4 days ago |
5-19733 5 days ago |
5-21656 5 days |
| 38141 |
Jun2M author:Jun2M |
feat(Order/Partition): Partition induced by symmetric, transitive relation |
We introduce a constructor for Partition from a symmetric, transitive relation, with `copy` function baked into the definition.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-order |
41/7 |
Mathlib/Order/Partition/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
4-27211 4 days ago |
4-27278 4 days ago |
4-26671 4 days |
| 38097 |
NoahW314 author:NoahW314 |
feat: add `IndiscreteTopology` instances |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
24/0 |
Mathlib/Topology/Homotopy/Contractible.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Separation/Connected.lean |
4 |
5 |
['NoahW314', 'github-actions', 'scholzhannah', 'vihdzp'] |
nobody |
4-23097 4 days ago |
4-73262 4 days ago |
5-5294 5 days |
| 38142 |
SnirBroshi author:SnirBroshi |
feat(Order/SuccPred/CompleteLinearOrder): generalize `csSup_mem_of_not_isSuccLimit` |
Given `s.Nonempty` and `BddAbove s` we can conclude `sSup s ∈ s` using either:
- `csSup_mem_of_not_isSuccPrelimit`, given `ConditionallyCompleteLinearOrder` and `¬IsSuccPrelimit (sSup s)`
- `csSup_mem_of_not_isSuccLimit`, given `ConditionallyCompleteLinearOrderBot` and `¬IsSuccLimit (sSup s)`
We generalize both to a theorem that requires `ConditionallyCompleteLinearOrder` and `¬IsSuccLimit (sSup s)`.
---
Should we also deprecate the 8 theorems that require `¬IsSuccPrelimit` and now use `mt`?
[](https://gitpod.io/from-referrer/)
|
t-order |
60/33 |
Mathlib/Order/SuccPred/CompleteLinearOrder.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
4-21863 4 days ago |
4-25344 4 days ago |
4-24737 4 days |
| 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
|
85/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Star.lean |
2 |
38 |
['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
4-18395 4 days ago |
5-21959 5 days ago |
7-19617 7 days |
| 33392 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/Transvection/Generation): non-exceptional case in Dieudonné's theorem |
We prove the theorem of [Dieudonné-1955][J. Dieudonné, “Sur les générateurs
des groupes classiques”].
Let `K` be a division ring and `V` be a `K`-module.
* `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_eq_one`:
If `e.fixedReduce = 1`, then `e` can be written as the product
of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections
and one dilatransvection.
This is the first part of the non-exceptional case in Dieudonné's theorem.
(This statement is not interesting when `e = 1`.)
* `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_ne_smul_id`:
If `e.fixedReduce` is not a homothety, then `e` can be written as the product
of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections and one dilatransvection.
This is the second part of the non-exceptional case in Dieudonné's theorem.
* `LinearEquiv.IsExceptional`:
A linear equivalence `e : V ≃ₗ[K] V` is exceptional if `1 < finrank K (V ⧸ e.fixedSubmodule)`
and if `e.fixedReduce` is a nontrivial homothety.
* `LinearEquiv.mem_dilatransvections_pow_of_notIsExceptional`:
This is the non-exceptional case in Dieudonné's theorem,
as a combination of the two preceding statements.
---
- [x] depends on: #33348
- [x] depends on: #33282
- [x] depends on: #33347
- [ ] depends on: #33387
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
555/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean |
5 |
11 |
['AntoineChambert-Loir', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
joelriou assignee:joelriou |
4-7864 4 days ago |
4-7925 4 days ago |
24-63734 24 days |
| 38147 |
vihdzp author:vihdzp |
chore: deprecate `Cardinal.zero_le` |
This is a duplicate of `zero_le` in the root namespace.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
9/10 |
Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Order.lean |
2 |
2 |
['github-actions', 'vihdzp'] |
nobody |
4-7613 4 days ago |
4-10121 4 days ago |
4-10249 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 |
28/0 |
Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Sober.lean |
2 |
9 |
['Raph-DG', 'chrisflav', 'github-actions', 'grunweg', 'vihdzp'] |
PatrickMassot assignee:PatrickMassot |
4-3070 4 days ago |
4-3092 4 days ago |
7-32619 7 days |
| 35569 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): deprecate `injectiveSeminorm` |
This PR:
* Deprecates `PiTensorProduct.injectiveSeminorm` and supporting lemmas.
* Moves the theory of `liftEquiv` from InjectiveSeminorm.lean to ProjectiveSeminorm.lean.
No changes are introduced beyond adding deprecation notices, adapting docstrings, and moving material between files.
The PR leaves InjectiveSeminorm.lean almost empty. A new implementation of `injectiveSeminorm`, one which reflects the common mathematical definition, is to be done.
This is the third in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633).
---
- [ ] depends on: #35567
- [ ] depends on: #35568
Deprecations:
- injectiveSeminorm
- dualSeminorms_bounded
- injectiveSeminorm_apply
- norm_eval_le_injectiveSeminorm
- injectiveSeminorm_le_projectiveSeminorm
- injectiveSeminorm_tprod_le
Preliminary work toward a reimplementation is at #33969.
I've added Davood and myself to the "Authors" field, as we have now significantly refactored this module.
Co-authored-by: Davood H. T. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
222/233 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
4-2557 4 days ago |
4-2581 4 days ago |
20-56690 20 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 |
5 |
['github-actions', 'joneugster', 'mathlib-dependent-issues'] |
nobody |
3-85592 3 days ago |
18-73054 18 days ago |
18-72779 18 days |
| 37435 |
ADedecker author:ADedecker |
feat: ContinuousLinearMap.pi as a continuous linear equivalence |
---
- [x] depends on: #37614
[](https://gitpod.io/from-referrer/)
|
t-topology |
119/0 |
Mathlib/Topology/Algebra/Module/Spaces/CompactConvergenceCLM.lean,Mathlib/Topology/Algebra/Module/Spaces/ContinuousLinearMap.lean,Mathlib/Topology/Algebra/Module/Spaces/PointwiseConvergenceCLM.lean,Mathlib/Topology/Algebra/Module/Spaces/UniformConvergenceCLM.lean |
4 |
9 |
['ADedecker', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
j-loreaux assignee:j-loreaux |
3-85343 3 days ago |
3-85404 3 days ago |
14-43848 14 days |
| 38152 |
grunweg author:grunweg |
feat: lint against new cases of the backward.inferInstanceAs.wrap.reu… |
…seSubInstances option
This marks new technical debt: it should not happen at all (and if it does, disabling the linter explicitly should be a necessary speed bump): [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Technical.20Debt.20Counters/near/586058368)
---
[](https://gitpod.io/from-referrer/)
|
tech debt
t-logic
t-linter
maintainer-merge
|
8/2 |
Mathlib/Order/OrderDual.lean,Mathlib/Tactic/Linter/Style.lean |
2 |
6 |
['JovanGerb', 'github-actions', 'grunweg'] |
nobody |
3-81239 3 days ago |
4-5521 4 days ago |
4-5016 4 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
maintainer-merge
label:t-algebra$ |
21/22 |
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 |
9 |
8 |
['JovanGerb', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] |
nobody |
3-81164 3 days ago |
4-954 4 days ago |
9-11644 9 days |
| 37214 |
Kha author:Kha |
perf(Tactic/Abel): use `mkAuxTheorem` for proof term |
Removes some duplication from types of nested proofs |
t-meta
maintainer-merge
|
4/1 |
Mathlib/Tactic/Abel.lean |
1 |
6 |
['JovanGerb', 'Kha', 'github-actions', 'joneugster', 'leanprover-radar'] |
JovanGerb assignee:JovanGerb |
3-74632 3 days ago |
25-65267 25 days ago |
25-64660 25 days |
| 37588 |
Vierkantor author:Vierkantor |
feat(Linter/DocString): ignore Verso linter errors about links and LaTeX |
I went through [the weekly linting log](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/near/582485221) and found most of the warnings come from three sources. All of these are sensical syntax in our current Markdown dialect, and should be fixed automatically by a script, instead of manually. I expect after these changes we'll be down to hundreds of linter errors rather than two thousand.
* References [between square brackets] without a following link URL. Verso has different implementations for references depending on what kind they are, and since there are a thousand references we should be using a script to fix these.
* Autolinks: bare URLs or URLs between . Autolinks are intentionally not supported by Verso but replacing every `https://...` with `[https://...](https://...)` would be too noisy.
* LaTeX blocks: Verso does have TeX blocks but with an incompatible syntax. Better to fix it with a script.
I ended up using preprocessing in addition to postprocessing to filter out errors: using the error message we can determine whether it is a reference, but for errors caused by autolinks and LaTeX blocks I couldn't figure out how to do so easily: the information about the parse error does report a string position but this is always the last character of the docstring. So instead we modify the docstring before it is passed into Verso to get rid of the offending syntax.
---
[](https://gitpod.io/from-referrer/)
|
t-linter
large-import
maintainer-merge
|
113/5 |
Mathlib/Tactic/Linter/DocString.lean,MathlibTest/DocString.lean |
2 |
18 |
['Vierkantor', 'github-actions', 'thorimur'] |
thorimur assignee:thorimur |
3-74057 3 days ago |
3-74115 3 days ago |
6-69189 6 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
maintainer-merge
|
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 |
4 |
['JovanGerb', 'bryangingechen', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
3-73924 3 days ago |
8-69904 8 days ago |
8-76531 8 days |
| 38159 |
jcommelin author:jcommelin |
chore: remove some backward.proofsInPublic |
---
[](https://gitpod.io/from-referrer/)
|
|
12/6 |
Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Computability/TuringMachine/ToPartrec.lean |
2 |
1 |
['github-actions'] |
nobody |
3-72208 3 days ago |
3-72272 3 days ago |
3-71665 3 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 |
65/3 |
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 |
3-70473 3 days ago |
13-78753 13 days ago |
15-16327 15 days |
| 36863 |
artie2000 author:artie2000 |
refactor(Algebra/Order/Ring/Ordering): unbundle `RingPreordering` |
The current design for [RingPreordering](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Ordering/Defs.html#RingPreordering) ran into issues at PR #32077. This PR unbundles [RingPreordering](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Ordering/Defs.html#RingPreordering) into a class predicate on [Subsemiring](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Ring/Subsemiring/Defs.html#Subsemiring), generalising the material on supports as far as possible.
Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Ring.20orderings.20-.20structure.20or.20predicate.3F/with/562594050
See #37298 for the analogous change to group and ring cones.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
455/87 |
Mathlib.lean,Mathlib/Algebra/Order/Ring/Ordering/Basic.lean,Mathlib/Algebra/Order/Ring/Ordering/Defs.lean,Mathlib/Algebra/Ring/Subsemiring/Support.lean |
4 |
13 |
['artie2000', 'chrisflav', 'github-actions'] |
eric-wieser assignee:eric-wieser |
3-69638 3 days ago |
3-70264 3 days ago |
28-79241 28 days |
| 36541 |
BGuillemet author:BGuillemet |
feat(CategoryTheory): define internal equivalence relations |
Define internal equivalence relations in any category `C`, as a structure on parallel pairs of morphisms.
Prove that equivalence relations on types are equivalence relations in the category of types.
Prove that kernel pairs are equivalence relations.
Define (universally) effective equivalence relations, and a associated class for categories in which every equivalence relation is effective universal.
Prove that an effective equivalence relation yields a coequalizer diagram, and that the associated projection on the "quotient" of the relation is a regular epimorphism.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
288/0 |
Mathlib.lean,Mathlib/CategoryTheory/EquivalenceRelation.lean,Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean |
3 |
12 |
['BGuillemet', 'dagurtomas', 'github-actions'] |
b-mehta assignee:b-mehta |
3-67837 3 days ago |
3-67837 3 days ago |
11-3983 11 days |
| 37997 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): generalize determinant formula to GenContFract |
Let $g$ be a `GenContFract K`.
In this PR I generalize the determinant formula for continued fractions from the simple continued fraction case
$$A_n B_{n+1} - B_n A_{n+1} = (-1)^n$$
to the generalized continued fraction product formula
$$A_n B_{n+1} - B_n A_{n+1} = (-a_0) (-a_1) \dots (-a_n)$$
- The `SimpContFract` version is still available unchanged, so this should avoid breaking existing users of the old API.
- The use of `0` as the default partial numerator in `(g.partNums.get? i).getD 0` allows product formulation that remains valid when the fraction is terminated. |
t-algebra
new-contributor
large-import
label:t-algebra$ |
55/28 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Determinant.lean |
2 |
9 |
['emlis42', 'github-actions', 'vihdzp'] |
nobody |
3-66972 3 days ago |
7-75733 7 days ago |
7-75623 7 days |
| 37975 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): AdicCompletion of local ring is local |
In this PR, we proved that AdicCompletion of local ring wrt the maximal ideal is local ring with maximal ideal equal to the map of the original maximal ideal.
Also, removing some old junk produced by myself.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
173/5 |
Mathlib/RingTheory/AdicCompletion/LocalRing.lean |
1 |
15 |
['BryceT233', 'Thmoas-Guan', 'github-actions'] |
nobody |
3-66767 3 days ago |
7-83965 7 days ago |
8-8752 8 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$ |
141/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Baer.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean |
3 |
46 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
3-66739 3 days ago |
3-66739 3 days ago |
28-31582 28 days |
| 25974 |
scholzhannah author:scholzhannah |
feat(Topology/Compactness/CompactlyCoherentSpace): compact coherentification (k-ification) |
This PR defines the notion of turning an arbitrary topological space into a compactly coherent space. Compactly coherent spaces are commonly referred to as "compactly generated spaces" or "k-spaces" in the literature while the operation of turning a space into such as space is called the "k-ification". There are however three different notions that are described with this name. To disambiguate we use the names "compactly coherent space" and "compactcoherentification" here. See [this wikipedia page](https://en.wikipedia.org/wiki/Compactly_generated_space) for an explanation of these notions.
This PR continues the work from #25318.
Original PR: https://github.com/leanprover-community/mathlib4/pull/25318
Co-authored-by: Floris van Doorn |
t-topology
large-import
|
162/5 |
Mathlib/Topology/Compactness/CompactlyCoherentSpace.lean |
1 |
6 |
['github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'scholzhannah'] |
ADedecker assignee:ADedecker |
3-65775 3 days ago |
3-67054 3 days ago |
151-44692 151 days |
| 38085 |
dagurtomas author:dagurtomas |
feat(CategoryTheory): define profunctors |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
152/0 |
Mathlib.lean,Mathlib/CategoryTheory/Profunctor/Basic.lean |
2 |
13 |
['dagurtomas', 'github-actions', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
3-60617 3 days ago |
3-67741 3 days ago |
5-29845 5 days |
| 37411 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): introduce `Monomial` |
* Introduce `Monomial` and `UnitMonomial`
* Define `Monomial.toFun` and algebraic operations on monomials: negation, inversion, multiplication.
---
- [x] depends on: #37414
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-meta
maintainer-merge
|
232/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Monomial/Basic.lean |
3 |
9 |
['github-actions', 'joneugster', 'mathlib-dependent-issues'] |
joneugster assignee:joneugster |
3-60091 3 days ago |
3-62541 3 days ago |
3-67293 3 days |
| 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
maintainer-merge
|
201/0 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean |
1 |
32 |
['github-actions', 'joneugster', 'mathlib-merge-conflicts', 'vasnesterov'] |
joneugster assignee:joneugster |
3-59968 3 days ago |
3-61853 3 days ago |
20-13481 20 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
t-combinatorics
|
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 |
3-59347 3 days ago |
17-44673 17 days ago |
28-86328 28 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
t-measure-probability
|
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 |
3-58923 3 days ago |
16-35882 16 days ago |
25-53379 25 days |
| 36910 |
Brian-Nugent author:Brian-Nugent |
feat(CategoryTheory): 4 and 5 lemmas for ComposableArrows n |
Adds versions of the 4 and 5 lemmas for morphisms in `ComposableArrows n`.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
85/2 |
Mathlib/Algebra/Homology/ExactSequence.lean,Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean,Mathlib/CategoryTheory/ComposableArrows/Basic.lean |
3 |
8 |
['Brian-Nugent', 'dagurtomas', 'erdOne', 'github-actions'] |
adamtopaz assignee:adamtopaz |
3-58853 3 days ago |
3-58853 3 days ago |
18-73403 18 days |
| 37584 |
kennethgoodman author:kennethgoodman |
feat(Data/Nat/Fib): formalize Lamé's theorem |
## Summary
Formalize [Lamé's theorem](https://en.wikipedia.org/wiki/Lam%C3%A9%27s_theorem) (1844), the founding result of computational complexity theory.
**Lamé's Theorem:** If the Euclidean algorithm on inputs `(a, b)` with `b ≤ a` takes `n + 1` division steps, then `b ≥ fib(n + 1)` and `a ≥ fib(n + 2)`.
### New definitions
- `Nat.euclidSteps`: counts the number of division steps in the Euclidean algorithm on natural number inputs.
### New theorems
- `Nat.fib_le_of_euclidSteps`: the main Lamé bound — Fibonacci lower bound on inputs given a step count.
- `Nat.euclidSteps_le_of_lt_fib`: the contrapositive — step count upper bound given a Fibonacci bound on the smaller input.
- `Nat.add_mod_le`: helper lemma that `b + a % b ≤ a` when `b ≤ a` and `0 < b`.
### Proof strategy
Induction on `n`, tracking both elements of the pair. The key insight is that each Euclidean step replaces `(a, b)` with `(b, a % b)`, and since `a ≥ b + a % b` (because `a / b ≥ 1`), the Fibonacci recurrence `fib(n+3) = fib(n+2) + fib(n+1)` matches the structure of the algorithm.
### References
- Gabriel Lamé, *Note sur la limite du nombre des divisions dans la recherche du plus grand commun diviseur entre deux nombres entiers*, Comptes rendus de l'Académie des sciences, 1844.
---
### AI usage disclosure
Per the [Mathlib AI guidelines](https://leanprover-community.github.io/contribute/index.html#use-of-ai): Claude Code (Claude Opus 4.6) was used to assist with writing the Lean 4 proof code, fixing tactic errors, and drafting this PR description. The mathematical proof (induction on step count, tracking both pair elements through the Fibonacci recurrence) was designed by hand and verified on paper before formalization. I have reviewed and understand every line of the resulting Lean code and can explain all proof steps.
---
- [x] builds cleanly (`lake build Mathlib.Data.Nat.Fib.Lame`)
- [x] no `sorry`
- [x] lines ≤ 100 characters, no trailing whitespace
- [x] `autoImplicit false`
- [x] docstrings on all public declarations |
new-contributor
LLM-generated
t-data
|
121/0 |
Mathlib.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Fib/Lame.lean,docs/1000.yaml |
5 |
24 |
['euprunin', 'github-actions', 'kennethgoodman', 'vihdzp', 'wwylele'] |
nobody |
3-58836 3 days ago |
9-73302 9 days ago |
17-28660 17 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
t-order
|
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 |
3-58661 3 days ago |
12-24009 12 days ago |
12-27220 12 days |
| 37893 |
abeldonate author:abeldonate |
feat: Module theory theorems |
Added three theorems:
- annihilator_sup
- torsionOf_eq_annihilator_span_singleton
- annihilator_eq_iInf_torsionOf
|
new-contributor
t-algebra
label:t-algebra$ |
15/0 |
Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean |
2 |
8 |
['abeldonate', 'github-actions', 'scholzhannah', 'wwylele'] |
nobody |
3-58382 3 days ago |
3-66056 3 days ago |
4-78326 4 days |
| 38171 |
emlis42 author:emlis42 |
feat(Analysis/Calculus/Deriv): add deriv_const_mul_id' |
This PR adds a simp lemma for the derivative of multiplication by a constant on the left.
In practice, `simp` is already able to simplify `fun x => x * c` and `fun x => x / c`. However, it getting stuck on `fun x => c * x` and `deriv (HMul.hMul c)`.
This PR fix this by adding a simp lemma so that `simp` can also handle `fun x => c * x` without requiring an explicit `rw [deriv_const_mul]`.
This is useful for examples such as:
```lean4
example {t : ℝ} (ht : t ≠ 0) : deriv (fun x => x ^ 2 / (2 * x)) t = 1 / 2 := by
simp (disch := first | fun_prop (disch := grind) | grind); field
example {t : ℝ} : deriv (HMul.hMul 2) t = 2 := by
simp
``` |
new-contributor
t-analysis
|
12/11 |
Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean,Mathlib/NumberTheory/Harmonic/GammaDeriv.lean,Mathlib/NumberTheory/ModularForms/DedekindEta.lean |
4 |
4 |
['emlis42', 'github-actions', 'leanprover-radar'] |
nobody |
3-56989 3 days ago |
3-62744 3 days ago |
3-62137 3 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/)
|
t-ring-theory |
6/0 |
Mathlib/RingTheory/DividedPowerAlgebra/Init.lean |
1 |
6 |
['ADedecker', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
3-56791 3 days ago |
7-39142 7 days ago |
10-54032 10 days |
| 37661 |
pion2024 author:pion2024 |
feat(Algebra/Lie/Sl2): add lemma exists_primitiveVector |
split 2 for the PR #37010 |
t-algebra
new-contributor
large-import
label:t-algebra$ |
51/1 |
Mathlib/Algebra/Lie/Sl2.lean,Mathlib/Algebra/Lie/Weights/Basic.lean |
2 |
8 |
['github-actions', 'ocfnash', 'pion2024'] |
ocfnash assignee:ocfnash |
3-56543 3 days ago |
3-58332 3 days ago |
7-55904 7 days |
| 37319 |
PrParadoxy author:PrParadoxy |
feat(Algebra/Field/Power): weaken assumptions of Odd.neg_zpow |
The lemmas `Even.neg_zpow` and `Even.neg_one_zpow` are stated assuming
`[DivisionMonoid α] [HasDistribNeg α]`. However, `Odd.neg_zpow` and
`Odd.neg_one_zpow` currently assume the stronger `[DivisionRing α]`.
This PR weakens the assumption of the `Odd` lemmas to match their `Even`
counterparts.
The lemmas are currently the only content of Mathlib.Algebra.Field.Power.
That files exists in order to "define Field with minimal imports". But after this PR,
Power.lean does not rely on Mathlib.Algebra.Field.Defs any more. We hence deprecate
"Field.Power" and move the two statements to Mathlib.Algebra.Ring.Int.Parity.
---
Examples:
```
-- these all work:
example (z : ℤ) (h : Even z) : (-1 : ℂ)^z = 1 := Even.neg_one_zpow h
example (z : ℤ) (h : Even z) : (-1 : unitary ℂ)^z = 1 := Even.neg_one_zpow h
example (z : ℤ) (h : Odd z) : (-1 : ℂ)^z = -1 := Odd.neg_one_zpow h
-- but this fails without the PR:
example (z : ℤ) (h : Odd z) : (-1 : unitary ℂ)^z = -1 := Odd.neg_one_zpow h
```
[](https://gitpod.io/from-referrer/) |
new-contributor
t-algebra
label:t-algebra$ |
24/29 |
Mathlib/Algebra/Field/Power.lean,Mathlib/Algebra/Ring/Int/Parity.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean |
3 |
8 |
['eric-wieser', 'github-actions', 'goliath-klein', 'joelriou'] |
joelriou assignee:joelriou |
3-55133 3 days ago |
3-56683 3 days ago |
16-27485 16 days |
| 38178 |
Brian-Nugent author:Brian-Nugent |
chore(Topology): redefine TopologicalSpace.Opens.mapMapIso using OrderIso.equivalence |
This was a TODO.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
20/9 |
Mathlib/Topology/Category/TopCat/Opens.lean |
1 |
1 |
['github-actions'] |
nobody |
3-54396 3 days ago |
3-54459 3 days ago |
3-53852 3 days |
| 37982 |
chrisflav author:chrisflav |
feat(RingTheory/Etale): descent along faithfully flat maps |
From Pi1.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
123/1 |
Mathlib.lean,Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Descent.lean |
3 |
5 |
['chrisflav', 'github-actions', 'robin-carlier'] |
mattrobball assignee:mattrobball |
3-53362 3 days ago |
3-53362 3 days ago |
7-75907 7 days |
| 38180 |
chrisflav author:chrisflav |
chore(CategoryTheory/Limits): limit properties of `MorphismProperty.Under` |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
134/0 |
Mathlib/CategoryTheory/Limits/MorphismProperty.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean |
2 |
1 |
['github-actions'] |
nobody |
3-52176 3 days ago |
3-52254 3 days ago |
3-51647 3 days |
| 38045 |
kbuzzard author:kbuzzard |
perf(Analysis/CStarAlgebra/Matrix): speed up simp call |
Remove a lemma from the simp set to stop typeclass inference taking an expensive wrong turn.
---
[](https://gitpod.io/from-referrer/)
The theorem `Matrix.l2_opNorm_diagonal` currently takes 66018097 mHeartbeats to elaborate (a couple of seconds, even on a fast machine). The reason for this is the final `simp` call, which takes 2/3 of the time, and the reason it takes so long is this misstep:
```
[Meta.synthInstance] [17395634.000000] ❌️ Nontrivial (EuclideanSpace 𝕜 n →L[𝕜] EuclideanSpace 𝕜 n) ▶
```
This can't be proved (n can have size 0) but `simp` is darn well going to try anyway. Unfolding the profiler trace shows over 1000 lines for this failure (there are many many ways to prove that something is `Nontrivial` and it takes a long time for them all to fail). To add insult to injury, `simp` attempts to prove this twice! These two failed proof attempts eat up over 50% of the total time spent on this proof.
The simplifier attempts to prove this because it wants to apply `CStarRing.norm_of_mem_unitary`, which needs nontriviality as a hypothesis. If we remove this lemma from the `simp` set and instead add `norm_coe_unitary` then this speeds up elaboration of this proof by a factor of slightly more than 2, and also has positive effects elsewhere in the library.
I noticed this because a change in the algebra hierarchy which I'm experimenting with, made this proof start timing out. I'm fixing up my change because of this but having diagnosed the poor performance I thought there was no harm in fixing it anyway. |
t-analysis |
1/1 |
Mathlib/Analysis/CStarAlgebra/Basic.lean |
1 |
13 |
['github-actions', 'grunweg', 'j-loreaux', 'kbuzzard', 'leanprover-radar'] |
j-loreaux assignee:j-loreaux |
3-50086 3 days ago |
3-52005 3 days ago |
4-13890 4 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 |
4 |
['Multramate', 'github-actions', 'tb65536', 'wwylele'] |
riccardobrasca assignee:riccardobrasca |
3-49322 3 days ago |
13-42679 13 days ago |
13-42074 13 days |
| 38049 |
WilliamCoram author:WilliamCoram |
feat: lemmas towards showing gaussNorm on MvPowerSeries is an absolute value |
We prove lemmas: ``gaussNorm_mul_le`` and ``gaussNorm_le_mul`` which will allow us to show it is an absolute value on Mv restricted power series.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
144/1 |
Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean |
1 |
4 |
['WilliamCoram', 'github-actions'] |
nobody |
3-49049 3 days ago |
6-59025 6 days ago |
6-58418 6 days |
| 37674 |
gasparattila author:gasparattila |
feat(Topology/Sets): separation properties of `(Nonempty)Compacts` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
97/6 |
Mathlib/Topology/Sets/VietorisTopology.lean |
1 |
13 |
['gasparattila', 'github-actions', 'mathlib-merge-conflicts', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
3-44925 3 days ago |
5-59218 5 days ago |
14-18688 14 days |
| 38185 |
Jun2M author:Jun2M |
feat(Order/Partition): operations over Frame |
This PR introduces:
* `Partition.induce`: The induce of a partition by a frame element.
* `Partition.disjUnion`: The disjoint union of two partitions.
* `Partition.bind`: The finer partition obtained by family of partitions for each part of the original partition.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-order |
89/11 |
Mathlib/Order/Partition/Basic.lean,Mathlib/Order/SupIndep.lean |
2 |
1 |
['github-actions'] |
nobody |
3-44597 3 days ago |
3-44669 3 days ago |
3-44062 3 days |
| 38182 |
tb65536 author:tb65536 |
feat(RingTheory/Spectrum/Prime/Noetherian): rank of an Artinian ring over a field |
This PR proves that the rank of an Artinian ring over a field is the sum of the ranks of the localizations.
This will be applied in #37130 to prove the ramification-inertia formula (this is where the sum first shows up).
I had to upgrade the Finite instance on the prime spectrum of an Artinian ring to a Fintype instance in order to write down the sum, but this should be fine since this fintype instance can already be inferred from heavier imports: https://live.lean-lang.org/#codez=JYWwDg9gTgLgBAWQIYwBYBtgCMBQOB2E%2BAxhOAK4xJboCmctAHkuHXAN4BKcAXHACoBPMLQBUAXzgBtAMJkQnYPgDmcTgF1pASQDOAQVhLgSfIpVrNfAGJKYw%2BgAoAClFC0AyiOIwo5EGoBKXgBeHDg4JQAzWigtfB0qElocIA
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
20/10 |
Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/OrderOfVanishing/Noetherian.lean,Mathlib/RingTheory/Spectrum/Prime/Noetherian.lean |
3 |
2 |
['github-actions', 'tb65536'] |
nobody |
3-44192 3 days ago |
3-44192 3 days ago |
3-43586 3 days |
| 38186 |
tb65536 author:tb65536 |
feat(RingTheory/QuasiFinite/Basic): Localizations of the fiber are finite over the residue field |
This PR adds an instance stating that localizations of the fiber are finite over the residue field.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
4/0 |
Mathlib/RingTheory/QuasiFinite/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
3-43438 3 days ago |
3-43438 3 days ago |
3-42833 3 days |
| 38188 |
tb65536 author:tb65536 |
feat(RingTheory/Ideal/Over): image of `primeCompl` under a surjective `algebraMap` |
This PR proves that `primeCompl` maps to `primeCompl` along a surjective `algebraMap`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
10/0 |
Mathlib/RingTheory/Ideal/Over.lean |
1 |
1 |
['github-actions'] |
nobody |
3-40306 3 days ago |
3-40306 3 days ago |
3-39700 3 days |
| 38179 |
wwylele author:wwylele |
feat(Combinatorics): Pentagonal numbers |
Introduces definition of pentagonal number https://en.wikipedia.org/wiki/Pentagonal_number in preparation for pentagonal number theorem.
---
This is extracted from #33143 as suggested. I only put a few elementary properties here to limit the code change size.
The future file structure will be
- Combinatorics/Enumerative/Pentagonal.lean (this PR)
- Topology/Algebra/InfiniteSum/Pentagonal.lean + RingTheory/PowerSeries/Pentagonal.lean (#33143, depends on previous one) pentagonal theorem in generic form and for power series
- Combinatorics/Enumerative/Partition/Pentagonal.lean (future PR, depends on the previous one): connection between partition and pentagonal numbers
This originally comes from my own repo https://github.com/wwylele/PentagonalNumberTheorem. In the past, there were also PR #31156 and #31362 independently worked by @BeibeiX0 on the same topic, and I tried avoiding stepping on each other's toes when making #33143. Then #31156 and #31362 were closed for unclear reason.
As I mostly rewrote the code based on my own repo, I only put my name here, but given that I unavoidably took inspiration from other PRs, if @BeibeiX0 would like his name to be added to co-author and copyright notice, I am happy to do so.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
75/0 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Pentagonal.lean |
2 |
27 |
['copilot-pull-request-reviewer', 'github-actions', 'tb65536', 'wwylele'] |
nobody |
3-37566 3 days ago |
3-38250 3 days ago |
3-46429 3 days |
| 35216 |
kim-em author:kim-em |
doc(Tactic/Translate/ToDual): add deployment guide for @[to_dual] |
This PR expands the documentation for `@[to_dual]` with practical advice for deploying it to existing code.
**Module docstring** (`Mathlib/Tactic/Translate/ToDual.lean`): adds a "Deploying `@[to_dual]` to existing code" section covering name agreement, attribute propagation, docstring syntax ordering, declaration order dependencies, and known structural mismatches (conjunct reordering, type class gaps, interval argument swapping).
**Attribute docstring**: adds a note that `@[simp]` is not auto-copied (must use `(attr := simp)`), and shows the correct ordering when combining `(attr := ...)` with docstrings.
**Agent skill** (`.claude/skills/to_dual/SKILL.md`): detailed step-by-step instructions for an AI agent deploying `@[to_dual]`, including how to identify candidates, common patterns, and debugging.
🤖 Prepared with Claude Code |
documentation
enhancement
LLM-generated
|
31/3 |
Mathlib/Tactic/Translate/ToDual.lean |
1 |
30 |
['JovanGerb', 'MichaelStollBayreuth', 'github-actions', 'kim-em', 'mathlib-merge-conflicts', 'vihdzp'] |
JovanGerb assignee:JovanGerb |
3-36705 3 days ago |
3-36728 3 days ago |
10-23005 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'] |
nobody |
3-30387 3 days ago |
27-36172 27 days ago |
32-4373 32 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 |
46/3 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Data/Sym/Sym2.lean |
2 |
8 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
3-30385 3 days ago |
31-34968 31 days ago |
73-80453 73 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'] |
PatrickMassot assignee:PatrickMassot |
3-30204 3 days ago |
27-59761 27 days ago |
27-60404 27 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 |
17 |
['Maldooor', 'github-actions', 'lua-vr', 'samueloettl'] |
mcdoll assignee:mcdoll |
3-30203 3 days ago |
7-75733 7 days ago |
63-68505 63 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'] |
eric-wieser assignee:eric-wieser |
3-30203 3 days ago |
57-80295 57 days ago |
58-7794 58 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'] |
fpvandoorn assignee:fpvandoorn |
3-30202 3 days ago |
46-20810 46 days ago |
58-4054 58 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/)
|
t-category-theory |
159/0 |
Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
adamtopaz assignee:adamtopaz |
3-30201 3 days ago |
15-12782 15 days ago |
21-47616 21 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
t-algebra
label:t-algebra$ |
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'] |
dagurtomas assignee:dagurtomas |
3-30200 3 days ago |
24-39174 24 days ago |
29-29792 29 days |
| 37298 |
artie2000 author:artie2000 |
refactor(Algebra/Order): unbundle group and ring cone |
* Unbundle `GroupCone` and `RingCone` using `Submonoid.IsMulPointed`
The material in `Mathlib.Algebra.Group.Submonoid.Support` was created to treat uniformly
* positive cones in groups and rings
* pointed cones in vector spaces over an ordered field
* orderings in rings
This PR deprecates the [GroupCone](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Cone.html#GroupCone) and [RingCone](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Cone.html#RingCone) structures, making use of the predicates `Submonoid.IsMulPointed` and `AddSubmonoid.IsPointed` defined in that file instead.
See also #36863 for the analogous change to ring orderings.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
136/31 |
Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Ring/Cone.lean |
2 |
2 |
['github-actions', 'joneugster'] |
kim-em assignee:kim-em |
3-30199 3 days ago |
22-56975 22 days ago |
22-56923 22 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
t-measure-probability
|
92/0 |
Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean |
1 |
2 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
3-30198 3 days ago |
14-67386 14 days ago |
14-66779 14 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'] |
dagurtomas assignee:dagurtomas |
3-30196 3 days ago |
11-26222 11 days ago |
11-25615 11 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'] |
dwrensha assignee:dwrensha |
3-30195 3 days ago |
8-58426 8 days ago |
8-62514 8 days |
| 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 |
32/23 |
Mathlib/Algebra/Algebra/Basic.lean,Mathlib/RingTheory/LocalProperties/Basic.lean,Mathlib/RingTheory/Localization/Away/Basic.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean,Mathlib/RingTheory/Localization/FractionRing.lean |
6 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
3-30194 3 days ago |
5-57579 5 days ago |
5-57178 5 days |
| 38127 |
riccardobrasca author:riccardobrasca |
feat: add ClassGroup.extendedHom |
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-algebra
t-ring-theory
label:t-algebra$ |
109/6 |
Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/NumberTheory/ClassNumber/Finite.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean,Mathlib/RingTheory/ClassGroup/Basic.lean,Mathlib/RingTheory/ClassGroup/ExtendedHom.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean,Mathlib/RingTheory/PicardGroup.lean,Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean |
9 |
2 |
['github-actions'] |
mattrobball assignee:mattrobball |
3-30194 3 days ago |
4-53715 4 days ago |
4-53150 4 days |
| 38172 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet): Mulstruct.mulOne and oneMul |
We introduce definitions `SSet.PtSimplex.MulStruct.oneMul/mulOne` which shall later be interpreted as an explanation for the relations satisfied by the neutral element for the multiplication on homotopy groups of Kan complexes.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
55/0 |
Mathlib/AlgebraicTopology/SimplicialSet/KanComplex/MulStruct.lean |
1 |
1 |
['github-actions'] |
robin-carlier assignee:robin-carlier |
3-30191 3 days ago |
3-59731 3 days ago |
3-59197 3 days |
| 38177 |
chrisflav author:chrisflav |
chore(RingTheory/Localization): mirror tensor product compatibilities and golf |
We add a mirrored version of `IsLocalization.tensorProduct_tensorProduct` and some related isomorphisms. We use this to golf the proof of `RingHom.locally_isStableUnderBaseChange`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
116/44 |
Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/Finiteness.lean,Mathlib/RingTheory/RingHom/Locally.lean,Mathlib/RingTheory/RingHomProperties.lean |
5 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
3-30189 3 days ago |
3-52935 3 days ago |
3-53289 3 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
|
30/1 |
Mathlib/ModelTheory/Topology/Types.lean |
1 |
12 |
['NoneMore', 'anishrajeev', 'fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
fpvandoorn assignee:fpvandoorn |
3-25570 3 days ago |
3-25625 3 days ago |
17-7057 17 days |
| 38194 |
ryanncode author:ryanncode |
feat(LinearAlgebra/BilinearForm): add indefinite metrics |
Add the `IndefiniteMetric` structure to support vector spaces equipped with a non-degenerate, symmetric, indefinite bilinear form.
Provide the algebraic foundation for indefinite inner product spaces by formalizing the metric via `LinearMap.BilinForm` and extracting its associated quadratic form without enforcing the `IsPosSemidef` typeclass.
Previously, mathlib required strictly positive-definite metrics to instantiate inner product spaces (`InnerProductSpace`), which prevented the formalization of indefinite geometries without causing typeclass inference failures. Bridge this gap by isolating the symmetric bilinear form from topological and positivity constraints, allowing the library to handle generalized indefinite metric spaces safely.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
47/0 |
Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/IndefiniteMetric.lean |
2 |
2 |
['github-actions'] |
nobody |
3-14942 3 days ago |
3-15013 3 days ago |
3-14406 3 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 |
140/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 |
3-14169 3 days ago |
3-14188 3 days ago |
29-6548 29 days |
| 37923 |
e-271828 author:e-271828 |
feat(Analysis/Calculus/DSlope): add `eq_smul_dslope_of_zero` and iterated version |
This PR adds two fundamental algebraic identities connecting a function with its `dslope` when the base point is a root:
* `eq_smul_dslope_of_zero`: `f b = (b - a) • dslope f a b` when `f a = 0`.
* `eq_pow_smul_iterate_dslope_of_zero`: The iterated version `f b = (b - a) ^ n • (Function.swap dslope a)^[n] f b` when the first `n-1` iterated dslopes vanish at `a`.
These lemmas are essential for factoring out removable singularities locally.
This PR was assisted by LLMs (Aristotle and Gemini).
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
13/0 |
Mathlib/Analysis/Calculus/DSlope.lean |
1 |
18 |
['e-271828', 'github-actions', 'j-loreaux', 'wwylele'] |
j-loreaux assignee:j-loreaux |
3-13354 3 days ago |
3-13354 3 days ago |
6-56298 6 days |
| 37573 |
vihdzp author:vihdzp |
feat: supremum of `≤ c` ordinals of cardinal `≤ c` has cardinal `≤ c` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
48/13 |
Mathlib/SetTheory/Cardinal/Ordinal.lean |
1 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
alreadydone assignee:alreadydone |
3-12003 3 days ago |
3-12059 3 days ago |
18-15575 18 days |
| 37640 |
IvanRenison author:IvanRenison |
feat(Order/RelIso): add lemmas about congruence with `relIso` |
Also, the default `simps` lemmas (`*_apply` and `*_symm_apply`) are convenient for `simp` but not for `rw`, `simp_rw`, or `simp_only`, so we add new `simps` lemmas for them (`*_apply_apply` and `*_symm_apply_apply`).
---
In #37598 I realized this is missing
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
33/1 |
Mathlib/Order/RelIso/Basic.lean |
1 |
12 |
['IvanRenison', 'Komyyy', 'github-actions'] |
nobody |
3-9751 3 days ago |
9-50470 9 days ago |
15-52085 15 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
maintainer-merge
|
89/5 |
Mathlib/Order/Ideal.lean |
1 |
19 |
['Komyyy', 'bryangingechen', 'github-actions', 'leanprover-radar', 'mathlib-dependent-issues', 'staroperator'] |
nobody |
3-9305 3 days ago |
6-41785 6 days ago |
62-28286 62 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
maintainer-merge
label:t-algebra$ |
1/7 |
Mathlib/Algebra/Order/SuccPred.lean |
1 |
3 |
['Komyyy', 'github-actions', 'plp127'] |
nobody |
3-8106 3 days ago |
5-83994 5 days ago |
5-83445 5 days |
| 37501 |
xgenereux author:xgenereux |
feat(DedekindDomain/AdicValuation): `intValuation` on uniformizers is `exp (-1)` |
This PR add the lemma `intValuation_val_uniformizer_eq` which is an application of #37497.
Note that I've had to reorganize the files a little bit:
1. I wanted to import `Valuation.Discrete.Basic` in `AdicValuation` but this was not possible since there was a dependency in the other direction (`Valuation.Discrete.Basic` depended on `AdicValuation`). I don't think this makes sense - we want to have access to basic definitions on general valuation in an application file like `AdicValuation`.
~~The reorganization consist of moving the `IsDiscreteValuationRing` of `Valuation.Discrete.Basic` to `AdicValuation`.~~
The reorganization consist of moving the `IsDiscreteValuationRing` section to a new file.
2. I moved some lemmas out of `Mathlib.RingTheory.Valuation.Discrete.RankOne` to the parent file `Mathlib.RingTheory.Valuation.Discrete.Basic.`. These lemmas do not need the richer imports from `RankOne` and are needed in my application.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
- [ ] depends on: #37497
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
203/167 |
Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/OrderOfVanishing/Noetherian.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean,Mathlib/RingTheory/Valuation/Discrete/IsDiscreteValuationRing.lean,Mathlib/RingTheory/Valuation/Discrete/RankOne.lean |
8 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
3-6586 3 days ago |
3-6609 3 days ago |
10-84259 10 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 |
11 |
['eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
3-5589 3 days ago |
3-5647 3 days ago |
7-79236 7 days |
| 37877 |
joelriou author:joelriou |
chore(AlgebraicTopology/SingularHomology): deprecating renamed module `HomotopyInvarianceTopCat` |
The file `SingularHomology/HomotopyInvarianceTopCat` is deprecated after it was renamed `SingularHomology/HomotopyInvariance` in #37658.
---
- [x] depends on: #37658
- [x] depends on: #37656
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
7/1 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/Homology/HomotopyInvariance.lean,Mathlib/AlgebraicTopology/SingularHomology/HomotopyInvarianceTopCat.lean |
3 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
3-3987 3 days ago |
3-3987 3 days ago |
3-3382 3 days |
| 37670 |
vihdzp author:vihdzp |
feat: miscellaneous results on `DirSupClosed` |
---
[](https://gitpod.io/from-referrer/)
|
t-order
large-import
maintainer-merge
|
80/7 |
Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/DirSupClosed.lean |
2 |
13 |
['Komyyy', 'github-actions', 'leanprover-radar', 'mathlib-splicebot', 'vihdzp'] |
nobody |
3-2362 3 days ago |
3-2420 3 days ago |
14-77148 14 days |
| 38200 |
Parcly-Taxel author:Parcly-Taxel |
feat: Turán numbers and their strict monotonicity |
`strictMonoOn_turanNumber` and `sum_mul_le_twice_turanNumber` were initially proved by @Aristotle-Harmonic, then hand-polished.
Co-authored-by: Aristotle (Harmonic) |
t-combinatorics |
55/20 |
Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean |
1 |
1 |
['github-actions'] |
nobody |
3-1241 3 days ago |
3-2668 3 days ago |
3-2061 3 days |
| 38163 |
joelriou author:joelriou |
feat(AlgebraicTopology): strong anodyne extensions respects isomorphisms |
---
- [x] depends on: #37321
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
27/0 |
Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
3-105 3 days ago |
2-86325 2 days ago |
3-771 3 days |
| 38196 |
vihdzp author:vihdzp |
chore(Data/Prod/Lex): use `to_dual` |
---
[](https://gitpod.io/from-referrer/)
|
t-order
t-data
maintainer-merge
|
47/39 |
Mathlib/Data/Prod/Lex.lean |
1 |
2 |
['JovanGerb', 'github-actions'] |
nobody |
2-84993 2 days ago |
3-10948 3 days ago |
3-10341 3 days |
| 36524 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(GroupTheory/SpecificGroups/Alternating/Simple): simplicity of the alternating groups |
This is the conclusion of the story of the proof of simplicity of the alternating group using the
Iwasawa criterion.
* `Equiv.Perm.iwasawaStructure_two`:
the natural `IwasawaStructure` of `Equiv.Perm α` acting on `Nat.Combination α 2`
Its commutative subgroups consist of the permutations with support
in a given element of `Nat.Combination α 2`.
They are cyclic of order 2.
* `alternatingGroup_of_le_of_normal`:
If `α` has at least 5 elements, then a nontrivial normal subgroup
of `Equiv.Perm α` contains the alternating group.
* `alternatingGroup.iwasawaStructure_three`:
the natural `IwasawaStructure` of `alternatingGroup α` acting on `Nat.Combination α 3`
Its commutative subgroups consist of the permutations with support
in a given element of `Nat.Combination α 2`.
They are cyclic of order 3.
* `alternatingGroup.iwasawaStructure_three`:
the natural `IwasawaStructure` of `alternatingGroup α` acting on `Nat.Combination α 4`
Its commutative subgroups consist of the permutations of
cycleType (2, 2) with support in a given element of `Nat.Combination α 2`.
They have order 4 and exponent 2 (`IsKleinFour`).
* `alternatingGroup.normal_subgroup_eq_bot_or_eq_top`:
If `α` has at least 5 elements, then a nontrivial normal subgroup of `alternatingGroup` is `⊤`.
* `alternatingGroup.isSimpleGroup`:
If `α` has at least 5 elements, then `alternatingGroup α`
is a simple group.
---
- [x] depends on: #33082
- [x] depends on: #36983
- [x] depends on: #37026
[](https://gitpod.io/from-referrer/)
|
t-group-theory
large-import
|
320/42 |
Mathlib.lean,Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean |
9 |
66 |
['AntoineChambert-Loir', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier', 'tb65536'] |
tb65536 assignee:tb65536 |
2-84704 2 days ago |
2-84745 2 days ago |
10-85754 10 days |
| 36236 |
kim-em author:kim-em |
chore: add module keyword to Archive and Counterexamples files |
This PR converts 105 Archive and Counterexamples files to module format, adding `module`, `public import`, and `@[expose] public section`.
Eight files are left unconverted for now:
- Seven files containing `private` declarations that need further work (`Imo1962Q1`, `MiuLanguage/Basic`, `MiuLanguage/DecisionSuf`, `AscendingDescendingSequences`, `BallotProblem`, `AharoniKorman`, `TopologistsSineCurve`)
- `Counterexamples/InvertibleModuleNotIdeal` which needs an import path update
For `Archive/Examples/PropEncodable`, the `private` declarations were removed as part of this conversion.
🤖 Prepared with Claude Code |
IMO
LLM-generated
|
735/309 |
Archive/Arithcc.lean,Archive/Examples/Eisenstein.lean,Archive/Examples/Kuratowski.lean,Archive/Examples/PropEncodable.lean,Archive/Hairer.lean,Archive/Imo/Imo1959Q1.lean,Archive/Imo/Imo1959Q2.lean,Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1960Q2.lean,Archive/Imo/Imo1961Q3.lean,Archive/Imo/Imo1962Q4.lean,Archive/Imo/Imo1963Q5.lean,Archive/Imo/Imo1964Q1.lean,Archive/Imo/Imo1969Q1.lean,Archive/Imo/Imo1972Q5.lean,Archive/Imo/Imo1975Q1.lean,Archive/Imo/Imo1977Q6.lean,Archive/Imo/Imo1981Q3.lean,Archive/Imo/Imo1982Q1.lean,Archive/Imo/Imo1985Q2.lean,Archive/Imo/Imo1986Q5.lean,Archive/Imo/Imo1987Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1997Q3.lean,Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2001Q2.lean,Archive/Imo/Imo2001Q3.lean,Archive/Imo/Imo2001Q4.lean,Archive/Imo/Imo2001Q5.lean,Archive/Imo/Imo2001Q6.lean,Archive/Imo/Imo2002Q3.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2005Q4.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2006Q5.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2010Q5.lean,Archive/Imo/Imo2011Q3.lean,Archive/Imo/Imo2011Q5.lean,Archive/Imo/Imo2013Q1.lean,Archive/Imo/Imo2013Q5.lean,Archive/Imo/Imo2015Q6.lean,Archive/Imo/Imo2019Q1.lean,Archive/Imo/Imo2019Q2.lean,Archive/Imo/Imo2019Q4.lean,Archive/Imo/Imo2020Q2.lean,Archive/Imo/Imo2021Q1.lean,Archive/Imo/Imo2024Q2.lean,Archive/Imo/Imo2024Q3.lean,Archive/Imo/Imo2024Q6.lean,Archive/Imo/Imo2025Q3.lean,Archive/Kuratowski.lean,Archive/MinimalSheffer.lean,Archive/OxfordInvariants/Summer2021/Week3P1.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/AbelRuffini.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/BirthdayProblem.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/HeronsFormula.lean,Archive/Wiedijk100Theorems/InverseTriangleSum.lean,Archive/Wiedijk100Theorems/Konigsberg.lean,Archive/Wiedijk100Theorems/PerfectNumbers.lean,Archive/Wiedijk100Theorems/SolutionOfCubicQuartic.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Archive/ZagierTwoSquares.lean,Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean,Counterexamples/CharPZeroNeCharZero.lean,Counterexamples/CliffordAlgebraNotInjective.lean,Counterexamples/Cyclotomic105.lean,Counterexamples/DimensionPolynomial.lean,Counterexamples/DirectSumIsInternal.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Counterexamples/EulerSumOfPowers.lean,Counterexamples/Girard.lean,Counterexamples/HeawoodUnitDistance.lean,Counterexamples/HomogeneousPrimeNotPrime.lean,Counterexamples/IrrationalPowerOfIrrational.lean,Counterexamples/MapFloor.lean,Counterexamples/MonicNonRegular.lean,Counterexamples/Motzkin.lean,Counterexamples/NowhereDifferentiable.lean,Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean,Counterexamples/PeanoCurve.lean,Counterexamples/Phillips.lean,Counterexamples/PolynomialIsDomain.lean,Counterexamples/Pseudoelement.lean,Counterexamples/QuadraticForm.lean,Counterexamples/SeminormLatticeNotDistrib.lean,Counterexamples/SeparableNotSecondCountable.lean,Counterexamples/SorgenfreyLine.lean,Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean |
97 |
8 |
['JovanGerb', 'github-actions', 'grunweg', 'mathlib-merge-conflicts'] |
dwrensha assignee:dwrensha |
2-84477 2 days ago |
3-36531 3 days ago |
3-38715 3 days |
| 38198 |
JovanGerb author:JovanGerb |
chore(Data/Real/Basic): `no_expose` the private operations |
This PR puts `no_expose` on all of the operations on `Real` that are defined in terms of quotients. This is a step in the direction of not exposing the definiton of `Real`.
Note that I leave the `irreducible_def`s as is. This is because the `simpNF` linter does not participate in the module system, and it would time out otherwise.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
11/32 |
Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean |
3 |
4 |
['JovanGerb', 'github-actions', 'leanprover-radar'] |
nobody |
2-84202 2 days ago |
3-973 3 days ago |
3-1307 3 days |
| 30185 |
alreadydone author:alreadydone |
feat(MathlibTest): kernel reduction of nsmul on elliptic curve over ZMod |
Co-authored-by: @SteffenReith
---
- [x] depends on: #30144
- [x] depends on: #30181
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-number-theory
t-algebraic-geometry
label:t-algebra$ |
29/0 |
MathlibTest/EllipticCurve.lean |
1 |
10 |
['alreadydone', 'github-actions', 'joneugster', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
joneugster assignee:joneugster |
2-83815 2 days ago |
2-83815 2 days ago |
4-12330 4 days |
| 38173 |
JovanGerb author:JovanGerb |
chore(CategoryTheory/EpiMono): use `to_dual` |
Generate declarations about `Mono`, `SplitMono` and `SplitMonoCategory` from the epic versions.
---
[](https://gitpod.io/from-referrer/)
|
|
40/120 |
Mathlib/CategoryTheory/EpiMono.lean,Mathlib/Tactic/Translate/ToDual.lean |
2 |
1 |
['github-actions'] |
nobody |
2-82074 2 days ago |
2-82131 2 days ago |
2-84358 2 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$ |
602/19 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/Data/DFinsupp/BigOperators.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/RingQuot.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean,Mathlib/RingTheory/Ideal/Span.lean |
11 |
71 |
['AntoineChambert-Loir', 'chrisflav', 'eric-wieser', 'github-actions', 'robin-carlier'] |
ocfnash and robin-carlier assignee:ocfnash assignee:robin-carlier |
2-78168 2 days ago |
2-78215 2 days ago |
20-70457 20 days |
| 38169 |
tb65536 author:tb65536 |
chore(GroupTheory/Finiteness): make `Subgroup.FG` a class |
This PR refactors `Subgroup.FG` to be a class to match `Group.FG`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
37/20 |
Mathlib/GroupTheory/Commutator/Finite.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/Rank.lean,Mathlib/GroupTheory/Schreier.lean |
4 |
3 |
['JovanGerb', 'github-actions', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
2-69637 2 days ago |
3-61036 3 days ago |
3-60431 3 days |
| 34435 |
huaizhangchu author:huaizhangchu |
feat(Probability): convolution of Poisson distributions |
This PR proves that the convolution of two Poisson distributions is again a Poisson distribution:
`Poisson(r₁) ∗ Poisson(r₂) = Poisson(r₁ + r₂)`
## Main results
- `poissonMeasureReal_charFun`: characteristic function of Poisson distribution is `exp(r(exp(it) - 1))`
- `poissonMeasureReal_conv_poissonMeasureReal`: convolution of Poisson distributions on ℝ
- `poissonMeasure_conv_poissonMeasure`: convolution of Poisson distributions on ℕ
- `poissonMeasure_add_poissonMeasure_of_indepFun`: sum of independent Poisson random variables
## Proof strategy
Uses characteristic functions: `φ(t) = exp(r(eⁱᵗ - 1))`, then pulls back from ℝ to ℕ.
---
- [x] depends on: #34521
- [ ] depends on: #36374 |
t-measure-probability
large-import
new-contributor
|
122/17 |
Mathlib/Probability/Distributions/Poisson/Basic.lean |
1 |
64 |
['CoolRmal', 'DavidLedvinka', 'EtienneC30', 'github-actions', 'huaizhangchu', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'pfaffelh', 'vianna04', 'yuanyi-350'] |
EtienneC30 assignee:EtienneC30 |
2-68784 2 days ago |
3-69322 3 days ago |
50-34722 50 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 |
228/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 |
2-66071 2 days ago |
6-40953 6 days ago |
6-40899 6 days |
| 38212 |
gaetanserre author:gaetanserre |
feat(MarkovCategory/Positive): Define `PositiveCategory` |
Define `PositiviveCategory`: a specific kind of Markov category deeply related to determinism of isomorphisms.
For some additional context, please see #37851.
### References
- Section 11 of [A synthetic approach to Markov kernels, conditional independence and theorems on sufficient statistics, Fritz, 2020](https://arxiv.org/abs/1908.07021)
- Section 3 of [A category-theoretic proof of the ergodic decomposition theorem, Moss and Perrone, 2023](https://arxiv.org/abs/2207.07353)
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
102/0 |
Mathlib.lean,Mathlib/CategoryTheory/CopyDiscardCategory/Deterministic.lean,Mathlib/CategoryTheory/MarkovCategory/Positive.lean,docs/references.bib |
4 |
1 |
['github-actions'] |
nobody |
2-65294 2 days ago |
2-68009 2 days ago |
2-67894 2 days |
| 38184 |
tb65536 author:tb65536 |
chore(Algebra/Algebra/Tower): make `Algebra.algHom` an alias of `IsScalarTower.ofAlgHom` |
`Algebra.algHom` is a duplicate of `IsScalarTower.ofAlgHom` so I've made it an alias to make this clearer.
Zulip thread: [#mathlib4 > duplication: Algebra.algHom = IsScalarTower.toAlgHom](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/duplication.3A.20Algebra.2EalgHom.20.3D.20IsScalarTower.2EtoAlgHom/with/569828872)
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
6/7 |
Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Tower.lean |
2 |
5 |
['acmepjz', 'github-actions', 'tb65536'] |
nobody |
2-65261 2 days ago |
3-42844 3 days ago |
3-42238 3 days |
| 34123 |
staroperator author:staroperator |
feat(Data/Set/Finite): finite distributivity for complete distributive lattices |
---
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
41/0 |
Mathlib/Data/Set/Finite/Lattice.lean |
1 |
18 |
['Komyyy', 'github-actions', 'plp127', 'staroperator'] |
nobody |
2-62971 2 days ago |
2-82092 2 days ago |
52-41079 52 days |
| 38073 |
sgouezel author:sgouezel |
chore: improve performance for quotient group structure |
The ring instance on `R ⧸ I` is not reducibly compatible with its `AddCommGroup` structure. A previous version of this PR was fixing this diamond, but mixing several changes (notably improving performance to compensate for the performance loss due to the fix). Now, the PR is only improving performance (quite nicely) by introducing intermediate classes for typeclass inference (notably `AddMonoid`) to make for more compact instances in quotient groups. Another PR will subsequently fix the diamond (with a performance hit).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
6/1 |
Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean |
2 |
36 |
['JovanGerb', 'github-actions', 'leanprover-radar', 'robin-carlier', 'sgouezel'] |
JovanGerb assignee:JovanGerb |
2-62510 2 days ago |
5-11639 5 days ago |
5-66710 5 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$ |
104/0 |
Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
1 |
16 |
['copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
eric-wieser assignee:eric-wieser |
2-62003 2 days ago |
2-62060 2 days ago |
64-60355 64 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 |
22/11 |
Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/TacticAnalysis.lean |
2 |
6 |
['chenson2018', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
2-58279 2 days ago |
2-58279 2 days ago |
9-14697 9 days |
| 38020 |
Deicyde author:Deicyde |
feat(Topology/FiberBundle): `continuousAt_symm_prodMk_left` |
API lemma for fiber bundle trivializations. Shows that for a given trivialization `e` and fixed `v`, `x => e.symm (x,v)` is continuous on its natural domain.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
11/2 |
Mathlib/Topology/FiberBundle/Trivialization.lean,Mathlib/Topology/Homotopy/Lifting.lean |
2 |
17 |
['Deicyde', 'github-actions', 'grunweg'] |
PatrickMassot and grunweg assignee:grunweg assignee:PatrickMassot |
2-54667 2 days ago |
2-54667 2 days ago |
4-16813 4 days |
| 38215 |
wwylele author:wwylele |
feat(AffineSpace): the plane through a simplex vertex parallel to the opposite face intersects with closedInterior only at the vertex |
Split off from #36018, and ultimately this is in the dependency tree of #37910 (volume of a simplex). Technically speaking, this lemma is not necessary for volume calculation, as this specific parallel space is counted for 0 measure, but it is needed to state intermediate lemma in appropriate generality
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
40/0 |
Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
2-46956 2 days ago |
2-46956 2 days ago |
2-46349 2 days |
| 38183 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(NumberTheory/Height/NumberField): results on heights over the rational numbers |
This adds the statement that the height of a tuple of coprime integers (considered as rational numbers) is the maximum of their absolute values and also the fact that the height of a rational number is the maximum of the absolute value of its numerator and its denominator. We use this to golf the proof of the statement for natural numbers recently introduced in [#38125](https://github.com/leanprover-community/mathlib4/pull/38125).
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
132/18 |
Mathlib/NumberTheory/Height/NumberField.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean |
3 |
28 |
['MichaelStollBayreuth', 'github-actions', 'jcommelin', 'tb65536'] |
tb65536 assignee:tb65536 |
2-45945 2 days ago |
2-55883 2 days ago |
3-36054 3 days |
| 38219 |
wwylele author:wwylele |
feat(AffineSpace): gcongr lemma for AffineSubspace.mk' |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
easy
label:t-algebra$ |
9/0 |
Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean |
1 |
2 |
['github-actions', 'wwylele'] |
nobody |
2-45026 2 days ago |
2-45093 2 days ago |
2-44486 2 days |
| 37649 |
IvanRenison author:IvanRenison |
feat(Data): add theorem `Finset.image_eq_iff_eq_preimage` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
19/0 |
Mathlib/Data/Finset/Preimage.lean,Mathlib/Data/Set/Function.lean |
2 |
4 |
['Rida-Hamadani', 'github-actions', 'themathqueen'] |
nobody |
2-44890 2 days ago |
16-34635 16 days ago |
16-34028 16 days |
| 38220 |
wwylele author:wwylele |
feat(LinearAlgebra/AffineSpace): shifting a subspace towards a point |
Split off from #36018 and excluded the Simplex part. This is preparing to calculate the volume of a simplex by integrating the cross-section created by shifting the base plane. Part of https://github.com/leanprover-community/mathlib4/pull/34826.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
133/0 |
Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean |
2 |
1 |
['github-actions'] |
nobody |
2-43910 2 days ago |
2-43988 2 days ago |
2-43381 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 |
2-40699 2 days ago |
11-472 10 days ago |
10-86369 10 days |
| 38199 |
vihdzp author:vihdzp |
chore: add items to set theory overview |
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-set-theory
|
11/2 |
docs/overview.yaml |
1 |
3 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
2-36800 2 days ago |
3-3341 3 days ago |
3-2833 3 days |
| 37939 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Order/Completion): embed a linear order into a dense and complete linear order |
The aim of the PR is to prove the following theorem that will be used as an input to [Sion.DMCompletion.exists_isSaddlePointOn](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sion.html#Sion.DMCompletion.exists_isSaddlePointOn) :
*If `β` is any linear order, then there exists a complete and dense linear order `γ` together with a continuous embedding `ι : β ↪o γ` (for the order topologies on `β` and `γ`).*
Meanwhile, the PR also records various instances about dense orders and lemmas regarding the Dedekind MacNeille completion and lexicographic orders.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
208/3 |
Mathlib.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Order/Completion.lean,Mathlib/Topology/Order/Completion.lean,Mathlib/Topology/Sion.lean |
5 |
49 |
['ADedecker', 'AntoineChambert-Loir', 'github-actions', 'vihdzp'] |
vihdzp assignee:vihdzp |
2-36635 2 days ago |
2-36635 2 days ago |
2-38334 2 days |
| 38224 |
plp127 author:plp127 |
fix(QuadraticAlgebra): `Rat` algebra diamond |
Fix a diamond for `Algebra Rat (QuadraticAlgebra Rat a b)` at default transparency by overriding the default implementation of the `qsmul` and `ratCast` fields with one that does not create a diamond. The diamond is still present at reducible-and-instances transparency.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
59/7 |
Mathlib/Algebra/QuadraticAlgebra/Basic.lean,Mathlib/Algebra/QuadraticAlgebra/Defs.lean,MathlibTest/Algebra/QuadraticAlgebra/RatAlgebraDiamond.lean |
3 |
1 |
['github-actions'] |
nobody |
2-32395 2 days ago |
2-32465 2 days ago |
2-31858 2 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'] |
nobody |
2-30387 2 days ago |
24-54327 24 days ago |
24-54480 24 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'] |
nobody |
2-30386 2 days ago |
24-54341 24 days ago |
24-54524 24 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'] |
riccardobrasca assignee:riccardobrasca |
2-29829 2 days ago |
14-64142 14 days ago |
19-7842 19 days |
| 32555 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
112/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean |
2 |
39 |
['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] |
b-mehta assignee:b-mehta |
2-29829 2 days ago |
3-66518 3 days ago |
103-47500 103 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'] |
thorimur assignee:thorimur |
2-29828 2 days ago |
24-42441 24 days ago |
56-39395 56 days |
| 36202 |
vihdzp author:vihdzp |
feat: more theorems on the Cantor normal form |
We also remove some redundant assumptions.
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
68/17 |
Mathlib/SetTheory/Ordinal/CantorNormalForm.lean |
1 |
16 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
alreadydone assignee:alreadydone |
2-29827 2 days ago |
27-154 26 days ago |
45-79767 45 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'] |
TwoFX assignee:TwoFX |
2-29826 2 days ago |
26-70414 26 days ago |
31-19483 31 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'] |
kim-em assignee:kim-em |
2-29825 2 days ago |
16-18277 16 days ago |
17-33158 17 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'] |
Komyyy assignee:Komyyy |
2-29825 2 days ago |
12-32105 12 days ago |
14-18260 14 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
t-category-theory
|
214/4 |
Mathlib/CategoryTheory/Monoidal/Hopf_.lean,Mathlib/RingTheory/HopfAlgebra/Basic.lean |
2 |
4 |
['github-actions', 'robin-carlier', 'sglasman'] |
kim-em assignee:kim-em |
2-29824 2 days ago |
12-45467 12 days ago |
12-44860 12 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
maintainer-merge
|
7/31 |
Mathlib/Tactic/Replace.lean |
1 |
2 |
['github-actions', 'joneugster'] |
dwrensha assignee:dwrensha |
2-29823 2 days ago |
7-66811 7 days ago |
7-66926 7 days |
| 38211 |
gaetanserre author:gaetanserre |
feat(Probability/Kernel): define `IsDeterministicKernel` |
Defines the `IsDeterministicKernel` typeclass which state that a kernel is deterministic in a categorical sense, i.e., it "commutes" with `Kernel.copy`.
For some additional context, please see #37851.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
212/0 |
Mathlib.lean,Mathlib/Probability/Kernel/Deterministic.lean |
2 |
1 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
2-29819 2 days ago |
2-72222 2 days ago |
2-71615 2 days |
| 38218 |
gasparattila author:gasparattila |
chore(MeasureTheory): remove some unnecessary `@[measurability]` attributes |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
6/14 |
Mathlib/MeasureTheory/MeasurableSpace/Basic.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/MeasureTheory/Measure/AEMeasurable.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/Prod.lean,Mathlib/Probability/Density.lean |
6 |
8 |
['gasparattila', 'github-actions'] |
EtienneC30 assignee:EtienneC30 |
2-29818 2 days ago |
2-45106 2 days ago |
2-44499 2 days |
| 38193 |
Jun2M author:Jun2M |
feat(Topology/Algebra/InfiniteSum): Generalise ENNReal lemmas for CompleteLinearOrderedAddCommMonoidWithTop |
This PR generalizes many theorems in Topology/Algebra/InfiniteSum/ENNReal.lean from `ENNREal` to any type with `CompleteLinearOrderedAddCommMonoidWithTop` instance which in particular, includes `ENat`.
`CompleteLinearOrderedAddCommMonoidWithTop` is a new class introduced in this PR as extension of `LinearOrderedAddCommMonoidWithTop` and `CompleteLinearOrder`.
Although a lot of files are being changed, all but 4 files are just changing the calls to theorems to calls to the generalised one.
The 2 files with major changes are
+ Topology/InfiniteSum/ENNReal: The many theorems here are generalised and deprecated.
+ Topology/InfiniteSum/WithTop: A new file for the generalised theorems.
And 2 files with minor changes are
+ Algebra/Order/AddGraphWithTop: Definition of `CompleteLinearOrderedAddCommMonoidWithTop` added.
+ Data/ENat/Lattice: Proof that `ENat` is `CompleteLinearOrderedAddCommMonoidWithTop` added.
---
[](https://gitpod.io/from-referrer/)
|
large-import |
554/365 |
Mathlib.lean,Mathlib/Algebra/Order/AddGroupWithTop.lean,Mathlib/Analysis/Normed/Group/InfiniteSum.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Data/ENat/Lattice.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Covering/Differentiation.lean,Mathlib/MeasureTheory/Covering/Vitali.lean,Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean,Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean,Mathlib/MeasureTheory/Function/Egorov.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/LpSpace/Complete.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean,Mathlib/MeasureTheory/Integral/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Integral/Lebesgue/Countable.lean,Mathlib/MeasureTheory/Measure/AbsolutelyContinuous.lean,Mathlib/MeasureTheory/Measure/AddContent.lean,Mathlib/MeasureTheory/Measure/Content.lean,Mathlib/MeasureTheory/Measure/Count.lean,Mathlib/MeasureTheory/Measure/Hausdorff.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/MeasureTheory/Measure/MeasuredSets.lean,Mathlib/MeasureTheory/Measure/MutuallySingular.lean,Mathlib/MeasureTheory/Measure/PreVariation.lean,Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/MeasureTheory/Measure/RegularityCompacts.lean,Mathlib/MeasureTheory/Measure/Restrict.lean,Mathlib/MeasureTheory/Measure/Stieltjes.lean,Mathlib/MeasureTheory/Measure/Tight.lean,Mathlib/MeasureTheory/Measure/Typeclasses/SFinite.lean,Mathlib/MeasureTheory/Measure/WithDensity.lean,Mathlib/MeasureTheory/OuterMeasure/Caratheodory.lean,Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/MeasureTheory/OuterMeasure/OfAddContent.lean,Mathlib/MeasureTheory/OuterMeasure/OfFunction.lean,Mathlib/MeasureTheory/OuterMeasure/Operations.lean,Mathlib/MeasureTheory/VectorMeasure/Basic.lean,Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean,Mathlib/Probability/Distributions/Uniform.lean,Mathlib/Probability/Kernel/Defs.lean,Mathlib/Probability/Kernel/WithDensity.lean,Mathlib/Probability/ProbabilityMassFunction/Basic.lean,Mathlib/Probability/ProbabilityMassFunction/Constructions.lean,Mathlib/Probability/ProbabilityMassFunction/Monad.lean,Mathlib/Probability/Process/LocalProperty.lean,Mathlib/Topology/Algebra/InfiniteSum/ENNReal.lean,Mathlib/Topology/Algebra/InfiniteSum/WithTop.lean,Mathlib/Topology/MetricSpace/PiNat.lean,Mathlib/Topology/Semicontinuity/Basic.lean |
54 |
1 |
['github-actions'] |
nobody |
2-23969 2 days ago |
2-43338 2 days ago |
2-46279 2 days |
| 37076 |
ertwro author:ertwro |
feat(Combinatorics/SimpleGraph/Hasse): Hasse diagram is triangle-free |
Add `SimpleGraph.hasse_cliqueFree_three`: the Hasse diagram of a preorder is triangle-free (`CliqueFree 3`).
This is the graph-theoretic formulation of `not_covBy_of_lt_of_lt`: if `a ⋖ b` and `b ⋖ c`, then `¬ a ⋖ c`, so no three elements can be pairwise adjacent in the Hasse diagram.
The proof extracts three vertices from a hypothetical 3-clique, case-splits on the covering directions (8 cases), and closes each by `not_covBy_of_lt_of_lt` (6 transitive cases) or `lt_asymm` (2 cyclic cases).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
11/0 |
Mathlib/Combinatorics/SimpleGraph/Hasse.lean |
1 |
21 |
['Rida-Hamadani', 'SnirBroshi', 'ertwro', 'github-actions', 'vlad902'] |
nobody |
2-18876 2 days ago |
2-18931 2 days ago |
10-28104 10 days |
| 38208 |
mbkybky author:mbkybky |
chore: rename two instances |
Rename [Module.Free.Module.free_shrink](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/FreeModule/Basic.html#Module.Free.Module.free_shrink) to `Module.Free.shrink` and rename [Module.Finite.Module.finite_shrink](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Finiteness/Basic.html#Module.Finite.Module.finite_shrink) to `Module.Finite.shrink`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-ring-theory
label:t-algebra$ |
6/2 |
Mathlib/LinearAlgebra/FreeModule/Basic.lean,Mathlib/RingTheory/Finiteness/Basic.lean |
2 |
3 |
['github-actions', 'mbkybky', 'plp127'] |
nobody |
2-15146 2 days ago |
2-72921 2 days ago |
2-73529 2 days |
| 38231 |
NoneMore author:NoneMore |
feat(ModelTheory/Definablity): add syntax-to-definability bridge lemmas |
Add bridge lemmas from syntax to definability and refactor downstream proofs to use them.
---
[](https://gitpod.io/from-referrer/) |
t-logic |
88/56 |
Mathlib/ModelTheory/Definability.lean,Mathlib/ModelTheory/ElementarySubstructures.lean |
2 |
1 |
['github-actions'] |
nobody |
2-14991 2 days ago |
2-15070 2 days ago |
2-14463 2 days |
| 38026 |
mrdouglasny author:mrdouglasny |
feat(Analysis/Calculus): define absolutely monotone functions |
## Summary
- Define `AbsolutelyMonotoneOn f s` for functions `f : ℝ → ℝ` that are smooth on `s` with all iterated derivatives within `s` nonneg
- Prove closure under `add`, `smul`, `mul`
- Show `exp`, `cosh`, constants, and powers are absolutely monotone on appropriate domains
This is the first part of a split of #37879. Follow-up PRs will add:
- Bernstein backward direction (nonneg coefficients → absolutely monotone)
- Bernstein forward direction (absolutely monotone → analytic at 0)
- Matrix applications (Schur product theorem for power series, entrywise exp)
## Test plan
- [ ] CI passes (build + lint)
- [ ] Verify `AbsolutelyMonotoneOn` structure and examples type-check
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.6 (1M context) |
t-analysis
new-contributor
LLM-generated
|
93/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/AbsolutelyMonotone.lean,docs/references.bib |
3 |
15 |
['github-actions', 'j-loreaux', 'mrdouglasny', 'vihdzp', 'wwylele'] |
nobody |
2-14305 2 days ago |
2-14305 2 days ago |
3-21195 3 days |
| 38201 |
joelriou author:joelriou |
feat(Topology): more API for ZerothHomotopy |
This PR introduces a very basic API for `ZerothHomotopy`. As it was not very well typed, the generic constructor `⟦x⟧` for quotients is replaced by a specific constructor `ZerothHomotopy.mk`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
43/8 |
Mathlib/Topology/Connected/LocPathConnected.lean,Mathlib/Topology/Connected/PathConnected.lean |
2 |
2 |
['SnirBroshi', 'github-actions'] |
nobody |
2-11936 2 days ago |
3-2034 3 days ago |
3-1427 3 days |
| 38233 |
mbkybky author:mbkybky |
feat(Algebra/Module/Projective): add `ULift` and `Shrink` lemmas for `Module.Projective` |
Add `ULift` and `Shrink` lemmas for `Module.Projective`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
13/1 |
Mathlib/Algebra/Category/ModuleCat/Ulift.lean,Mathlib/Algebra/Module/Projective.lean |
2 |
1 |
['github-actions'] |
nobody |
2-10677 2 days ago |
2-10746 2 days ago |
2-10139 2 days |
| 36621 |
quantumsnow author:quantumsnow |
feat: add the category of topological pairs |
This is needed for the Eilenberg-Steenrod axioms for a homology theory.
---
- [x] depends on: #37540
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
255/9 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean,Mathlib/Topology/Category/TopCat/Limits/Basic.lean,Mathlib/Topology/Category/TopPair.lean,Mathlib/Topology/Homotopy/TopCat/Basic.lean |
5 |
86 |
['chrisflav', 'dagurtomas', 'erdOne', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'quantumsnow', 'vlad902'] |
dagurtomas assignee:dagurtomas |
1-81834 1 day ago |
2-49248 2 days ago |
9-21159 9 days |
| 38232 |
vihdzp author:vihdzp |
chore: golf `eVariationOn.union` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
8/34 |
Mathlib/Topology/EMetricSpace/BoundedVariation.lean |
1 |
1 |
['github-actions'] |
nobody |
1-81034 1 day ago |
1-80767 1 day ago |
2-11428 2 days |
| 33714 |
idontgetoutmuch author:idontgetoutmuch |
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II |
Supersedes https://github.com/leanprover-community/mathlib4/pull/33519
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
723/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean |
4 |
200 |
['Rida-Hamadani', 'github-actions', 'grunweg', 'idontgetoutmuch'] |
ocfnash assignee:ocfnash |
1-69934 1 day ago |
1-69934 1 day ago |
46-76780 46 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 |
1-68600 1 day ago |
13-4478 13 days ago |
27-56074 27 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
maintainer-merge
|
106/176 |
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,Mathlib/Topology/Order/SuccPred.lean |
8 |
15 |
['JovanGerb', 'github-actions', 'mathlib-dependent-issues', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
1-67304 1 day ago |
1-78244 1 day ago |
6-8509 6 days |
| 38257 |
joelriou author:joelriou |
feat(CategoryTheory): MorphismProperty.single |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
38/0 |
Mathlib/CategoryTheory/MorphismProperty/Basic.lean,Mathlib/CategoryTheory/MorphismProperty/IsSmall.lean,Mathlib/CategoryTheory/ObjectProperty/Local.lean |
3 |
1 |
['github-actions'] |
nobody |
1-63608 1 day ago |
1-63675 1 day ago |
1-63068 1 day |
| 38245 |
RemyDegenne author:RemyDegenne |
feat: CountableSupClosed |
Define the property for a set of being closed by countable supremum (resp. infimum).
The new file is adapted from the `SupClosed` file, which describes sets closed by binary supremum.
Also use `to_dual` on `SupClosed`.
`CountableInfClosed` will be used in measure theory, for developments related to compact systems used for Kolmogorov's extension theorem and Choquet's capacitability theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-order
brownian
|
308/66 |
Mathlib.lean,Mathlib/Order/CountableSupClosed.lean,Mathlib/Order/SupClosed.lean |
3 |
14 |
['RemyDegenne', 'b-mehta', 'github-actions', 'vihdzp'] |
nobody |
1-62383 1 day ago |
1-76633 1 day ago |
1-80750 1 day |
| 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 |
1-58836 1 day ago |
16-28216 16 days ago |
41-17474 41 days |
| 38191 |
artie2000 author:artie2000 |
refactor: deprecate `Mathlib.LinearAlgebra.FreeModule.StrongRankCondition` |
* Deprecate `Mathlib.LinearAlgebra.FreeModule.StrongRankCondition`
* Minimise imports of files that used to import it
This file contains a single declaration, which is an instance whose proof is `inferInstance`.
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Mathlib.2ELinearAlgebra.2EFreeModule.2EStrongRankCondition/with/586164258
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
awaiting-bench
|
46/104 |
Mathlib/Algebra/Algebra/Subalgebra/IsSimpleOrder.lean,Mathlib/Algebra/Algebra/Subalgebra/Rank.lean,Mathlib/Algebra/Lie/Sl2.lean,Mathlib/Algebra/Module/LinearMap/Polynomial.lean,Mathlib/FieldTheory/IntermediateField/Algebraic.lean,Mathlib/GroupTheory/IndexNSmul.lean,Mathlib/LinearAlgebra/Determinant.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean,Mathlib/LinearAlgebra/Eigenspace/Zero.lean,Mathlib/LinearAlgebra/ExteriorPower/Basis.lean,Mathlib/LinearAlgebra/FreeAlgebra.lean,Mathlib/LinearAlgebra/FreeModule/Finite/Matrix.lean,Mathlib/LinearAlgebra/FreeModule/Finite/Quotient.lean,Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean,Mathlib/LinearAlgebra/InvariantBasisNumber.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean,Mathlib/LinearAlgebra/Span/TensorProduct.lean,Mathlib/LinearAlgebra/Trace.lean,Mathlib/RepresentationTheory/Basic.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/LocalProperties/Projective.lean,Mathlib/RingTheory/LocalRing/Module.lean,Mathlib/RingTheory/LocalRing/Quotient.lean,Mathlib/RingTheory/Localization/Free.lean,Mathlib/RingTheory/MvPolynomial.lean |
25 |
11 |
['acmepjz', 'artie2000', 'github-actions', 'leanprover-radar'] |
nobody |
1-52504 1 day ago |
3-28364 3 days ago |
3-34384 3 days |
| 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 |
246/4 |
Mathlib.lean,Mathlib/MeasureTheory/VectorMeasure/Integral.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean |
3 |
66 |
['EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'yoh-tanimoto'] |
EtienneC30 assignee:EtienneC30 |
1-50015 1 day ago |
1-49967 1 day ago |
5-45507 5 days |
| 38240 |
vihdzp author:vihdzp |
chore(Order/Interval/Set/WithBotTop): use `to_dual` |
---
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
50/168 |
Mathlib/Order/Cover.lean,Mathlib/Order/Interval/Set/Defs.lean,Mathlib/Order/Interval/Set/OrdConnected.lean,Mathlib/Order/Interval/Set/WithBotTop.lean |
4 |
3 |
['JovanGerb', 'github-actions'] |
nobody |
1-49439 1 day ago |
1-86297 1 day ago |
1-85690 1 day |
| 37198 |
mckoen author:mckoen |
feat(AlgebraicTopology/SimplicialSet/Subcomplex): isomorphisms and lifting properties of pushout-products |
Defines various isomorphisms of pushout-products.
Defines an isomorphism in the arrow category of `SSet` between the canonical inclusion `(S.unionProd T).toSSet ⟶ X ⊗ Y` and the pushout-product `S.ι □ T.ι`.
Proves various equivalent lifting properties involving pushout-products
- [x] depends on: #37182
- [x] depends on: #33935
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
t-category-theory
|
322/4 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean,Mathlib/AlgebraicTopology/SimplicialSet/PushoutProduct.lean,Mathlib/CategoryTheory/LiftingProperties/PushoutProduct.lean,Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean,Mathlib/CategoryTheory/Monoidal/Limits/Shapes/Pullback.lean,Mathlib/CategoryTheory/Monoidal/PushoutProduct.lean,docs/references.bib |
8 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
1-44694 1 day ago |
1-44935 1 day ago |
1-44375 1 day |
| 38239 |
vihdzp author:vihdzp |
chore(Order/SuccPred/Limit): reorganize sections |
In an effort to keep the file better organized, we move theorems which use `SuccOrder`/`PredOrder` as an assumption to a new section.
No theorems have been changed.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
95/110 |
Mathlib/Order/SuccPred/Limit.lean |
1 |
1 |
['github-actions'] |
nobody |
1-36629 1 day ago |
2-1387 2 days ago |
2-780 2 days |
| 38235 |
vihdzp author:vihdzp |
refactor: `not_isSuccLimit_iff` → `not_isSuccLimit_iff_succ_eq` |
A lemma with such a simple name as `not_isSuccLimit_iff` shouldn't require a partial successor order! The new `not_isSuccLimit_iff` is a straightforward unfolding of the definitions and requires only a preorder.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
36/20 |
Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/Topology/Order/SuccPred.lean |
6 |
1 |
['github-actions'] |
nobody |
1-36305 1 day ago |
1-86314 1 day ago |
1-85743 1 day |
| 38217 |
themathqueen author:themathqueen |
chore(Algebra): remove some broken dot notation porting notes |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
tech debt
easy
label:t-algebra$ |
8/17 |
Mathlib/Algebra/Category/ModuleCat/Kernels.lean,Mathlib/Algebra/Module/Torsion/Basic.lean |
2 |
1 |
['artie2000', 'github-actions'] |
nobody |
1-36212 1 day ago |
2-45381 2 days ago |
2-45445 2 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 |
4 |
['artie2000', 'github-actions', 'vihdzp'] |
nobody |
1-35652 1 day ago |
8-31211 8 days ago |
8-30792 8 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 |
1-35059 1 day ago |
7-38264 7 days ago |
13-84140 13 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 |
86/73 |
.github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean |
2 |
4 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
1-30387 1 day ago |
22-77387 22 days ago |
55-31720 55 days |
| 32282 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): unoriented angle bisection |
Add lemmas giving unoriented angles involving the incenter and excenters of a triangle as expressions involving dividing angles of the triangle by 2, deduced from oriented bisection lemmas.
---
- [ ] depends on: #30981
- [ ] depends on: #30982
- [ ] depends on: #31205
- [ ] depends on: #32019
- [ ] depends on: #32021
- [ ] depends on: #32259
- [ ] depends on: #32260
- [ ] depends on: #32270
- [ ] depends on: #32273
- [ ] depends on: #32278
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
98/0 |
Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
1 |
8 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] |
nobody |
1-30386 1 day ago |
24-54338 24 days ago |
24-54467 24 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'] |
nobody |
1-30386 1 day ago |
28-414 27 days ago |
27-86207 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'] |
nobody |
1-30385 1 day ago |
54-56240 54 days ago |
57-3519 57 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'] |
mariainesdff assignee:mariainesdff |
1-29871 1 day ago |
17-59805 17 days ago |
17-61295 17 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 |
87/11 |
Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
mariainesdff assignee:mariainesdff |
1-29870 1 day ago |
2-71945 2 days ago |
18-710 18 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'] |
mariainesdff assignee:mariainesdff |
1-29869 1 day ago |
18-40503 18 days ago |
18-39896 18 days |
| 37801 |
eliasjudin author:eliasjudin |
refactor(Algebra/MvPolynomial): generalize pUnitAlgEquiv to Unique |
## Summary
Generalize `MvPolynomial.pUnitAlgEquiv` to `MvPolynomial.uniqueAlgEquiv` for any `[Unique σ]`:
$$
\mathrm{MvPolynomial}\ \sigma\ R \simeq_R R[X].
$$
The equivalence is induced by
$$
X_i \mapsto X,
$$
and its inverse is induced by
$$
X \mapsto X_{\mathrm{default}}.
$$
For `d : σ →₀ ℕ` and `r : R`, the monomial lemmas identify
$$
\mathrm{monomial}(d,r)
\mapsto
\mathrm{monomial}(d(\mathrm{default}),r),
$$
with the corresponding inverse statement.
The evaluation lemmas state that for `φ : R →+* S` and `a : σ → S`, evaluation after `uniqueAlgEquiv` is evaluation at the unique variable value `a default`:
$$
\mathrm{eval}_2(\varphi, a(\mathrm{default}))\bigl(\mathrm{uniqueAlgEquiv}_{R,\sigma}(f)\bigr)=\mathrm{eval}_2(\varphi, a)(f),
$$
together with the inverse and constant-variable special cases.
Keep `pUnitAlgEquiv` as a deprecated compatibility abbreviation and migrate downstream uses to the new API.
This PR adds proofs autoformalised by @Aristotle-Harmonic.
## Motivation
The old API proves the canonical one-variable equivalence only for `PUnit`:
$$
\mathrm{MvPolynomial}\ \mathrm{PUnit}\ R \simeq_R R[X].
$$
The natural hypothesis is `[Unique σ]`, giving the same equivalence for any one-element index type:
$$
\mathrm{MvPolynomial}\ \sigma\ R \simeq_R R[X].
$$
This avoids inserting an auxiliary equivalence `σ ≃ PUnit` in one-variable arguments, and removes the need for separate APIs for other singleton index types such as `Fin 1`.
Co-authored-by: Aristotle (Harmonic) |
t-algebraic-geometry
new-contributor
|
107/48 |
Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/AlgebraicGeometry/AffineSpace.lean,Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean,Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean,Mathlib/RingTheory/FinitePresentation.lean,Mathlib/RingTheory/FreeCommRing.lean,Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/Evaluation.lean,Mathlib/RingTheory/Smooth/Basic.lean |
9 |
16 |
['eliasjudin', 'eric-wieser', 'github-actions', 'wwylele'] |
riccardobrasca assignee:riccardobrasca |
1-29868 1 day ago |
2-83340 2 days ago |
5-51682 5 days |
| 37527 |
bryanboehnke author:bryanboehnke |
feat(LocalRing/Etale): Finite étale extensions of local rings are monogenic |
Formalization of Lemma 3.2 from https://arxiv.org/abs/2503.07846: Given a finite extension of local rings R -> S, if the extension is étale, then there exists β ∈ S such that R[β] = S. Furthermore, if f(z) ∈ R[z] is the minimal polynomial of β, then f′(β) is a unit in S. This file also includes some relevant intermediate results used in the formalization of the proof of Lemma 3.1 from the same paper.
Co-authored-by: George Peykanu
Co-authored-by: Bianca Viray
Co-authored-by: Grant Yang
---
- [ ] depends on: #36421
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
148/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/Etale.lean |
2 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-29681 1 day ago |
1-29705 1 day ago |
1-50075 1 day |
| 38222 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Girth): add lemmas about isomorphism and girth |
---
I added the lemma `Iso.egirth_le` to probe `Iso.egirth_eq` with out repetition. Y tried probing it directly, but I found universe levels issues, similar to this Zulip topic: [lean4>WLOG/suffices and universe polymorphism](https://leanprover.zulipchat.com/#narrow/channel/270676-lean4/topic/WLOG.2Fsuffices.20and.20universe.20polymorphism/with/435455723)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
17/1 |
Mathlib/Combinatorics/SimpleGraph/Girth.lean |
1 |
2 |
['SnirBroshi', 'github-actions'] |
nobody |
1-29337 1 day ago |
2-38955 2 days ago |
2-38348 2 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 |
1-20276 1 day ago |
17-86190 17 days ago |
31-69411 31 days |
| 37071 |
ericluap author:ericluap |
feat: Dedekind completion of rationals is isomorphic to EReal |
|
t-order
new-contributor
|
143/4 |
Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/DedekindCut.lean,Mathlib/Order/Completion.lean,Mathlib/Order/Concept.lean |
5 |
49 |
['ericluap', 'github-actions', 'vihdzp', 'wwylele'] |
vihdzp assignee:vihdzp |
1-17815 1 day ago |
1-23134 1 day ago |
7-10839 7 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 |
1-14316 1 day ago |
29-298 28 days ago |
29-5272 29 days |
| 38237 |
vihdzp author:vihdzp |
feat: generalize `IsSuccLimit.bot_lt` to preorders |
---
[](https://gitpod.io/from-referrer/)
|
t-order
easy
maintainer-merge
|
15/7 |
Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/Order/SuccPred/Limit.lean |
2 |
4 |
['YaelDillies', 'artie2000', 'github-actions', 'vihdzp'] |
nobody |
1-7098 1 day ago |
2-3443 2 days ago |
2-2836 2 days |
| 38276 |
b-mehta author:b-mehta |
feat(Data/Set/Function): add prod lemmas for InjOn, SurjOn, MapsTo, LeftInvOn |
We have these for prodMap, these are arguably generalisations for prodMk.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
42/0 |
Mathlib/Data/Set/Function.lean |
1 |
1 |
['github-actions'] |
nobody |
1-5237 1 day ago |
1-4969 1 day ago |
1-5270 1 day |
| 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 |
330/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean |
2 |
11 |
['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'mitchell-horner'] |
awainverse and b-mehta assignee:b-mehta assignee:awainverse |
1-4843 1 day ago |
50-9861 50 days ago |
50-9300 50 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
maintainer-merge
|
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 |
4 |
['dupuisf', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
1-3218 1 day ago |
1-3280 1 day ago |
42-24714 42 days |
| 38282 |
JovanGerb author:JovanGerb |
chore(Algebra/Lie/Submodule): remove duplicate instance |
This PR removes the explicit `CoeSort` instance on `LieSubmodule`, because it is identical to the one inherited from its `SetLike` instance.
This instance was added in #16509, and I'm not quite sure why it was needed then and not anymore.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
0/3 |
Mathlib/Algebra/Lie/Submodule.lean |
1 |
1 |
['github-actions'] |
nobody |
0-86127 23 hours ago |
1-12 23 hours ago |
0-85805 23 hours |
| 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 |
7 |
['adomani', 'github-actions', 'joneugster', 'marcelolynch'] |
joneugster assignee:joneugster |
0-85673 23 hours ago |
7-25053 7 days ago |
7-31961 7 days |
| 37631 |
linesthatinterlace author:linesthatinterlace |
feat: add `Function.prod` and `Function.diag` |
This PR adds `Function.prod` and `Function.diag` and develops API for them and `Pi.prod`.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
234/42 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/Exact.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/Notation/Pi/Defs.lean,Mathlib/Algebra/Star/StarAlgHom.lean,Mathlib/Combinatorics/Nullstellensatz.lean,Mathlib/LinearAlgebra/Goursat.lean,Mathlib/Logic/Function/Init.lean,Mathlib/MeasureTheory/Integral/Prod.lean,Mathlib/MeasureTheory/Measure/Prod.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean |
16 |
12 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'linesthatinterlace'] |
nobody |
0-85495 23 hours ago |
0-85218 23 hours ago |
11-57934 11 days |
| 38148 |
vihdzp author:vihdzp |
chore: make argument in `zero_le`/`one_le` implicit |
This matches `bot_le` and is quite more convenient in practice. Among the hundreds of times we use this theorem, we require the explicit argument only 8 (or 13, counting tactics).
---
A large part of the diff consists of trivial changes `(zero_le _)` → `zero_le`. A handful of files were also golfed somewhat.
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-order
label:t-algebra$ |
444/507 |
Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Mathlib/Algebra/CharP/Lemmas.lean,Mathlib/Algebra/CubicDiscriminant.lean,Mathlib/Algebra/DirectSum/Internal.lean,Mathlib/Algebra/Lie/Solvable.lean,Mathlib/Algebra/Lie/Weights/Chain.lean,Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/Field/Canonical.lean,Mathlib/Algebra/Order/Floor/Extended.lean,Mathlib/Algebra/Order/Group/Indicator.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Ring/Canonical.lean,Mathlib/Algebra/Order/Sub/Basic.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Reverse.lean,Mathlib/Algebra/Polynomial/RuleOfSigns.lean,Mathlib/Analysis/Analytic/Basic.lean,Mathlib/Analysis/Analytic/ChangeOrigin.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/BoxIntegral/Box/SubboxInduction.lean,Mathlib/Analysis/BoxIntegral/Integrability.lean,Mathlib/Analysis/CStarAlgebra/ApproximateUnit.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Isometric.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/ContDiff/Defs.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/FDeriv/Measurable.lean,Mathlib/Analysis/Calculus/LocalExtr/Polynomial.lean,Mathlib/Analysis/Calculus/SmoothSeries.lean,Mathlib/Analysis/Convex/EGauge.lean,Mathlib/Analysis/Convex/NNReal.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean,Mathlib/Analysis/Matrix/Normed.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean,Mathlib/Analysis/Normed/Group/Indicator.lean,Mathlib/Analysis/Normed/Group/Int.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/Normed/Operator/NNNorm.lean,Mathlib/Analysis/Normed/Ring/Lemmas.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/Oscillation.lean,Mathlib/Analysis/SpecialFunctions/ArithmeticGeometricMean.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Order.lean,Mathlib/Analysis/SpecialFunctions/Exp.lean,Mathlib/Analysis/SpecialFunctions/Exponential.lean,Mathlib/Analysis/SpecialFunctions/Pow/Continuity.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/Combinatorics/Additive/PluenneckeRuzsa.lean,Mathlib/Combinatorics/Configuration.lean,Mathlib/Combinatorics/Enumerative/Composition.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/Nullstellensatz.lean,Mathlib/Combinatorics/SetFamily/FourFunctions.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean,Mathlib/Data/Bool/Count.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/ENNReal/Inv.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/ENat/Pow.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/Finite/Card.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/Data/Finsupp/WellFounded.lean,Mathlib/Data/Int/WithZero.lean,Mathlib/Data/NNRat/Floor.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Totient.lean,Mathlib/Data/Set/Card.lean,Mathlib/Data/W/Cardinal.lean,Mathlib/Dynamics/Flow.lean,Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/Dynamics/TopologicalEntropy/CoverEntropy.lean,Mathlib/Dynamics/TopologicalEntropy/Semiconj.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/TriangleInequality.lean,Mathlib/GroupTheory/GroupAction/Primitive.lean,Mathlib/GroupTheory/Index.lean,Mathlib/InformationTheory/Hamming.lean,Mathlib/LinearAlgebra/Dimension/Free.lean,Mathlib/LinearAlgebra/Dimension/Localization.lean |
201 |
37 |
['JovanGerb', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
0-85232 23 hours ago |
2-11106 2 days ago |
2-49121 2 days |
| 36474 |
SmwYin author:SmwYin |
feat(NumberTheory/ModularForms/QExpansion): update qExpansion API for more general objects |
This PR generalises several lemmas from `ModularFormClass` and `ModularForm` to functions on the upper half plane that are periodic, holomorphic, and bounded at infinity. This allows us to study the _q_-expansion of functions such as `q * j`, where `j` denotes the _j_-function. The specialised `ModularFormClass` and `ModularForm` lemmas are retained as wrappers.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
349/235 |
Mathlib/NumberTheory/ModularForms/Bounds.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean,Mathlib/NumberTheory/ModularForms/LevelOne.lean,Mathlib/NumberTheory/ModularForms/Petersson.lean,Mathlib/NumberTheory/ModularForms/QExpansion.lean |
5 |
59 |
['CBirkbeck', 'MichaelStollBayreuth', 'SmwYin', 'github-actions', 'loefflerd', 'mathlib-bors', 'mathlib-merge-conflicts', 'tb65536'] |
CBirkbeck and loefflerd assignee:loefflerd assignee:CBirkbeck |
0-83673 23 hours ago |
1-57132 1 day ago |
15-59070 15 days |
| 38287 |
b-mehta author:b-mehta |
feat(Data/Set/Function): make mapsTo_univ a simp lemma |
---
[](https://gitpod.io/from-referrer/)
|
easy
t-data
|
1/1 |
Mathlib/Data/Set/Function.lean |
1 |
1 |
['github-actions'] |
nobody |
0-83154 23 hours ago |
0-83241 22 hours ago |
0-82634 22 hours |
| 38284 |
jcommelin author:jcommelin |
chore: remove shortcut instance that is no longer needed |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
0/5 |
Mathlib/Analysis/Fourier/AddCircleMulti.lean |
1 |
3 |
['github-actions', 'jcommelin', 'leanprover-radar'] |
nobody |
0-82763 22 hours ago |
0-83950 23 hours ago |
0-83343 23 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.
---
- [x] depends on: #31697
- [x] depends on: #31706
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
223/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRingsExact.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Ulift.lean |
3 |
19 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
0-81665 22 hours ago |
0-81726 22 hours ago |
4-37228 4 days |
| 38281 |
joelriou author:joelriou |
chore(CategoryTheory): fix diamond for the preadditive structure on the opposite category |
See [#mathlib4 > diamond for Preadditive/HasZeroMorphisms and op](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/diamond.20for.20Preadditive.2FHasZeroMorphisms.20and.20op/with/587714738)
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
9/3 |
Mathlib/Algebra/Homology/Opposite.lean,Mathlib/CategoryTheory/Preadditive/Opposite.lean |
2 |
7 |
['github-actions', 'joelriou', 'kbuzzard', 'leanprover-radar', 'riccardobrasca'] |
nobody |
0-81449 22 hours ago |
1-242 23 hours ago |
0-86272 23 hours |
| 38181 |
chrisflav author:chrisflav |
feat(CategoryTheory/Sites): `Over.post F` preserves one-hypercovers if `F` does |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
60/5 |
Mathlib/CategoryTheory/Sites/Continuous.lean,Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean,Mathlib/CategoryTheory/Sites/Over.lean,Mathlib/CategoryTheory/Sites/Sieves.lean |
4 |
2 |
['github-actions', 'joelriou'] |
nobody |
0-81064 22 hours ago |
0-81089 22 hours ago |
3-47131 3 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.
---
- [x] 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 |
0-80855 22 hours ago |
10-68586 10 days ago |
10-68719 10 days |
| 38275 |
TTony2019 author:TTony2019 |
feat: Add `AffineEquiv.image_intrinsicInterior` |
## Summary
This PR generalizes the existing lemma `AffineIsometry.image_intrinsicInterior` to the setting of affine equivalences, yielding the corresponding result `AffineEquiv.image_intrinsicInterior`.
Since affine equivalences are more general than affine isometries, the proof requires an additional finite-dimensionality assumption. The key extra input is that in finite-dimensional spaces, an affine equivalence induces a homeomorphism via `AffineEquiv.toHomeomorphOfFiniteDimensional`, so the assumptions are adjusted accordingly.
Apart from these extra assumptions, the argument is essentially the same as for `AffineIsometry.image_intrinsicInterior`.
## Collaboration
This PR was developed together with @imathwy.
|
t-analysis
new-contributor
|
28/0 |
Mathlib/Analysis/Convex/Intrinsic.lean |
1 |
4 |
['github-actions', 'themathqueen'] |
nobody |
0-79992 22 hours ago |
1-9195 1 day ago |
1-8588 1 day |
| 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
|
59/0 |
Mathlib/Data/FinEnum.lean |
1 |
12 |
['dtumad', 'github-actions', 'joneugster', 'linesthatinterlace'] |
joneugster assignee:joneugster |
0-76339 21 hours ago |
20-64476 20 days ago |
25-13702 25 days |
| 38256 |
sgouezel author:sgouezel |
chore: fix implicit-reducible diamond in languages |
---
The diff is misleading, I'm mostly moving `withConstantsStructure` up to be able to use it in `withConstantsSelfStructure` (which is a particular case of it) through `inferInstance`, instead of having two separate definitions hidden behind two different opaque functions.
[](https://gitpod.io/from-referrer/)
|
t-logic |
9/10 |
Mathlib/ModelTheory/LanguageMap.lean |
1 |
1 |
['github-actions'] |
nobody |
0-74950 20 hours ago |
1-64145 1 day ago |
1-63538 1 day |
| 38205 |
jcommelin author:jcommelin |
chore: reduce technical debt in FreimanHom |
This PR reduces technical debt related to the `CommRing` instance on `Fin (n + 1)`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
large-import
|
66/27 |
Mathlib/Combinatorics/Additive/FreimanHom.lean |
1 |
1 |
['github-actions'] |
nobody |
0-74129 20 hours ago |
0-74328 20 hours ago |
0-74228 20 hours |
| 38234 |
vihdzp author:vihdzp |
chore: make `IsSuccLimit` a structure |
This lets us name the fields. Note that the `mk_iff` lemma overwrites a recently deprecated theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
35/28 |
Mathlib/Order/SuccPred/InitialSeg.lean,Mathlib/Order/SuccPred/Limit.lean |
2 |
5 |
['github-actions', 'plp127'] |
nobody |
0-74002 20 hours ago |
1-36235 1 day ago |
1-38022 1 day |
| 38286 |
b-mehta author:b-mehta |
feat(Logic/Equiv/Defs): add coe_ofBijective simp lemma |
We have the applied version of this, but that doesn't fire on the coerced equiv
---
[](https://gitpod.io/from-referrer/)
|
easy
t-logic
|
2/0 |
Mathlib/Logic/Equiv/Defs.lean |
1 |
4 |
['b-mehta', 'eric-wieser', 'github-actions', 'plp127'] |
nobody |
0-69677 19 hours ago |
0-83461 23 hours ago |
0-82854 23 hours |
| 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) . Just to be clear, all comments below are human-written by me with 0 AI assistance.
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: the idea is that `x ^ (z : Int)` is preferred in the algorithm and `x⁻¹` is eliminated. 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. So we need to find another way of normalising terms of the form `-x`.
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 which normalise `(n • b) + -b` to `(n - 1) • b`. etc. The idea is to ensure that any consecutive chains of `b`'s and `-b`'s and `z • b`'s will now all get amalgamated into something of the form `z • b`, 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 |
5 |
['SnirBroshi', 'github-actions', 'kbuzzard', 'mathlib-merge-conflicts'] |
nobody |
0-64661 17 hours ago |
0-77553 21 hours ago |
24-82138 24 days |
| 38297 |
sgouezel author:sgouezel |
chore: fix double conflicting instances of `OmegaCompletePartialOrder` on `CompleteLattice` |
Currently, we have a direct instance `CompleteLattice -> OmegaCompletePartialOrder` (in `OmegaCompletePartialOrder.lean`), and a path `CompleteLattice -> ChainCompletePartialOrder -> OmegaCompletePartialOrder` (in `BourbakiWitt.lean`). They are defeq, but not implicit-reducibly. To solve the diamond, we remove the first instance, and move everything that depends on it from the first file to the second file.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
60/65 |
Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/Order/BourbakiWitt.lean,Mathlib/Order/Category/OmegaCompletePartialOrder.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Topology/OmegaCompletePartialOrder.lean |
6 |
1 |
['github-actions'] |
nobody |
0-64610 17 hours ago |
0-65110 17 hours ago |
0-64892 18 hours |
| 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-61761 17 hours ago |
10-50740 10 days ago |
10-50863 10 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-61028 16 hours ago |
7-48327 7 days ago |
7-48483 7 days |
| 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
|
14/4 |
Mathlib/Tactic/Order.lean |
1 |
3 |
['JovanGerb', 'github-actions', 'joneugster'] |
JovanGerb assignee:JovanGerb |
0-59354 16 hours ago |
0-59410 16 hours ago |
4-50997 4 days |
| 37850 |
Vierkantor author:Vierkantor |
feat(Logic): declare optional simprocs for commuting equality and iff |
This PR introduces two simprocs `eqComm` and `iffComm` that can use `@[simp]` lemmas on symmetrical forms of an expression: if we have a simp lemma saying `f a = b ↔ a = g b` and the goal contains `b = f a`, then we would end up with `g b = a`. I developed these in #36534. Enabling them globally proved to be quite slow (+0,44% overall build time, which corresponds to +5% `simp`ing time), so this PR only declares them (and enables them locally, using e.g. `simp [eqComm]`, when we see that it pays off in the proof).
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-meta
|
145/59 |
Archive/Imo/Imo2024Q5.lean,Mathlib/Algebra/Exact.lean,Mathlib/Algebra/Group/Pi/Lemmas.lean,Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/MvPolynomial/Nilpotent.lean,Mathlib/Algebra/Order/Antidiag/Finsupp.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Pi.lean,Mathlib/Analysis/Complex/Arg.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Polynomial/MahlerMeasure.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/CategoryTheory/Preadditive/Biproducts.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Fin/Tuple/Sort.lean,Mathlib/Data/Matrix/Diagonal.lean,Mathlib/Data/Set/Prod.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/Finite/Polynomial.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/Lean/Meta/Simp.lean,Mathlib/LinearAlgebra/Matrix/Permutation.lean,Mathlib/LinearAlgebra/Matrix/Stochastic.lean,Mathlib/Logic/Basic.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/Tactic/NormNum/Irrational.lean |
36 |
2 |
['Vierkantor', 'github-actions'] |
nobody |
0-59133 16 hours ago |
0-59192 16 hours ago |
0-65149 18 hours |
| 37868 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): map on `Graph` |
This PR introduces vertex map on graphs, `map`.
This creates a new file `Maps` which will be home to `map` and morphisms between `Graph`s.
Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
108/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Maps.lean |
2 |
8 |
['Jun2M', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-56774 15 hours ago |
0-56774 15 hours ago |
10-70775 10 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 V D G`: A typeclass parameterized by a vertex type `V`, dart type `D` and a graph `G` (with `V` & `D` as an `outParam`).
* `GraphLike.verts : Set V`: The set of vertices of the graph.
* `GraphLike.darts : Set D`: The set of darts of the graph.
* `GraphLike.Adj : V → V → Prop`: The adjacency relation, defined by default as `∃ d ∈ darts, fst d = u ∧ snd d = v`.
* `Graph.HasDart G γ`: Dart structure on top of `Graph`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
341/0 |
Mathlib.lean,Mathlib/Combinatorics/Digraph/GraphLike.lean,Mathlib/Combinatorics/Graph/GraphLike.lean,Mathlib/Combinatorics/GraphLike/Basic.lean,Mathlib/Combinatorics/SimpleGraph/GraphLike.lean |
5 |
46 |
['IvanRenison', 'Jun2M', 'SnirBroshi', 'github-actions', 'lauramonk', 'mathlib-merge-conflicts'] |
nobody |
0-56565 15 hours ago |
0-56591 15 hours ago |
35-3518 35 days |
| 38264 |
peabrainiac author:peabrainiac |
feat(CategoryTheory): add `MorphismProperty.paths` |
For any `W : MorphismProperty C`, we define `W.paths : MorphismProperty (Paths C)` as the morphism property containing those paths that consist entirely of morphisms in `W`.
---
I'm currently preparing a PR defining replete subcategories and showing that the replete subcategories of any fixed category form a complete lattice; this API was written because it is helpful to characterise the subcategory generated by a class of morphisms `W` as (up to some issues regarding identities) consisting of those morphisms `f` which are the concatenation of a finitely many morphisms in `W`, i.e. for which there exists a path `p` with `composePath p = f` and `W.paths p`.
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
92/3 |
Mathlib/CategoryTheory/PathCategory/Basic.lean |
1 |
3 |
['github-actions', 'joelriou', 'peabrainiac'] |
nobody |
0-55842 15 hours ago |
0-55846 15 hours ago |
1-7092 1 day |
| 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
maintainer-merge
|
56/48 |
Mathlib/Data/Int/Basic.lean,Mathlib/Data/Int/Init.lean,Mathlib/GroupTheory/CoprodI.lean |
3 |
8 |
['SnirBroshi', 'github-actions', 'joneugster', 'mathlib-merge-conflicts', 'plp127'] |
joneugster assignee:joneugster |
0-55522 15 hours ago |
20-19148 20 days ago |
21-26243 21 days |
| 38301 |
SnirBroshi author:SnirBroshi |
feat(Algebra/Group/Commutator): tag `addCommutatorElement` as a scoped instance |
#34784 additivized commutators and made the multiplicative commutator instance available under `open scoped commutatorElement`.
This makes the additive instance available under `open scoped addCommutatorElement`.
---
~~Should we instead make it scoped under the `addCommutatorElement` namespace?
The existing usages of additive commutators come from decls marked with `open scoped commutatorElement in @[to_additive]`, and `to_additive` seemingly doesn't mind that the additivized version is not an instance. So I think they don't have to live in the same namespace.~~
[](https://gitpod.io/from-referrer/)
|
t-algebra
maintainer-merge
label:t-algebra$ |
6/0 |
Mathlib/Algebra/Group/Commutator.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'tb65536'] |
nobody |
0-55115 15 hours ago |
0-57570 15 hours ago |
0-57377 15 hours |
| 38309 |
ntapiam author:ntapiam |
feat(Algebra/NonAssoc): dendriform algebras |
Define dendriform semirings and algebras
---
This PR introduces dendriform structures such as dendriform semirings
and algebras, and proves basic facts linking them to their pre-Lie
counterparts.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
270/0 |
Mathlib.lean,Mathlib/Algebra/NonAssoc/Dendriform/Defs.lean,docs/references.bib |
3 |
3 |
['github-actions'] |
nobody |
0-54209 15 hours ago |
0-55547 15 hours ago |
0-55038 15 hours |
| 38114 |
javgomzar author:javgomzar |
feat(FinitelyPresentedGroup): add finite groups instance |
Add IsFinitelyPresented instance for finite groups.
Co-authored-by: Hang Lu Su , Thomas Browning
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
large-import
|
31/3 |
Mathlib/GroupTheory/FinitelyPresentedGroup.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean |
2 |
31 |
['github-actions', 'javgomzar', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536', 'vihdzp'] |
nobody |
0-52868 14 hours ago |
0-52870 14 hours ago |
2-42170 2 days |
| 38260 |
sgouezel author:sgouezel |
chore: fix implicit-reducible diamond in Lie subalgebras |
The following example fails on master, is fine on the branch:
```
example (I : LieIdeal R L) : ((LieIdeal.lieRing R L I).toBracket : Bracket ↥I ↥I) =
(LieIdeal.lieRingModule (↥I) I).toBracket := by
with_reducible_and_instances rfl
```
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
6/0 |
Mathlib/Algebra/Lie/Ideal.lean |
1 |
14 |
['JovanGerb', 'github-actions', 'sgouezel'] |
nobody |
0-51859 14 hours ago |
1-54465 1 day ago |
1-53858 1 day |
| 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 |
20 |
['SnirBroshi', 'adomasbaliuka', 'github-actions'] |
urkud assignee:urkud |
0-50706 14 hours ago |
11-79097 11 days ago |
13-78548 13 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
large-import
|
48/28 |
Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/RingTheory/Valuation/Basic.lean |
2 |
4 |
['chrisflav', 'github-actions', 'xgenereux'] |
chrisflav assignee:chrisflav |
0-49408 13 hours ago |
0-49528 13 hours ago |
19-44270 19 days |
| 38310 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics/Quiver/Schreier): word evaluation and reachability |
Adds word evaluation and reachability results to the Schreier graph API.
* `SchreierGraph.evalWord` : evaluates a word `List (S × Bool)` as an element of the ambient group, where `(s, true)` contributes `ι s` and `(s, false)` contributes `(ι s)⁻¹`.
* `SchreierGraph.evalWord_eq_lift` : agreement with `FreeGroup.lift`.
* `SchreierGraph.evalWord_mem_closure` : every word evaluates into the subgroup generated by `ι`.
* `SchreierGraph.pathFromWord` : a Bool-tagged word yields a path in `Symmetrify (SchreierGraph V ι)` from `x` to `evalWord ι w • x`.
* `SchreierGraph.reachable_iff` : two vertices are connected by a path in the symmetrification iff some element of the subgroup closure carries one to the other.
Follow-up to #36320.
This PR was written with AI assistance (Claude). The code has been reviewed by the author.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
large-import
|
157/0 |
Mathlib/Combinatorics/Quiver/Schreier.lean |
1 |
2 |
['github-actions'] |
nobody |
0-49176 13 hours ago |
0-49255 13 hours ago |
0-48648 13 hours |
| 38251 |
WenrongZou author:WenrongZou |
feat(LocalField): valuation of nonachimedean local field is rank one discrete |
This PR add an instance that the valuation of nonarchimedean local field is rank one discrete. With this, we can pick a uniformizer of `𝒪[K]` using the API [`Valuation.Uniformizer`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Valuation/Discrete/Basic.html#Valuation.Uniformizer).
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
6/0 |
Mathlib/NumberTheory/LocalField/Basic.lean |
1 |
4 |
['MichaelStollBayreuth', 'WenrongZou', 'github-actions', 'leanprover-radar'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-46730 12 hours ago |
1-69882 1 day ago |
1-69275 1 day |
| 38314 |
pedroscortes author:pedroscortes |
feat(CategoryTheory/Monoidal): tensorμ_braid_swap and tensor-product IsCommComonObj |
---
## Summary
Two symmetric-monoidal coherence results in a new file
`Mathlib/CategoryTheory/Monoidal/Symmetric/TensorBraidSwap.lean`:
1. `MonoidalCategory.tensorμ_braid_swap` — canonical rearrangement
`tensorμ A A Y Y` intertwines the braiding on `A ⊗ Y` with the
pair of braidings on `A` and `Y`. Sibling of
`CategoryTheory.MonObj.mul_braiding`
(`Mathlib.CategoryTheory.Monoidal.Mon_`, line 759).
2. Tensor-product instance for `IsCommComonObj`: if `A, B` carry
commutative comonoid structures in a symmetric monoidal category,
so does `A ⊗ B`. Reduces `comul_comm` for `Δ[A ⊗ B]` via
`tensorμ_braid_swap` to the pointwise hypotheses. Fills a gap
in `Mathlib/CategoryTheory/Monoidal/CommComon_.lean`, which
currently provides only the unit instance
(`instCommComonObjUnit`) and the auto-instance for cartesian
categories (`instIsCommComonObjOfCartesian`).
## Placement rationale
Placed in a new `Symmetric/` subdirectory rather than appended
to `Braided/Basic.lean` because the latter's top-level
`variable [BraidedCategory C]` creates an instance diamond
against any locally-added `[SymmetricCategory C]`. On v4.30.0-rc2
this diamond blocks `rw [SymmetricCategory.symmetry]` motive
extraction through `A ◁ _ ▷ Y` — the pattern is literally present
in the target, but the two distinct `BraidedCategory C` instances
(outer variable vs `SymmetricCategory.toBraidedCategory`) cause
the rewrite to fail. A new file with only
`[SymmetricCategory C]` as its variable avoids this.
## Downstream consumer
The `IsCommComonObj` tensor-product instance is load-bearing for
the external library
[markovcat](https://github.com/pedroscortes/markovcat) (formalising
Fritz–Klingler Markov categories), specifically for symmetry of
the conditional-independence predicate on compound objects.
## Checks
- `lake build Mathlib.CategoryTheory.Monoidal.Symmetric.TensorBraidSwap` — green.
- `lake exe lint-style` — clean (exit 0).
- Rebased onto current `master`; single commit; 72 insertions across
two files (new file + one-line `Mathlib.lean` registration).
Opening as draft to let CI run before requesting review. |
t-category-theory
new-contributor
|
72/0 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Symmetric/TensorBraidSwap.lean |
2 |
2 |
['github-actions'] |
nobody |
0-45373 12 hours ago |
0-45373 12 hours ago |
0-44766 12 hours |
| 34815 |
Deep0Thinking author:Deep0Thinking |
feat(Analysis/SpecialFunctions/ImproperIntegrals): Frullani integral |
- [x] depends on: #34966
---
Add a proof of **Frullani integral**.
Main theorems:
- `Frullani.integral_Ioi`
- `IntegrableOn.tendsto_integral_Ioi`
- `exists_integral_div_eq_mul_log`
Supporting lemmas:
- `Frullani.comp_mul_left_div`
- `Frullani.intervalIntegrable_div`
- `Frullani.exists_integral_div_eq_mul_log`
- `Ioi_diff_Ioc`
- `ContinuousOn.comp_mul_left_div`, `ContinuousOn.comp_mul_right_div`
- `ContinuousOn.comp_mul_left`, `ContinuousOn.comp_mul_right`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-analysis
|
265/4 |
Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/MeanValue.lean,Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/Monoid.lean |
4 |
10 |
['CoolRmal', 'Deep0Thinking', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'sgouezel'] |
urkud assignee:urkud |
0-43320 12 hours ago |
0-46734 12 hours ago |
7-1098 7 days |
| 38313 |
thorimur author:thorimur |
feat: warn on deprecated declarations in `scripts/check-yaml` |
This PR updates `scripts/check-yaml.lean` to warn on deprecated declarations.
It also cleans up some code: `initSearchPath` does exactly what the removed code plus `CoreM.withImportModules` does (and as far as I can see we no longer need `CoreM`). Also modulizes and removes the dependence on Mathlib.
---
- [x] depends on: #38312
[](https://gitpod.io/from-referrer/)
|
CI |
32/26 |
scripts/check-yaml.lean |
1 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-42069 11 hours ago |
0-42071 11 hours ago |
0-43180 11 hours |
| 36787 |
hommmmm author:hommmmm |
feat(RingTheory/LocalRing): Krull dimension results for maximal ideal of local ring |
Adds 1 declaration:
* `IsLocalRing.maximalIdeal_sq_lt`: In a Noetherian local ring of positive Krull dimension, the square of the maximal ideal is a proper subset of the maximal ideal.
Thanks to Dora Kassabova and Leopold Mayer for edit suggestions.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
12/0 |
Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean |
1 |
18 |
['NoahW314', 'chrisflav', 'github-actions', 'hommmmm', 'tb65536', 'wwylele'] |
chrisflav assignee:chrisflav |
0-41791 11 hours ago |
0-41820 11 hours ago |
33-81225 33 days |
| 38266 |
staroperator author:staroperator |
feat(Order/CompleteLatticeIntervals): `ConditionallyCompleteLinearOrderBot` for `Set.Iio` |
`Set.Iio a` (when it's nonempty) inherits the `ConditionallyCompleteLinearOrderBot` structure from the base type. This is commonly used in set theory, where we consider the ordinals within `a`, and convert `Iio a` from/to `Ordinal`.
There should also be a `ConditionallyCompleteLinearOrder` instance, but adding this seems difficult for now because the junk value may not be the same as bottom (which has been mentioned as "refactor that will allow different
default values for `sSup` and `sInf`" in the module doc). Since my motivation is for the ordinals purely, this PR only adds a single `ConditionallyCompleteLinearOrderBot` instance.
---
I'm not very familiar with the API design here, so any suggestion would be helpful.
[](https://gitpod.io/from-referrer/)
|
t-order |
76/0 |
Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/LatticeIntervals.lean |
3 |
5 |
['github-actions', 'staroperator', 'vihdzp'] |
nobody |
0-41642 11 hours ago |
1-31322 1 day ago |
1-30715 1 day |
| 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
|
198/38 |
Mathlib.lean,Mathlib/NumberTheory/ModularForms/Basic.lean,Mathlib/NumberTheory/ModularForms/CongruenceSubgroups.lean,Mathlib/NumberTheory/ModularForms/CuspFormSubmodule.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean,Mathlib/NumberTheory/ModularForms/LevelOne.lean,Mathlib/NumberTheory/ModularForms/NormTrace.lean |
7 |
34 |
['CBirkbeck', 'MichaelStollBayreuth', 'github-actions', 'loefflerd', 'tb65536'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-40379 11 hours ago |
0-40435 11 hours ago |
6-60650 6 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 |
45 |
['Vilin97', 'YanYablonovskiy', 'adomani', 'botbaki-review', 'copilot-pull-request-reviewer', 'dagurtomas', 'eric-wieser', 'github-actions', 'grunweg', 'j-loreaux', 'wwylele'] |
j-loreaux assignee:j-loreaux |
0-39159 10 hours ago |
5-43141 5 days ago |
31-24183 31 days |
| 38317 |
WenrongZou author:WenrongZou |
feat(Date/Choose): add some lemmas about choose of prime pow |
In this PR, I add some lemma about choose of prime pow.
1) For primes `p` and positive integer `n`, assume that for all `i ∈ Icc 1 (n - 1)`, `choose n i` congruent to `0` module `p`, then `n = p ^ multiplicity p n`.
2) For a prime power `n`, the greatest common divisor of `choose n 1, ⋯, choose n (n - 1)` is actually the minimal prime factor of `n`.
3) For a natural number `n` greater than `1`, assume that `n` is not a prime power, then the greatest common divisor of `choose n 1, ⋯, choose n (n - 1)` is `1`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
88/1 |
Mathlib/Data/Nat/Choose/Lucas.lean |
1 |
1 |
['github-actions'] |
nobody |
0-39121 10 hours ago |
0-39192 10 hours ago |
0-38585 10 hours |
| 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-39120 10 hours ago |
5-33445 5 days ago |
5-34162 5 days |
| 38228 |
kim-em author:kim-em |
ci: block merging PRs that increase technical debt unless reviewed |
This PR adds a merge gate for technical debt increases.
When the existing technical debt metrics script reports an increase, the `build` job adds an `increases-technical-debt` label. A `check-technical-debt` job then adds `blocked-by-increases-technical-debt`, which blocks bors.
A reviewer can add `allow-increases-technical-debt` to unblock after confirming the increase is acceptable.
### Fail-closed detection
The detection greps for the *safe* patterns (`Decrease in tech debt:` / `No changes to technical debt.`) rather than for `Increase`. If `mathlib-ci` changes the script's output wording, the label is added (fail closed) rather than silently skipped (fail open).
### Labels (three-label pattern, same as #38225)
| Label | Managed by | Purpose |
|---|---|---|
| `increases-technical-debt` | `build` job (tech debt script) | Factual: this PR increases debt |
| `blocked-by-increases-technical-debt` | `check-technical-debt` job | Operational: blocks bors |
| `allow-increases-technical-debt` | Reviewer | Override: reviewer approves the increase |
Bors's `block_labels` has no conditional logic, so we need the derived `blocked-by-increases-technical-debt` label to express the conjunction "increases-technical-debt AND NOT allow-increases-technical-debt".
False positives can be reported on the [mathlib4 Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/increases-technical-debt.20label).
🤖 Prepared with Claude Code |
CI |
76/2 |
.github/workflows/PR_summary.yml,bors.toml |
2 |
2 |
['github-actions', 'jcommelin'] |
nobody |
0-35090 9 hours ago |
0-35151 9 hours ago |
0-34614 9 hours |
| 38225 |
kim-em author:kim-em |
ci: block merging PRs with large import increases unless reviewed |
This PR makes the existing `large-import` label into a merge gate. PRs that significantly increase transitive imports (>2% for any modified file) are now blocked from merging until a reviewer adds the `allow-large-import` label.
### Why three labels?
Bors's `block_labels` has no conditional logic — if a label is in the list, merge is blocked unconditionally. We need "blocked unless a reviewer has approved", i.e. `large-import ∧ ¬allow-large-import`. Since bors can't express that, we use a derived label:
| Label | Managed by | Purpose |
|---|---|---|
| `large-import` | `build` job (import analysis) | Factual: this PR increases imports |
| `blocked-by-large-import` | `check-large-import` job | Operational: blocks bors |
| `allow-large-import` | Reviewer | Override: reviewer approves the increase |
Each label is managed by exactly one actor, so there is no label-fighting.
### How it works
1. The existing `build` job adds/removes `large-import` based on import analysis (unchanged).
2. A new `check-large-import` job (in the same workflow) waits for `build` to finish, then:
- If `large-import` is present and `allow-large-import` is absent → adds `blocked-by-large-import`
- Otherwise → removes `blocked-by-large-import`
3. `blocked-by-large-import` is added to `block_labels` in `bors.toml`.
When a reviewer adds `allow-large-import`, the `labeled` event re-triggers the workflow. The heavy `build` job is skipped (guarded by `github.event.action != 'labeled'`), but the lightweight `check-large-import` job runs, sees both labels, and removes `blocked-by-large-import`. Bors can now merge.
### Reviewer workflow
The CI failure message tells the reviewer to consider whether the PR could be improved by splitting files, rearranging material, or creating new intermediate files. If the import increase is reasonable, they add `allow-large-import`.
False positives can be reported on the [mathlib4 Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/large-import.20label).
🤖 Prepared with Claude Code |
CI |
78/2 |
.github/workflows/PR_summary.yml,bors.toml |
2 |
3 |
['SnirBroshi', 'github-actions', 'jcommelin'] |
nobody |
0-35076 9 hours ago |
0-35135 9 hours ago |
0-35146 9 hours |
| 38189 |
artie2000 author:artie2000 |
feat: simplify proof of `IsAdjoinRootMonic.mkOfAdjoinEqTop'` |
* Simplify the proof of `IsAdjoinRootMonic.mkOfAdjoinEqTop'` by factoring out a lemma `OrzechProperty.bijective_of_surjective_of_finrank_le` and making use of the existing lemma `finrank_le_iff_exists_linearMap`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
22/21 |
Mathlib/LinearAlgebra/Dimension/Free.lean,Mathlib/RingTheory/IsAdjoinRoot.lean |
2 |
3 |
['Vierkantor', 'github-actions'] |
nobody |
0-34389 9 hours ago |
3-35173 3 days ago |
3-37231 3 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 |
8 |
['JadAbouHawili', 'artie2000', 'github-actions', 'wwylele'] |
nobody |
0-34214 9 hours ago |
9-47159 9 days ago |
12-66140 12 days |
| 38319 |
Zetetic-Dhruv author:Zetetic-Dhruv |
feat(Combinatorics/SetFamily): Assouad's dual VC bound |
Adds the Finset-level form of Assouad's 1983 dual VC bound: if a family
`𝒜 : Finset (Finset α)` has VC dimension at most `d`, then for any
ground set `X : Finset α` the dual family
`{𝒜.filter (· ∋ x) : x ∈ X}` has VC dimension at most `2 ^ (d + 1) - 1`.
New declarations (in `Finset` namespace):
- `dualFamily 𝒜 X`: for each `x ∈ X`, the subfamily `{A ∈ 𝒜 | x ∈ A}`
- `mem_dualFamily` (`@[simp]`): membership characterisation
- `exists_shatters_of_dualFamily_shatters`: Assouad's bitstring-coding lemma
- `vcDim_dualFamily_le`: the headline VC bound
Proof by Assouad's classical bitstring-coding argument. Sits on top of `Finset.shatterer` / `Finset.vcDim` from
`Mathlib.Combinatorics.SetFamily.Shatter`.
References:
- P. Assouad, Densite et dimension, Ann. Inst. Fourier 33(3) (1983), Thm 2.13
- J. Matousek, Lectures on Discrete Geometry, GTM 212, Springer, 2002, Section 10.3 Lemma 10.3.3
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
187/0 |
Mathlib.lean,Mathlib/Combinatorics/SetFamily/DualVC.lean |
2 |
5 |
['Shreyas4991', 'Zetetic-Dhruv', 'github-actions'] |
nobody |
0-31236 8 hours ago |
0-35425 9 hours ago |
0-34818 9 hours |
| 38298 |
yuanyi-350 author:yuanyi-350 |
chore(CategoryTheory): remove unnecessary conditions in ` Mathlib/CategoryTheory/Limits/Shapes/Opposites/Equalizers` |
The linter is supposed to detect this extra condition here, but no error was reported. What could be the issue?
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
4/4 |
Mathlib/CategoryTheory/Limits/Shapes/Opposites/Equalizers.lean |
1 |
1 |
['github-actions'] |
nobody |
0-31201 8 hours ago |
0-67590 18 hours ago |
0-66983 18 hours |
| 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$ |
79/0 |
Mathlib.lean,Mathlib/Algebra/Module/StablyFree/Basic.lean |
2 |
6 |
['dagurtomas', 'github-actions', 'mbkybky'] |
nobody |
0-30387 8 hours ago |
10-79049 10 days ago |
29-49542 29 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'] |
nobody |
0-30386 8 hours ago |
44-71524 44 days ago |
51-37234 51 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'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-29902 8 hours ago |
23-11151 23 days ago |
53-3305 53 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'] |
mariainesdff assignee:mariainesdff |
0-29901 8 hours ago |
31-82453 31 days ago |
31-81846 31 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'] |
ADedecker assignee:ADedecker |
0-29900 8 hours ago |
23-64864 23 days ago |
23-64257 23 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.
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 |
66/10 |
Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean |
1 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
0-29899 8 hours ago |
14-25745 14 days ago |
14-25138 14 days |
| 38002 |
Raph-DG author:Raph-DG |
feat(Topology): Relating irreducible components of a space to codimension one points in non dense subsets |
In this PR we show that the coheight zero points of a sober space (in the specialization order) correspond to the irreducible components. Furthermore, we show that the coheight one points of any non dense subset p of X (in the specialization order on p) have coheight zero in the specialization order on X.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-topology
|
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'] |
ADedecker assignee:ADedecker |
0-29898 8 hours ago |
6-2890 6 days ago |
6-5605 6 days |
| 38104 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf 100 files |
This PR is an experimental project. In this PR, we use an Agent to automatically scan and attempt to simplify proofs. We hope to eventually effectively golf 100 files and avoid reinventing the wheel in mathlib.
We have chosen `Mathlib/MeasureTheory` as the testing ground.
If this experiment is very successful and accepted by the mathlib community, we would be honored to open source it.
The relevant projects includes
- [ ] #37968, which golfs `Mathlib/Analysis`.
- [ ] #38144 , which golfs `Mathlib/NumberTheory`.
**This PR serves as an index. For the actual code review, please refer to the individual PRs linked below. Each of those PRs modifies only a single file to facilitate the review process.**
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
codex
LLM-generated
|
228/492 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Metrizable.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean,Mathlib/MeasureTheory/Constructions/Pi.lean,Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/MeasureTheory/Constructions/Polish/EmbeddingReal.lean,Mathlib/MeasureTheory/Constructions/Polish/StronglyMeasurable.lean,Mathlib/MeasureTheory/Covering/Besicovitch.lean,Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/MeasureTheory/Function/AEEqOfIntegral.lean,Mathlib/MeasureTheory/Function/AEMeasurableOrder.lean,Mathlib/MeasureTheory/Function/AEMeasurableSequence.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/AEMeasurable.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/RadonNikodym.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean,Mathlib/MeasureTheory/Function/ContinuousMapDense.lean,Mathlib/MeasureTheory/Function/Egorov.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Function/LpOrder.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Count.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Complete.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/Probability/ProductMeasure.lean |
27 |
3 |
['github-actions', 'grunweg', 'yuanyi-350'] |
kex-y assignee:kex-y |
0-29896 8 hours ago |
1-12209 1 day ago |
1-19569 1 day |
| 38161 |
ADedecker author:ADedecker |
fix: wrong set-builder syntax in the definition of `CompactConvergenceCLM` |
See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Simp.20failure.20due.20to.20set.20builder.20notation/near/586133497
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
1/1 |
Mathlib/Topology/Algebra/Module/Spaces/CompactConvergenceCLM.lean |
1 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
0-29895 8 hours ago |
3-71164 3 days ago |
3-70557 3 days |
| 38164 |
ADedecker author:ADedecker |
feat: add `IsCompact.isVonNBounded` |
This could already be proven using [TotallyBounded.isVonNBounded](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/LocallyConvex/Bounded.html#TotallyBounded.isVonNBounded), but this requires a uniform structure. Hence, adding the lemma specific to compact sets avoids a few local instances.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
15/10 |
Mathlib/Analysis/LocallyConvex/Bounded.lean,Mathlib/Analysis/LocallyConvex/Montel.lean,Mathlib/Analysis/Normed/Operator/Compact.lean,Mathlib/Topology/Algebra/Module/Spaces/CompactConvergenceCLM.lean |
4 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
0-29894 8 hours ago |
3-66134 3 days ago |
3-65527 3 days |
| 38254 |
jvanwinden author:jvanwinden |
refactor(Probability/Process): rework predictable and progressive processes |
The purpose of this PR is to rework `IsProgressive` and `ProgMeasurable` to have a weak (i.e., `Measurable`) and strong (i.e., `StronglyMeasurable`) variant, so that they are more in line with `Adapted`/`StronglyAdapted`.
As a side effect, some lemmas can have certain typeclasses removed (which were previously needed to go back and forth between `Measurable` and `StronglyMeasurable`).
Zulip discussion at [#Brownian motion > Adapted Filtrations for Markov Chains and Markov Processes](https://leanprover.zulipchat.com/#narrow/channel/509433-Brownian-motion/topic/Adapted.20Filtrations.20for.20Markov.20Chains.20and.20Markov.20Processes/with/563702867)
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
brownian
|
230/188 |
Mathlib/Probability/Martingale/Basic.lean,Mathlib/Probability/Martingale/Centering.lean,Mathlib/Probability/Martingale/OptionalSampling.lean,Mathlib/Probability/Process/Adapted.lean,Mathlib/Probability/Process/Predictable.lean,Mathlib/Probability/Process/Stopping.lean |
6 |
5 |
['github-actions', 'jvanwinden', 'mathlib-bors'] |
kex-y assignee:kex-y |
0-29893 8 hours ago |
0-52464 14 hours ago |
0-51874 14 hours |
| 38267 |
CoolRmal author:CoolRmal |
feat(ProbabilityTheory): add APIs for predicationPart and martingalePart |
Upstream results from https://github.com/RemyDegenne/brownian-motion/pull/422
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
brownian
|
88/1 |
Mathlib/Probability/Martingale/Centering.lean |
1 |
1 |
['github-actions'] |
kex-y assignee:kex-y |
0-29893 8 hours ago |
1-31077 1 day ago |
1-30470 1 day |
| 38280 |
yuanyi-350 author:yuanyi-350 |
refactor(NumberTheory): golf `Mathlib/NumberTheory/Cyclotomic/Basic` |
- refactors `Cyclotomic/Basic` by rewriting `nonempty_algEquiv_adjoin_of_isSepClosed` around `AlgHom.fieldRange_eq_map` and `IntermediateField.adjoin_map`
- replaces the manual adjoin induction with direct `adjoin_le_iff` inclusions for the cyclotomic roots
Extracted from #38144 , migrate from #38202
[](https://gitpod.io/from-referrer/) |
codex
t-number-theory
LLM-generated
|
12/35 |
Mathlib/NumberTheory/Cyclotomic/Basic.lean |
1 |
2 |
['acmepjz', 'github-actions', 'yuanyi-350'] |
tb65536 assignee:tb65536 |
0-29890 8 hours ago |
1-1115 1 day ago |
1-508 1 day |
| 38293 |
Vierkantor author:Vierkantor |
chore(Tactic): rewrite `split_ifs` tactic docstring |
This PR rewrites the docstrings for the `split_ifs` tactic, to consistently match the [official style guide](https://github.com/leanprover/lean4/blob/master/doc/style.md#tactics), to make sure they are complete while not getting too long.
Most important addition is the fact that hypothesis names are not reused across splits.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
11/8 |
Mathlib/Tactic/SplitIfs.lean |
1 |
1 |
['github-actions'] |
JovanGerb assignee:JovanGerb |
0-29888 8 hours ago |
0-69366 19 hours ago |
0-68759 19 hours |
| 38294 |
Vierkantor author:Vierkantor |
chore(Tactic): rewrite `subsingleton` tactic docstring |
This PR rewrites the docstrings for the `subsingleton` tactic, to consistently match the [official style guide](https://github.com/leanprover/lean4/blob/master/doc/style.md#tactics), to make sure they are complete while not getting too long.
The remark about `Sort _` being set to `Sort 0` by `apply Subsingleton.elim` does not seem to be true anymore, so I removed it.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
10/23 |
Mathlib/Tactic/Subsingleton.lean |
1 |
1 |
['github-actions'] |
JovanGerb assignee:JovanGerb |
0-29887 8 hours ago |
0-68730 18 hours ago |
0-68123 18 hours |
| 38278 |
yuanyi-350 author:yuanyi-350 |
refactor(NumberTheory): golf `Mathlib/NumberTheory/ArithmeticFunction/Zeta` |
- proves `coe_zeta_mul_comm` directly by reindexing the divisor antidiagonal with `map_swap_divisorsAntidiagonal`
- derives `coe_mul_zeta_apply` from `coe_zeta_mul_comm` and `coe_zeta_mul_apply`
Extracted from #38144
[](https://gitpod.io/from-referrer/) |
codex
t-number-theory
LLM-generated
|
6/10 |
Mathlib/NumberTheory/ArithmeticFunction/Zeta.lean |
1 |
7 |
['FLDutchmann', 'github-actions', 'leanprover-radar', 'yuanyi-350'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-29374 8 hours ago |
1-450 23 hours ago |
0-86298 23 hours |
| 38105 |
felixpernegger author:felixpernegger |
feat(Topology/EMetricSpace): add ```Weak(Pseudo)EMetricSpace``` |
See #32891. Unfortunately I accidentally deleted my fork, so redoing it here (I applied the outstanding suggestions there as far as I could)
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
161/13 |
Mathlib/Topology/EMetricSpace/Defs.lean,Mathlib/Topology/Instances/ENNReal/Lemmas.lean |
2 |
1 |
['github-actions'] |
nobody |
0-28924 8 hours ago |
0-28980 7 hours ago |
0-40545 11 hours |
| 38110 |
felixpernegger author:felixpernegger |
feat(Topology): two theorems about extremally disconnected and irreducible |
A preconnected, extremally disconnected space is preirredicuble and a preirreducible space is extremally disconnected.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
42/0 |
Mathlib/Topology/ExtremallyDisconnected.lean,Mathlib/Topology/Irreducible.lean |
2 |
10 |
['NoahW314', 'felixpernegger', 'github-actions', 'vihdzp'] |
nobody |
0-28759 7 hours ago |
0-28817 7 hours ago |
1-59584 1 day |
| 38308 |
drocta author:drocta |
feat(Algebra/Colimit/DirectLimit): add star structures (Star, StarRing, etc.) on DirectLimit |
add `Star`, `InvolutiveStar`, `StarMul`, `StarAddMonoid`, `StarRing`, and `StarModule` instances to `DirectLimit`, following the pattern of existing algebraic structures in `Mathlib.Algebra.Colimit.DirectLimit`.
also add the universal property API (`of`, `lift`, `hom_ext`, `of_f`, `lift_of`) for `StarRing`.
---
Use of AI:
I did make some use of ChatGPT for some advice while writing this code, as well as the auto-complete built into VS Code. However, I can personally vouch for all of the code I am submitting, and that I understand all of it.
This is the first part of my project towards supporting direct limits of $C^*$-algebras (as I described [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Early.20feedback.20on.20approach.20towards.20formalizing.20UHF.20algebras.3F) ).
This PR adds an import of `Mathlib.Algebra.Star.StarRingHom` to `Mathlib.Algebra.Colimit.DirectLimit`, because it needs it.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
127/6 |
Mathlib/Algebra/Colimit/DirectLimit.lean |
1 |
9 |
['drocta', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
0-26318 7 hours ago |
0-59652 16 hours ago |
0-59045 16 hours |
| 38274 |
yuanyi-350 author:yuanyi-350 |
refactor(Analysis): golf `Mathlib/Analysis/Complex/Trigonometric` |
- rewrites `cos_three_mul` via `cosh_three_mul` and the `cosh_mul_I` conversion
- shortens `sin_three_mul` using `sin_add`, double-angle identities, and `grind`
Extracted from #37968
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-analysis
|
3/11 |
Mathlib/Analysis/Complex/Trigonometric.lean |
1 |
3 |
['github-actions', 'themathqueen', 'yuanyi-350'] |
nobody |
0-25386 7 hours ago |
0-25439 6 hours ago |
0-64127 17 hours |
| 38273 |
yuanyi-350 author:yuanyi-350 |
refactor(Analysis): golf `Mathlib/Analysis/SpecialFunctions/Gamma/Basic` |
- rewrites `Gamma_eq_integral` using `Complex.GammaIntegral_ofReal` instead of an inline set-integral congruence
Extracted from #37968, migrated from #38076.
[](https://gitpod.io/from-referrer/) |
codex
t-analysis
LLM-generated
|
2/13 |
Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean |
1 |
3 |
['github-actions', 'themathqueen', 'yuanyi-350'] |
nobody |
0-25349 7 hours ago |
1-10345 1 day ago |
1-10180 1 day |
| 38320 |
ldct author:ldct |
chore: Tag floor lemmas |
Tag lemmas that allow pushing `Int.floor` / `Nat.floor` through addition
I tagged everything matching [Int.floor (_ + _) = _ + _](https://loogle.lean-lang.org/?q=Int.floor+%28_+%2B+_%29+%3D+_+%2B+_) and [Nat.floor (_ + _) = _ + _](https://loogle.lean-lang.org/?q=Nat.floor+%28_+%2B+_%29+%3D+_+%2B+_)
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
46/7 |
Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean,MathlibTest/push.lean |
3 |
1 |
['github-actions'] |
nobody |
0-24581 6 hours ago |
0-24697 6 hours ago |
0-24090 6 hours |
| 38323 |
NoahW314 author:NoahW314 |
feat(RingTheory/MvPolynomial/MonomialOrder): remove unnecessary hypothesis |
Some results had a nonzero hypothesis which can be eliminated since the result holds trivially when the polynomial is zero.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
13/5 |
Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
1 |
1 |
['github-actions'] |
nobody |
0-22843 6 hours ago |
0-22916 6 hours ago |
0-22309 6 hours |
| 38230 |
kim-em author:kim-em |
ci: add no-public-api-changes label based on public olean diff |
This PR adds a CI step that compares the public `.olean` files produced by the PR build against `master`. When they are byte-identical, the label `no-public-api-changes` is applied; otherwise the label is removed.
It also introduces a contributor/reviewer-controlled label `expect-no-public-api-changes`; when present, CI fails unless `no-public-api-changes` also applies. Together these are intended to make proof-only golfing PRs (see the [mathlib-maintainers thread](https://leanprover.zulipchat.com/#narrow/channel/180721-mathlib-maintainers/topic/yuanyi-350.20golfing.20PRs)) cheap to review with confidence that nothing downstream of the touched files is affected.
## ⚠️ Open question before merge
The current implementation fetches master's cached oleans via a second `lake exe cache get` in the existing `tools-branch` checkout. I'd like feedback on whether the steady-state cost is acceptable before investing further.
**Measured cost (sampled from master run [24620430633](https://github.com/leanprover-community/mathlib4/actions/runs/24620430633), 2026-04-19):**
| | Per PR push |
|---|---|
| `cache get` (8,241 files from Azure) | **~8 s wall-clock** (parallel download, pipelined decompress) |
| `lake build --no-build Mathlib` (baseline validation) | a few seconds |
| `public_olean_diff.sh` (byte-comparison of ~8k files) | a few seconds |
| **Extra wall-clock total** | **≈ 15–30 s** |
| **Additional runner disk** | **≈ 5.8 GB** (a second full `.lake/build/lib/lean/Mathlib`) |
| **Additional Azure egress** | **~1 GB** compressed |
So the wall-clock hit is small, but **disk usage on PR runners roughly doubles** (on top of the ~5.8 GB the PR build already materializes).
**Three concrete questions for reviewers:**
1. Is this disk overhead acceptable as always-on automation? Are any PR runners at risk of hitting their disk ceiling?
2. If not, do we prefer **weaker automation** (make the check opt-in via `expect-no-public-api-changes`, losing the informational `no-public-api-changes` label on most PRs) or **delaying this PR** until we extend `lake exe cache` to fetch public `*.olean` only (and skip `.olean.private`/`.olean.server`/`.ir.olean`, which would cut egress and disk substantially)?
3. Is there interest in a follow-up that moves the diff out of the build job and into a dedicated post-build job with its own checkout — same cost story but clearer ownership?
## How it works
With the module system, a Mathlib build produces three files per module: `Foo.olean` (public/exported), `Foo.olean.server` (server data), and `Foo.olean.private` (full private data). Theorems are exported as axioms in the public `.olean` (see `addDecl` at [`src/Lean/AddDecl.lean:100-104`](https://github.com/leanprover/lean4/blob/master/src/Lean/AddDecl.lean#L100-L104)), so a proof-only change leaves `Foo.olean` byte-identical and only updates `Foo.olean.private`. A byte-level diff of public oleans therefore certifies "nothing exported changed" — signatures, exposed definition bodies, and public environment-extension state all included.
New pieces:
- `scripts/public_olean_diff.sh` — compares two `.lake/build/lib/lean` trees, ignoring `.olean.private`, `.olean.server`, and `.ir.olean`. Tri-state exit: `0=match`, `1=differs`, `2=error/unavailable`.
- New steps in `.github/workflows/build_template.yml`:
1. Fetch master oleans via `lake exe cache get` inside `tools-branch`.
2. Validate the baseline with `lake build --no-build Mathlib` over the full diff scope (not just `Mathlib.Init`, which would only prove a prefix is cached).
3. Run the diff; upload the result as an artifact.
4. Look up the PR number from the (repo-qualified) head branch, and **verify** the PR head still points at this run's SHA (TOCTOU guard against fast successive pushes).
5. Add/remove the `no-public-api-changes` label (only when the diff state is `match` or `differs`; `unavailable` leaves existing labels alone).
6. Fail the job if `expect-no-public-api-changes` is set but the state is `differs`.
Gated to same-repo PR-branch pushes on `leanprover-community/mathlib4`, excluding `master`, bors `staging`/`trying`, and any run overriding `tools_branch_ref`.
## Caveats
- Only main-repo PRs are covered. `build_fork.yml` needs an analogous change in a follow-up.
- Cold master cache or failed baseline validation → the state is `unavailable` and labels are left untouched (no spurious flipping).
- Label updates are best-effort; they skip silently if PR lookup, the TOCTOU SHA check, or token operations fail.
- The two labels must be created once on the repo (`no-public-api-changes`, `expect-no-public-api-changes`).
- Not tested on actual CI yet.
🤖 Prepared with Claude Code |
CI |
256/0 |
.github/workflows/build_template.yml,scripts/README.md,scripts/public_olean_diff.sh |
3 |
4 |
['SnirBroshi', 'bryangingechen', 'github-actions', 'kim-em'] |
nobody |
0-21753 6 hours ago |
0-35172 9 hours ago |
0-34857 9 hours |
| 38322 |
NoahW314 author:NoahW314 |
feat(Algebra/MvPolynomial): add monomial prod lemma |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
4/0 |
Mathlib/Algebra/MvPolynomial/Basic.lean |
1 |
1 |
['github-actions', 'wwylele'] |
nobody |
0-21179 5 hours ago |
0-23497 6 hours ago |
0-22890 6 hours |
| 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$ |
16/7 |
Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean |
2 |
12 |
['github-actions', 'leanprover-radar', 'mortarsanjaya', 'themathqueen'] |
nobody |
0-20496 5 hours ago |
0-42050 11 hours ago |
5-4638 5 days |
| 38324 |
BryceT233 author:BryceT233 |
chore(RingTheory/AdicCompletion): make `AdicCompletion.map` linear on linear maps |
This PR upgrades `AdicCompletion.map` to be an R-linear map on the space of linear maps `M →ₗ[R] N`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
47/24 |
Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean |
2 |
1 |
['github-actions'] |
nobody |
0-20297 5 hours ago |
0-20324 5 hours ago |
0-19772 5 hours |
| 38170 |
maddycrim author:maddycrim |
feat(Algebra/Module/FinitePresentation) : Finitely Presented Module Lemma |
From FLT Project
Main Definitions:
`Module.FinitePresentation.exists_fin_exact` : A finitely presented module M admits an exact sequence F' -> F -> M -> 0 where F' and F are finite free modules.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
14/0 |
Mathlib/Algebra/Module/FinitePresentation.lean |
1 |
14 |
['github-actions', 'maddycrim', 'themathqueen'] |
nobody |
0-20068 5 hours ago |
0-25639 6 hours ago |
3-47676 3 days |
| 38285 |
b-mehta author:b-mehta |
feat(GroupTheory/GroupAction/FixedPoints): characterise when there are no fixed points by an action |
Characterise when the set of points fixed by an action of a cancellative monoid action is empty.
---
[](https://gitpod.io/from-referrer/)
|
easy
t-group-theory
|
8/0 |
Mathlib/GroupTheory/GroupAction/FixedPoints.lean |
1 |
2 |
['github-actions', 'tb65536'] |
tb65536 assignee:tb65536 |
0-17417 4 hours ago |
0-83516 23 hours ago |
0-82909 23 hours |
| 37183 |
dagurtomas author:dagurtomas |
feat(Tactic/CategoryTheory): map attribute |
Adding `@[map]` to a lemma named `H` of shape `∀ .., f = g`, where `f` and `g` are morphisms
in some category `C`, creates a new lemma named `H_map` of the form
`∀ .. {D} (func : C ⥤ D), F.map f = F.map g` and then applies
`simp only [Functor.map_comp, Functor.map_id]`.
---
[](https://gitpod.io/from-referrer/)
|
LLM-generated
t-meta
t-category-theory
|
290/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/MapSimp.lean |
5 |
11 |
['adamtopaz', 'dagurtomas', 'github-actions', 'joelriou'] |
adamtopaz assignee:adamtopaz |
0-17242 4 hours ago |
0-17300 4 hours ago |
26-13887 26 days |
| 38296 |
mike1729 author:mike1729 |
feat(MeasureTheory/LpSpace): Isometric embedding L∞ → (L¹)* |
For a finite measure `μ` and scalar field `𝕜` (any `RCLike`), adds the isometric `𝕜`-linear embedding `Lp 𝕜 ∞
μ →ₗᵢ[𝕜] StrongDual 𝕜 (Lp 𝕜 1 μ)` given by the pairing `g f ↦ ∫ x, g x * f x ∂μ`. Surjectivity (upgrading to
the isometric equivalence `Lp 𝕜 ∞ μ ≃ₗᵢ[𝕜] StrongDual 𝕜 (Lp 𝕜 1 μ)`) is addressed in the follow-up PR:
https://github.com/leanprover-community/mathlib4/pull/38295.
New declarations:
- `Mathlib/MeasureTheory/Function/LpSpace/Dual.lean` (new file): `MeasureTheory.Lp.lInftyL1Pairing`,
`norm_le_norm_lpPairing_mul_apply`, `lInftyToL1Dualₗᵢ` (and its `_apply_apply` simp lemma).
- `Mathlib/MeasureTheory/Function/LpSpace/Basic.lean`: `MeasureTheory.Lp.ae_norm_le_norm`,
`MeasureTheory.Lp.measure_norm_gt_pos_of_lt_norm` (general `L∞` helper lemmas).
- `Mathlib/MeasureTheory/Function/Holder.lean`: `ContinuousLinearMap.norm_lpPairing_apply_apply_le`,
`norm_lpPairing_apply_le` (Hölder-style operator-norm bounds for `lpPairing`).
Future PRs:
- generalize to Holder conjugates with `p>1`,
- generalize to sigma finite measures.
-->
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
176/0 |
Mathlib.lean,Mathlib/MeasureTheory/Function/Holder.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Dual.lean |
4 |
5 |
['github-actions', 'kbuzzard', 'mike1729'] |
kex-y assignee:kex-y |
0-15357 4 hours ago |
0-68088 18 hours ago |
0-67481 18 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 |
19 |
['artie2000', 'github-actions', 'justus-springer', 'martinwintermath', 'mathlib-merge-conflicts', 'ooovi'] |
nobody |
0-14389 3 hours ago |
3-52600 3 days ago |
19-19517 19 days |
| 38316 |
tannerduve author:tannerduve |
feat(Order/OmegaCompletePartialOrder): least fixed point and Scott induction |
Add `lfp` for endomorphisms on an ωCPO with a least element and its basic API (`map_lfp`, `isFixedPt_lfp`, `lfp_le_fixed`, `isLeast_lfp`) and the Scott induction theorem `lfp_induction`
Also add corresponding induction principles for `Part.fix`: `fix_scott_induction` (ω-Scott continuous functional, admissible predicate) and `fix_scott_induction_pointwise` |
new-contributor |
101/0 |
Mathlib/Control/LawfulFix.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,docs/references.bib |
3 |
2 |
['github-actions'] |
nobody |
0-11942 3 hours ago |
0-30858 8 hours ago |
0-30777 8 hours |
| 38327 |
kim-em author:kim-em |
chore(Topology/Connected/LocPathConnected): fix typo in `LocPathConnectedSpace` docstring |
This PR fixes a small typo in the docstring of `LocPathConnectedSpace`: the sentence was missing the word "if".
🤖 Prepared with Claude Code |
t-topology |
1/1 |
Mathlib/Topology/Connected/LocPathConnected.lean |
1 |
1 |
['github-actions'] |
nobody |
0-11381 3 hours ago |
0-11462 3 hours ago |
0-10855 3 hours |
| 38325 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): EndPoint function |
This PR introduces `endPoints`: `Set` of incident vertices, given an edge (in the case of non-edge, return empty).
This PR also removes the file-wise `@[expose]` tag and move to necessary defs.
**Import change**: `Graph/Basic` now imports `Data/Set/Card` to allow reasoning about card of `endPoints`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
large-import
|
101/23 |
Mathlib/Combinatorics/Graph/Basic.lean,Mathlib/Combinatorics/Graph/Subgraph.lean,Mathlib/Topology/CWComplex/Classical/Graph.lean |
3 |
2 |
['github-actions', 'mathlib-bors'] |
nobody |
0-9951 2 hours ago |
0-9951 2 hours ago |
0-13931 3 hours |
| 37622 |
jano-wol author:jano-wol |
feat: a Lie module with trivial trace form is nilpotent over the derived subalgebra |
This is the key technical lemma required for Cartan's criteria for solvability and semisimplicity.
---
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$ |
308/2 |
Mathlib.lean,Mathlib/Algebra/Lie/AdjointAction/JordanChevalley.lean,Mathlib/Algebra/Lie/CartanCriterion.lean,Mathlib/Algebra/Lie/OfAssociative.lean,Mathlib/Algebra/Lie/Solvable.lean,Mathlib/Algebra/Lie/TraceForm.lean,Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/LinearAlgebra/Matrix/ToLin.lean,Mathlib/LinearAlgebra/Trace.lean,docs/references.bib |
11 |
21 |
['github-actions', 'jano-wol', 'jcommelin', 'ocfnash'] |
ocfnash assignee:ocfnash |
0-7537 2 hours ago |
0-7854 2 hours ago |
14-25185 14 days |
| 38277 |
yuanyi-350 author:yuanyi-350 |
refactor(NumberTheory): golf `Mathlib/NumberTheory/NumberField/Norm` |
- refactors `NumberField/Norm` by moving `isUnit_norm_of_isGalois` after `dvd_norm` and shortening its proof to a direct application of `dvd_norm` together with `isUnit_of_dvd_unit`
Extracted from #38144
[](https://gitpod.io/from-referrer/) |
codex
t-number-theory
LLM-generated
|
4/15 |
Mathlib/NumberTheory/NumberField/Norm.lean |
1 |
6 |
['acmepjz', 'github-actions', 'leanprover-radar', 'riccardobrasca', 'yuanyi-350'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-7330 2 hours ago |
1-1393 1 day ago |
1-786 1 day |
| 36423 |
kim-em author:kim-em |
perf: decompress already-cached files concurrently with downloads |
This PR builds on https://github.com/leanprover-community/mathlib4/pull/32987 (pipeline downloads and decompression) and https://github.com/leanprover-community/mathlib4/pull/36367 (fix: decompress already downloaded files).
Previously, already-cached `.ltar` files were only decompressed after all downloads completed, in the final `unpackCache` sweep. This PR starts decompressing them concurrently with downloads by spawning `leantar` as a background task before the download phase begins.
The two decompression paths operate on disjoint file sets (pre-cached vs newly downloaded), so there is no conflict. In the common case where a user has most files cached but a few hundred to download, this overlaps several seconds of decompression with network I/O.
🤖 Prepared with Claude Code |
LLM-generated
CI
t-meta
|
79/27 |
Cache/IO.lean,Cache/Requests.lean |
2 |
6 |
['github-actions', 'joneugster', 'kim-em'] |
joneugster assignee:joneugster |
0-7149 1 hour ago |
0-32706 8 hours ago |
28-22096 28 days |
| 36606 |
harahu author:harahu |
chore(AlgebraicGeometry): fix markdown list indentation |
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.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
4/1 |
Mathlib/AlgebraicGeometry/Gluing.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean |
3 |
12 |
['chrisflav', 'dagurtomas', 'github-actions', 'grunweg', 'harahu'] |
alexjbest and dagurtomas assignee:alexjbest assignee:dagurtomas |
0-4599 1 hour ago |
0-4599 1 hour ago |
19-36655 19 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 |
154/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 |
0-4533 1 hour ago |
4-74067 4 days ago |
16-33874 16 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
maintainer-merge
|
10/0 |
Mathlib/RingTheory/MvPolynomial/Homogeneous.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean |
2 |
3 |
['github-actions', 'mathlib-merge-conflicts', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
0-3801 1 hour ago |
3-31074 3 days ago |
9-17065 9 days |
| 37934 |
Thmoas-Guan author:Thmoas-Guan |
feat(FieldTheory): definition of transcendental separable field extension |
In this PR, we introduce the concept of separably generated field extension and transcendental separable field extension.
Further properties will be in #37838
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
69/0 |
Mathlib.lean,Mathlib/FieldTheory/TranscendentalSeparable.lean |
2 |
1 |
['github-actions'] |
robin-carlier assignee:robin-carlier |
0-3682 1 hour ago |
8-16116 8 days ago |
8-16253 8 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
|
193/115 |
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 |
8 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mike1729'] |
nobody |
0-3287 54 minutes ago |
0-3313 45 minutes ago |
25-42996 25 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
easy
|
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 |
3 |
['github-actions', 'harahu', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
0-3238 53 minutes ago |
16-50335 16 days ago |
16-50132 16 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 |
0-3117 51 minutes ago |
19-45508 19 days ago |
19-44901 19 days |
| 38290 |
Vierkantor author:Vierkantor |
chore(Tactic): document the `says` tactic combinator |
This PR rewrites the docstrings for the `says` tactic combinator, to consistently match the [official style guide](https://github.com/leanprover/lean4/blob/master/doc/style.md#tactics), to make sure they are complete while not getting too long.
The structure is now:
* explain what `says` does,
* explain why you would want to use it,
* explain how to update/apply a `says`.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
maintainer-merge
|
7/10 |
Mathlib/Tactic/Says.lean |
1 |
6 |
['JovanGerb', 'Vierkantor', 'github-actions'] |
JovanGerb assignee:JovanGerb |
0-2371 39 minutes ago |
0-77939 21 hours ago |
0-77332 21 hours |
| 38119 |
NoahW314 author:NoahW314 |
feat(Topology/UniformSpace/DiscreteUniformity): finite discrete spaces are `DiscreteUniformity` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
9/0 |
Mathlib/Topology/UniformSpace/DiscreteUniformity.lean |
1 |
3 |
['ADedecker', 'github-actions', 'scholzhannah'] |
nobody |
0-1615 26 minutes ago |
4-72971 4 days ago |
4-72364 4 days |
| 31576 |
kim-em author:kim-em |
feat: in a semilocally simply connected, locally path-connected space, the quotient of paths by homotopy has the discrete topology |
This PR proves that in a semilocally simply connected, locally path-connected space, the quotient of paths by homotopy has the discrete topology. This is closely related to, but not quite the same as, the quotient path space with fixed initial point being an even covering under the endpoint map.
Depends on
- [ ] #31449
- [x] #31525
- [x] #31574
- [x] #31575
- [ ] #34557
- [ ] #34558
This branch is now restacked on top of those dependency PRs rather than carrying overlapping copies of their changes.
:robot: Prepared with Claude and OpenAI Codex
|
LLM-generated |
1390/0 |
Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SemilocallySimplyConnected.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/Homotopy/Path.lean,Mathlib/Topology/Path.lean,Mathlib/Topology/UnitInterval.lean |
7 |
6 |
['github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
0-1155 19 minutes ago |
0-5776 1 hour ago |
1-44853 1 day |
| 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 |
| 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 |
26-68949 26 days ago |
31-7537 31 days ago |
32-76186 32 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 |
20-62680 20 days ago |
20-64834 20 days ago |
21-31241 21 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 |
20-40771 20 days ago |
20-41791 20 days ago |
34-22019 34 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 |
20-29912 20 days ago |
29-48153 29 days ago |
33-83153 33 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 |
19-73224 19 days ago |
31-65872 31 days ago |
31-66094 31 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 |
19-1516 19 days ago |
19-1552 19 days ago |
19-29466 19 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 |
18-26509 18 days ago |
18-26567 18 days ago |
32-36288 32 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 |
17-86123 17 days ago |
17-86170 17 days ago |
75-69030 75 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 |
17-51539 17 days ago |
17-57800 17 days ago |
90-25985 90 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 |
16-63781 16 days ago |
16-63836 16 days ago |
29-43665 29 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 |
14-68256 14 days ago |
18-26567 18 days ago |
29-59034 29 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 |
12-83677 12 days ago |
12-86385 12 days ago |
32-26279 32 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 |
11-50107 11 days ago |
11-56452 11 days ago |
52-60722 52 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 |
11-38338 11 days ago |
11-38410 11 days ago |
13-34912 13 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 |
11-15145 11 days ago |
11-15180 11 days ago |
156-26419 156 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 |
11-6071 11 days ago |
11-6230 11 days ago |
59-32731 59 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 |
10-69939 10 days ago |
10-72216 10 days ago |
10-71680 10 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 |
10-30289 10 days ago |
33-753 33 days ago |
33-3264 33 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 |
10-30277 10 days ago |
11-21288 11 days ago |
11-23918 11 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 |
9-47798 9 days ago |
9-57265 9 days ago |
13-42414 13 days |
| 37928 |
AlexeyMilovanov author:AlexeyMilovanov |
refactor(Computability.Encoding): unbundle Γ and remove FinEncoding |
This PR unbundles the alphabet `Γ` from the `Encoding` structure and completely removes `FinEncoding`.
`Encoding`: The alphabet `Γ` is now an explicit parameter: `structure Encoding (α : Type u) (Γ : Type v)`.
`FinEncoding`: Removed. Finiteness is now handled via standard typeclasses (e.g., `[Fintype Γ] (e : Encoding α Γ)`).
Combinators: Functions like `finEncodingPair` are simplified to `encodingPair`, dropping the `fin` prefix and `[Fintype]` requirements where no longer needed.
Downstream: Mechanically updated `Mathlib.Computability` and `Mathlib.ModelTheory` to pass the explicit `Γ` and use `[Fintype Γ]` where `FinEncoding` was previously required.
|
new-contributor |
30/67 |
Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean |
2 |
5 |
['github-actions', 'vihdzp'] |
nobody |
9-37482 9 days ago |
9-82833 9 days ago |
9-82226 9 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 |
8-50786 8 days ago |
8-50844 8 days ago |
14-17688 14 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 |
8-49978 8 days ago |
8-50029 8 days ago |
24-20221 24 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 |
8-36615 8 days ago |
8-53635 8 days ago |
8-53028 8 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 |
7-44707 7 days ago |
7-65287 7 days ago |
8-40574 8 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 |
7-29887 7 days ago |
32-69912 32 days ago |
46-9495 46 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 |
6-29922 6 days ago |
19-65853 19 days ago |
20-19241 20 days |
| 37718 |
SabrinaJewson author:SabrinaJewson |
feat(Order): add conversions from `Std` order typeclasses to Mathlib ones |
`{Preorder, PartialOrder, LinearOrder}.ofStd` exist to facilitate convenient translation from `Std` order typeclasses to Mathlib ones.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
366/0 |
Mathlib.lean,Mathlib/Order/Std.lean,MathlibTest/OrderOfStd.lean |
3 |
2 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
6-29918 6 days ago |
14-33297 14 days ago |
14-33183 14 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 |
6-7061 6 days ago |
6-7122 6 days ago |
6-7609 6 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 |
5-68593 5 days ago |
5-75389 5 days ago |
16-21851 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 |
5-43642 5 days ago |
5-43642 5 days ago |
11-21728 11 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 |
5-29806 5 days ago |
6-61480 6 days ago |
6-60873 6 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 |
5-2583 5 days ago |
37-14603 37 days ago |
37-13996 37 days |
| 32692 |
WilliamCoram author:WilliamCoram |
feat: define multivariate restricted power series |
We define multivariate restricted power series over a normed ring R, and show the properties that they form a ring when R has the ultrametric property.
This work generalises my previous work in #26089 which will need to be refactored.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-number-theory
new-contributor
|
137/0 |
Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean |
3 |
43 |
['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts'] |
alreadydone assignee:alreadydone |
4-71996 4 days ago |
4-72056 4 days ago |
22-85111 22 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.
This PR was assisted by LLMs (Aristotle and Gemini).
---
[](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 |
4-53484 4 days ago |
9-83895 9 days ago |
9-83288 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'] |
dagurtomas assignee:dagurtomas |
4-29922 4 days ago |
14-37899 14 days ago |
14-40487 14 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'] |
dagurtomas assignee:dagurtomas |
4-29920 4 days ago |
13-3649 13 days ago |
13-4129 13 days |
| 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
|
85/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Star.lean |
2 |
38 |
['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
4-18395 4 days ago |
5-21959 5 days ago |
7-19617 7 days |
| 35569 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): deprecate `injectiveSeminorm` |
This PR:
* Deprecates `PiTensorProduct.injectiveSeminorm` and supporting lemmas.
* Moves the theory of `liftEquiv` from InjectiveSeminorm.lean to ProjectiveSeminorm.lean.
No changes are introduced beyond adding deprecation notices, adapting docstrings, and moving material between files.
The PR leaves InjectiveSeminorm.lean almost empty. A new implementation of `injectiveSeminorm`, one which reflects the common mathematical definition, is to be done.
This is the third in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633).
---
- [ ] depends on: #35567
- [ ] depends on: #35568
Deprecations:
- injectiveSeminorm
- dualSeminorms_bounded
- injectiveSeminorm_apply
- norm_eval_le_injectiveSeminorm
- injectiveSeminorm_le_projectiveSeminorm
- injectiveSeminorm_tprod_le
Preliminary work toward a reimplementation is at #33969.
I've added Davood and myself to the "Authors" field, as we have now significantly refactored this module.
Co-authored-by: Davood H. T. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
222/233 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
4-2557 4 days ago |
4-2581 4 days ago |
20-56690 20 days |
| 37997 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): generalize determinant formula to GenContFract |
Let $g$ be a `GenContFract K`.
In this PR I generalize the determinant formula for continued fractions from the simple continued fraction case
$$A_n B_{n+1} - B_n A_{n+1} = (-1)^n$$
to the generalized continued fraction product formula
$$A_n B_{n+1} - B_n A_{n+1} = (-a_0) (-a_1) \dots (-a_n)$$
- The `SimpContFract` version is still available unchanged, so this should avoid breaking existing users of the old API.
- The use of `0` as the default partial numerator in `(g.partNums.get? i).getD 0` allows product formulation that remains valid when the fraction is terminated. |
t-algebra
new-contributor
large-import
label:t-algebra$ |
55/28 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Determinant.lean |
2 |
9 |
['emlis42', 'github-actions', 'vihdzp'] |
nobody |
3-66972 3 days ago |
7-75733 7 days ago |
7-75623 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
t-measure-probability
|
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 |
3-58923 3 days ago |
16-35882 16 days ago |
25-53379 25 days |
| 37584 |
kennethgoodman author:kennethgoodman |
feat(Data/Nat/Fib): formalize Lamé's theorem |
## Summary
Formalize [Lamé's theorem](https://en.wikipedia.org/wiki/Lam%C3%A9%27s_theorem) (1844), the founding result of computational complexity theory.
**Lamé's Theorem:** If the Euclidean algorithm on inputs `(a, b)` with `b ≤ a` takes `n + 1` division steps, then `b ≥ fib(n + 1)` and `a ≥ fib(n + 2)`.
### New definitions
- `Nat.euclidSteps`: counts the number of division steps in the Euclidean algorithm on natural number inputs.
### New theorems
- `Nat.fib_le_of_euclidSteps`: the main Lamé bound — Fibonacci lower bound on inputs given a step count.
- `Nat.euclidSteps_le_of_lt_fib`: the contrapositive — step count upper bound given a Fibonacci bound on the smaller input.
- `Nat.add_mod_le`: helper lemma that `b + a % b ≤ a` when `b ≤ a` and `0 < b`.
### Proof strategy
Induction on `n`, tracking both elements of the pair. The key insight is that each Euclidean step replaces `(a, b)` with `(b, a % b)`, and since `a ≥ b + a % b` (because `a / b ≥ 1`), the Fibonacci recurrence `fib(n+3) = fib(n+2) + fib(n+1)` matches the structure of the algorithm.
### References
- Gabriel Lamé, *Note sur la limite du nombre des divisions dans la recherche du plus grand commun diviseur entre deux nombres entiers*, Comptes rendus de l'Académie des sciences, 1844.
---
### AI usage disclosure
Per the [Mathlib AI guidelines](https://leanprover-community.github.io/contribute/index.html#use-of-ai): Claude Code (Claude Opus 4.6) was used to assist with writing the Lean 4 proof code, fixing tactic errors, and drafting this PR description. The mathematical proof (induction on step count, tracking both pair elements through the Fibonacci recurrence) was designed by hand and verified on paper before formalization. I have reviewed and understand every line of the resulting Lean code and can explain all proof steps.
---
- [x] builds cleanly (`lake build Mathlib.Data.Nat.Fib.Lame`)
- [x] no `sorry`
- [x] lines ≤ 100 characters, no trailing whitespace
- [x] `autoImplicit false`
- [x] docstrings on all public declarations |
new-contributor
LLM-generated
t-data
|
121/0 |
Mathlib.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Fib/Lame.lean,docs/1000.yaml |
5 |
24 |
['euprunin', 'github-actions', 'kennethgoodman', 'vihdzp', 'wwylele'] |
nobody |
3-58836 3 days ago |
9-73302 9 days ago |
17-28660 17 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
t-order
|
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 |
3-58661 3 days ago |
12-24009 12 days ago |
12-27220 12 days |
| 37893 |
abeldonate author:abeldonate |
feat: Module theory theorems |
Added three theorems:
- annihilator_sup
- torsionOf_eq_annihilator_span_singleton
- annihilator_eq_iInf_torsionOf
|
new-contributor
t-algebra
label:t-algebra$ |
15/0 |
Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean |
2 |
8 |
['abeldonate', 'github-actions', 'scholzhannah', 'wwylele'] |
nobody |
3-58382 3 days ago |
3-66056 3 days ago |
4-78326 4 days |
| 38171 |
emlis42 author:emlis42 |
feat(Analysis/Calculus/Deriv): add deriv_const_mul_id' |
This PR adds a simp lemma for the derivative of multiplication by a constant on the left.
In practice, `simp` is already able to simplify `fun x => x * c` and `fun x => x / c`. However, it getting stuck on `fun x => c * x` and `deriv (HMul.hMul c)`.
This PR fix this by adding a simp lemma so that `simp` can also handle `fun x => c * x` without requiring an explicit `rw [deriv_const_mul]`.
This is useful for examples such as:
```lean4
example {t : ℝ} (ht : t ≠ 0) : deriv (fun x => x ^ 2 / (2 * x)) t = 1 / 2 := by
simp (disch := first | fun_prop (disch := grind) | grind); field
example {t : ℝ} : deriv (HMul.hMul 2) t = 2 := by
simp
``` |
new-contributor
t-analysis
|
12/11 |
Mathlib/Analysis/Calculus/Deriv/Mul.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean,Mathlib/NumberTheory/Harmonic/GammaDeriv.lean,Mathlib/NumberTheory/ModularForms/DedekindEta.lean |
4 |
4 |
['emlis42', 'github-actions', 'leanprover-radar'] |
nobody |
3-56989 3 days ago |
3-62744 3 days ago |
3-62137 3 days |
| 37661 |
pion2024 author:pion2024 |
feat(Algebra/Lie/Sl2): add lemma exists_primitiveVector |
split 2 for the PR #37010 |
t-algebra
new-contributor
large-import
label:t-algebra$ |
51/1 |
Mathlib/Algebra/Lie/Sl2.lean,Mathlib/Algebra/Lie/Weights/Basic.lean |
2 |
8 |
['github-actions', 'ocfnash', 'pion2024'] |
ocfnash assignee:ocfnash |
3-56543 3 days ago |
3-58332 3 days ago |
7-55904 7 days |
| 37319 |
PrParadoxy author:PrParadoxy |
feat(Algebra/Field/Power): weaken assumptions of Odd.neg_zpow |
The lemmas `Even.neg_zpow` and `Even.neg_one_zpow` are stated assuming
`[DivisionMonoid α] [HasDistribNeg α]`. However, `Odd.neg_zpow` and
`Odd.neg_one_zpow` currently assume the stronger `[DivisionRing α]`.
This PR weakens the assumption of the `Odd` lemmas to match their `Even`
counterparts.
The lemmas are currently the only content of Mathlib.Algebra.Field.Power.
That files exists in order to "define Field with minimal imports". But after this PR,
Power.lean does not rely on Mathlib.Algebra.Field.Defs any more. We hence deprecate
"Field.Power" and move the two statements to Mathlib.Algebra.Ring.Int.Parity.
---
Examples:
```
-- these all work:
example (z : ℤ) (h : Even z) : (-1 : ℂ)^z = 1 := Even.neg_one_zpow h
example (z : ℤ) (h : Even z) : (-1 : unitary ℂ)^z = 1 := Even.neg_one_zpow h
example (z : ℤ) (h : Odd z) : (-1 : ℂ)^z = -1 := Odd.neg_one_zpow h
-- but this fails without the PR:
example (z : ℤ) (h : Odd z) : (-1 : unitary ℂ)^z = -1 := Odd.neg_one_zpow h
```
[](https://gitpod.io/from-referrer/) |
new-contributor
t-algebra
label:t-algebra$ |
24/29 |
Mathlib/Algebra/Field/Power.lean,Mathlib/Algebra/Ring/Int/Parity.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean |
3 |
8 |
['eric-wieser', 'github-actions', 'goliath-klein', 'joelriou'] |
joelriou assignee:joelriou |
3-55133 3 days ago |
3-56683 3 days ago |
16-27485 16 days |
| 38049 |
WilliamCoram author:WilliamCoram |
feat: lemmas towards showing gaussNorm on MvPowerSeries is an absolute value |
We prove lemmas: ``gaussNorm_mul_le`` and ``gaussNorm_le_mul`` which will allow us to show it is an absolute value on Mv restricted power series.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
144/1 |
Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean |
1 |
4 |
['WilliamCoram', 'github-actions'] |
nobody |
3-49049 3 days ago |
6-59025 6 days ago |
6-58418 6 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 |
17 |
['Maldooor', 'github-actions', 'lua-vr', 'samueloettl'] |
mcdoll assignee:mcdoll |
3-30203 3 days ago |
7-75733 7 days ago |
63-68505 63 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
t-algebra
label:t-algebra$ |
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'] |
dagurtomas assignee:dagurtomas |
3-30200 3 days ago |
24-39174 24 days ago |
29-29792 29 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
t-measure-probability
|
92/0 |
Mathlib/MeasureTheory/Function/ConvergenceInDistribution.lean |
1 |
2 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
3-30198 3 days ago |
14-67386 14 days ago |
14-66779 14 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
|
30/1 |
Mathlib/ModelTheory/Topology/Types.lean |
1 |
12 |
['NoneMore', 'anishrajeev', 'fpvandoorn', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
fpvandoorn assignee:fpvandoorn |
3-25570 3 days ago |
3-25625 3 days ago |
17-7057 17 days |
| 38194 |
ryanncode author:ryanncode |
feat(LinearAlgebra/BilinearForm): add indefinite metrics |
Add the `IndefiniteMetric` structure to support vector spaces equipped with a non-degenerate, symmetric, indefinite bilinear form.
Provide the algebraic foundation for indefinite inner product spaces by formalizing the metric via `LinearMap.BilinForm` and extracting its associated quadratic form without enforcing the `IsPosSemidef` typeclass.
Previously, mathlib required strictly positive-definite metrics to instantiate inner product spaces (`InnerProductSpace`), which prevented the formalization of indefinite geometries without causing typeclass inference failures. Bridge this gap by isolating the symmetric bilinear form from topological and positivity constraints, allowing the library to handle generalized indefinite metric spaces safely.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
47/0 |
Mathlib.lean,Mathlib/LinearAlgebra/BilinearForm/IndefiniteMetric.lean |
2 |
2 |
['github-actions'] |
nobody |
3-14942 3 days ago |
3-15013 3 days ago |
3-14406 3 days |
| 37923 |
e-271828 author:e-271828 |
feat(Analysis/Calculus/DSlope): add `eq_smul_dslope_of_zero` and iterated version |
This PR adds two fundamental algebraic identities connecting a function with its `dslope` when the base point is a root:
* `eq_smul_dslope_of_zero`: `f b = (b - a) • dslope f a b` when `f a = 0`.
* `eq_pow_smul_iterate_dslope_of_zero`: The iterated version `f b = (b - a) ^ n • (Function.swap dslope a)^[n] f b` when the first `n-1` iterated dslopes vanish at `a`.
These lemmas are essential for factoring out removable singularities locally.
This PR was assisted by LLMs (Aristotle and Gemini).
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
13/0 |
Mathlib/Analysis/Calculus/DSlope.lean |
1 |
18 |
['e-271828', 'github-actions', 'j-loreaux', 'wwylele'] |
j-loreaux assignee:j-loreaux |
3-13354 3 days ago |
3-13354 3 days ago |
6-56298 6 days |
| 34435 |
huaizhangchu author:huaizhangchu |
feat(Probability): convolution of Poisson distributions |
This PR proves that the convolution of two Poisson distributions is again a Poisson distribution:
`Poisson(r₁) ∗ Poisson(r₂) = Poisson(r₁ + r₂)`
## Main results
- `poissonMeasureReal_charFun`: characteristic function of Poisson distribution is `exp(r(exp(it) - 1))`
- `poissonMeasureReal_conv_poissonMeasureReal`: convolution of Poisson distributions on ℝ
- `poissonMeasure_conv_poissonMeasure`: convolution of Poisson distributions on ℕ
- `poissonMeasure_add_poissonMeasure_of_indepFun`: sum of independent Poisson random variables
## Proof strategy
Uses characteristic functions: `φ(t) = exp(r(eⁱᵗ - 1))`, then pulls back from ℝ to ℕ.
---
- [x] depends on: #34521
- [ ] depends on: #36374 |
t-measure-probability
large-import
new-contributor
|
122/17 |
Mathlib/Probability/Distributions/Poisson/Basic.lean |
1 |
64 |
['CoolRmal', 'DavidLedvinka', 'EtienneC30', 'github-actions', 'huaizhangchu', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'pfaffelh', 'vianna04', 'yuanyi-350'] |
EtienneC30 assignee:EtienneC30 |
2-68784 2 days ago |
3-69322 3 days ago |
50-34722 50 days |
| 38020 |
Deicyde author:Deicyde |
feat(Topology/FiberBundle): `continuousAt_symm_prodMk_left` |
API lemma for fiber bundle trivializations. Shows that for a given trivialization `e` and fixed `v`, `x => e.symm (x,v)` is continuous on its natural domain.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
11/2 |
Mathlib/Topology/FiberBundle/Trivialization.lean,Mathlib/Topology/Homotopy/Lifting.lean |
2 |
17 |
['Deicyde', 'github-actions', 'grunweg'] |
PatrickMassot and grunweg assignee:grunweg assignee:PatrickMassot |
2-54667 2 days ago |
2-54667 2 days ago |
4-16813 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 |
2-40699 2 days ago |
11-472 10 days ago |
10-86369 10 days |
| 32555 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
112/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean |
2 |
39 |
['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] |
b-mehta assignee:b-mehta |
2-29829 2 days ago |
3-66518 3 days ago |
103-47500 103 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'] |
kim-em assignee:kim-em |
2-29825 2 days ago |
16-18277 16 days ago |
17-33158 17 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'] |
Komyyy assignee:Komyyy |
2-29825 2 days ago |
12-32105 12 days ago |
14-18260 14 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
t-category-theory
|
214/4 |
Mathlib/CategoryTheory/Monoidal/Hopf_.lean,Mathlib/RingTheory/HopfAlgebra/Basic.lean |
2 |
4 |
['github-actions', 'robin-carlier', 'sglasman'] |
kim-em assignee:kim-em |
2-29824 2 days ago |
12-45467 12 days ago |
12-44860 12 days |
| 37076 |
ertwro author:ertwro |
feat(Combinatorics/SimpleGraph/Hasse): Hasse diagram is triangle-free |
Add `SimpleGraph.hasse_cliqueFree_three`: the Hasse diagram of a preorder is triangle-free (`CliqueFree 3`).
This is the graph-theoretic formulation of `not_covBy_of_lt_of_lt`: if `a ⋖ b` and `b ⋖ c`, then `¬ a ⋖ c`, so no three elements can be pairwise adjacent in the Hasse diagram.
The proof extracts three vertices from a hypothetical 3-clique, case-splits on the covering directions (8 cases), and closes each by `not_covBy_of_lt_of_lt` (6 transitive cases) or `lt_asymm` (2 cyclic cases).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
11/0 |
Mathlib/Combinatorics/SimpleGraph/Hasse.lean |
1 |
21 |
['Rida-Hamadani', 'SnirBroshi', 'ertwro', 'github-actions', 'vlad902'] |
nobody |
2-18876 2 days ago |
2-18931 2 days ago |
10-28104 10 days |
| 38026 |
mrdouglasny author:mrdouglasny |
feat(Analysis/Calculus): define absolutely monotone functions |
## Summary
- Define `AbsolutelyMonotoneOn f s` for functions `f : ℝ → ℝ` that are smooth on `s` with all iterated derivatives within `s` nonneg
- Prove closure under `add`, `smul`, `mul`
- Show `exp`, `cosh`, constants, and powers are absolutely monotone on appropriate domains
This is the first part of a split of #37879. Follow-up PRs will add:
- Bernstein backward direction (nonneg coefficients → absolutely monotone)
- Bernstein forward direction (absolutely monotone → analytic at 0)
- Matrix applications (Schur product theorem for power series, entrywise exp)
## Test plan
- [ ] CI passes (build + lint)
- [ ] Verify `AbsolutelyMonotoneOn` structure and examples type-check
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.6 (1M context) |
t-analysis
new-contributor
LLM-generated
|
93/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/AbsolutelyMonotone.lean,docs/references.bib |
3 |
15 |
['github-actions', 'j-loreaux', 'mrdouglasny', 'vihdzp', 'wwylele'] |
nobody |
2-14305 2 days ago |
2-14305 2 days ago |
3-21195 3 days |
| 36621 |
quantumsnow author:quantumsnow |
feat: add the category of topological pairs |
This is needed for the Eilenberg-Steenrod axioms for a homology theory.
---
- [x] depends on: #37540
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
255/9 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean,Mathlib/Topology/Category/TopCat/Limits/Basic.lean,Mathlib/Topology/Category/TopPair.lean,Mathlib/Topology/Homotopy/TopCat/Basic.lean |
5 |
86 |
['chrisflav', 'dagurtomas', 'erdOne', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'quantumsnow', 'vlad902'] |
dagurtomas assignee:dagurtomas |
1-81834 1 day ago |
2-49248 2 days ago |
9-21159 9 days |
| 33714 |
idontgetoutmuch author:idontgetoutmuch |
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II |
Supersedes https://github.com/leanprover-community/mathlib4/pull/33519
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
723/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean |
4 |
200 |
['Rida-Hamadani', 'github-actions', 'grunweg', 'idontgetoutmuch'] |
ocfnash assignee:ocfnash |
1-69934 1 day ago |
1-69934 1 day ago |
46-76780 46 days |
| 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 |
1-58836 1 day ago |
16-28216 16 days ago |
41-17474 41 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'] |
nobody |
1-30385 1 day ago |
54-56240 54 days ago |
57-3519 57 days |
| 37801 |
eliasjudin author:eliasjudin |
refactor(Algebra/MvPolynomial): generalize pUnitAlgEquiv to Unique |
## Summary
Generalize `MvPolynomial.pUnitAlgEquiv` to `MvPolynomial.uniqueAlgEquiv` for any `[Unique σ]`:
$$
\mathrm{MvPolynomial}\ \sigma\ R \simeq_R R[X].
$$
The equivalence is induced by
$$
X_i \mapsto X,
$$
and its inverse is induced by
$$
X \mapsto X_{\mathrm{default}}.
$$
For `d : σ →₀ ℕ` and `r : R`, the monomial lemmas identify
$$
\mathrm{monomial}(d,r)
\mapsto
\mathrm{monomial}(d(\mathrm{default}),r),
$$
with the corresponding inverse statement.
The evaluation lemmas state that for `φ : R →+* S` and `a : σ → S`, evaluation after `uniqueAlgEquiv` is evaluation at the unique variable value `a default`:
$$
\mathrm{eval}_2(\varphi, a(\mathrm{default}))\bigl(\mathrm{uniqueAlgEquiv}_{R,\sigma}(f)\bigr)=\mathrm{eval}_2(\varphi, a)(f),
$$
together with the inverse and constant-variable special cases.
Keep `pUnitAlgEquiv` as a deprecated compatibility abbreviation and migrate downstream uses to the new API.
This PR adds proofs autoformalised by @Aristotle-Harmonic.
## Motivation
The old API proves the canonical one-variable equivalence only for `PUnit`:
$$
\mathrm{MvPolynomial}\ \mathrm{PUnit}\ R \simeq_R R[X].
$$
The natural hypothesis is `[Unique σ]`, giving the same equivalence for any one-element index type:
$$
\mathrm{MvPolynomial}\ \sigma\ R \simeq_R R[X].
$$
This avoids inserting an auxiliary equivalence `σ ≃ PUnit` in one-variable arguments, and removes the need for separate APIs for other singleton index types such as `Fin 1`.
Co-authored-by: Aristotle (Harmonic) |
t-algebraic-geometry
new-contributor
|
107/48 |
Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/AlgebraicGeometry/AffineSpace.lean,Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean,Mathlib/RingTheory/AlgebraicIndependent/Transcendental.lean,Mathlib/RingTheory/FinitePresentation.lean,Mathlib/RingTheory/FreeCommRing.lean,Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/Evaluation.lean,Mathlib/RingTheory/Smooth/Basic.lean |
9 |
16 |
['eliasjudin', 'eric-wieser', 'github-actions', 'wwylele'] |
riccardobrasca assignee:riccardobrasca |
1-29868 1 day ago |
2-83340 2 days ago |
5-51682 5 days |
| 37527 |
bryanboehnke author:bryanboehnke |
feat(LocalRing/Etale): Finite étale extensions of local rings are monogenic |
Formalization of Lemma 3.2 from https://arxiv.org/abs/2503.07846: Given a finite extension of local rings R -> S, if the extension is étale, then there exists β ∈ S such that R[β] = S. Furthermore, if f(z) ∈ R[z] is the minimal polynomial of β, then f′(β) is a unit in S. This file also includes some relevant intermediate results used in the formalization of the proof of Lemma 3.1 from the same paper.
Co-authored-by: George Peykanu
Co-authored-by: Bianca Viray
Co-authored-by: Grant Yang
---
- [ ] depends on: #36421
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
148/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/Etale.lean |
2 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-29681 1 day ago |
1-29705 1 day ago |
1-50075 1 day |
| 37071 |
ericluap author:ericluap |
feat: Dedekind completion of rationals is isomorphic to EReal |
|
t-order
new-contributor
|
143/4 |
Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/DedekindCut.lean,Mathlib/Order/Completion.lean,Mathlib/Order/Concept.lean |
5 |
49 |
['ericluap', 'github-actions', 'vihdzp', 'wwylele'] |
vihdzp assignee:vihdzp |
1-17815 1 day ago |
1-23134 1 day ago |
7-10839 7 days |
| 36474 |
SmwYin author:SmwYin |
feat(NumberTheory/ModularForms/QExpansion): update qExpansion API for more general objects |
This PR generalises several lemmas from `ModularFormClass` and `ModularForm` to functions on the upper half plane that are periodic, holomorphic, and bounded at infinity. This allows us to study the _q_-expansion of functions such as `q * j`, where `j` denotes the _j_-function. The specialised `ModularFormClass` and `ModularForm` lemmas are retained as wrappers.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
349/235 |
Mathlib/NumberTheory/ModularForms/Bounds.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean,Mathlib/NumberTheory/ModularForms/LevelOne.lean,Mathlib/NumberTheory/ModularForms/Petersson.lean,Mathlib/NumberTheory/ModularForms/QExpansion.lean |
5 |
59 |
['CBirkbeck', 'MichaelStollBayreuth', 'SmwYin', 'github-actions', 'loefflerd', 'mathlib-bors', 'mathlib-merge-conflicts', 'tb65536'] |
CBirkbeck and loefflerd assignee:loefflerd assignee:CBirkbeck |
0-83673 23 hours ago |
1-57132 1 day ago |
15-59070 15 days |
| 38275 |
TTony2019 author:TTony2019 |
feat: Add `AffineEquiv.image_intrinsicInterior` |
## Summary
This PR generalizes the existing lemma `AffineIsometry.image_intrinsicInterior` to the setting of affine equivalences, yielding the corresponding result `AffineEquiv.image_intrinsicInterior`.
Since affine equivalences are more general than affine isometries, the proof requires an additional finite-dimensionality assumption. The key extra input is that in finite-dimensional spaces, an affine equivalence induces a homeomorphism via `AffineEquiv.toHomeomorphOfFiniteDimensional`, so the assumptions are adjusted accordingly.
Apart from these extra assumptions, the argument is essentially the same as for `AffineIsometry.image_intrinsicInterior`.
## Collaboration
This PR was developed together with @imathwy.
|
t-analysis
new-contributor
|
28/0 |
Mathlib/Analysis/Convex/Intrinsic.lean |
1 |
4 |
['github-actions', 'themathqueen'] |
nobody |
0-79992 22 hours ago |
1-9195 1 day ago |
1-8588 1 day |
| 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
|
59/0 |
Mathlib/Data/FinEnum.lean |
1 |
12 |
['dtumad', 'github-actions', 'joneugster', 'linesthatinterlace'] |
joneugster assignee:joneugster |
0-76339 21 hours ago |
20-64476 20 days ago |
25-13702 25 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-61028 16 hours ago |
7-48327 7 days ago |
7-48483 7 days |
| 38309 |
ntapiam author:ntapiam |
feat(Algebra/NonAssoc): dendriform algebras |
Define dendriform semirings and algebras
---
This PR introduces dendriform structures such as dendriform semirings
and algebras, and proves basic facts linking them to their pre-Lie
counterparts.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
270/0 |
Mathlib.lean,Mathlib/Algebra/NonAssoc/Dendriform/Defs.lean,docs/references.bib |
3 |
3 |
['github-actions'] |
nobody |
0-54209 15 hours ago |
0-55547 15 hours ago |
0-55038 15 hours |
| 38114 |
javgomzar author:javgomzar |
feat(FinitelyPresentedGroup): add finite groups instance |
Add IsFinitelyPresented instance for finite groups.
Co-authored-by: Hang Lu Su , Thomas Browning
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
large-import
|
31/3 |
Mathlib/GroupTheory/FinitelyPresentedGroup.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean |
2 |
31 |
['github-actions', 'javgomzar', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536', 'vihdzp'] |
nobody |
0-52868 14 hours ago |
0-52870 14 hours ago |
2-42170 2 days |
| 38310 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics/Quiver/Schreier): word evaluation and reachability |
Adds word evaluation and reachability results to the Schreier graph API.
* `SchreierGraph.evalWord` : evaluates a word `List (S × Bool)` as an element of the ambient group, where `(s, true)` contributes `ι s` and `(s, false)` contributes `(ι s)⁻¹`.
* `SchreierGraph.evalWord_eq_lift` : agreement with `FreeGroup.lift`.
* `SchreierGraph.evalWord_mem_closure` : every word evaluates into the subgroup generated by `ι`.
* `SchreierGraph.pathFromWord` : a Bool-tagged word yields a path in `Symmetrify (SchreierGraph V ι)` from `x` to `evalWord ι w • x`.
* `SchreierGraph.reachable_iff` : two vertices are connected by a path in the symmetrification iff some element of the subgroup closure carries one to the other.
Follow-up to #36320.
This PR was written with AI assistance (Claude). The code has been reviewed by the author.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
large-import
|
157/0 |
Mathlib/Combinatorics/Quiver/Schreier.lean |
1 |
2 |
['github-actions'] |
nobody |
0-49176 13 hours ago |
0-49255 13 hours ago |
0-48648 13 hours |
| 38314 |
pedroscortes author:pedroscortes |
feat(CategoryTheory/Monoidal): tensorμ_braid_swap and tensor-product IsCommComonObj |
---
## Summary
Two symmetric-monoidal coherence results in a new file
`Mathlib/CategoryTheory/Monoidal/Symmetric/TensorBraidSwap.lean`:
1. `MonoidalCategory.tensorμ_braid_swap` — canonical rearrangement
`tensorμ A A Y Y` intertwines the braiding on `A ⊗ Y` with the
pair of braidings on `A` and `Y`. Sibling of
`CategoryTheory.MonObj.mul_braiding`
(`Mathlib.CategoryTheory.Monoidal.Mon_`, line 759).
2. Tensor-product instance for `IsCommComonObj`: if `A, B` carry
commutative comonoid structures in a symmetric monoidal category,
so does `A ⊗ B`. Reduces `comul_comm` for `Δ[A ⊗ B]` via
`tensorμ_braid_swap` to the pointwise hypotheses. Fills a gap
in `Mathlib/CategoryTheory/Monoidal/CommComon_.lean`, which
currently provides only the unit instance
(`instCommComonObjUnit`) and the auto-instance for cartesian
categories (`instIsCommComonObjOfCartesian`).
## Placement rationale
Placed in a new `Symmetric/` subdirectory rather than appended
to `Braided/Basic.lean` because the latter's top-level
`variable [BraidedCategory C]` creates an instance diamond
against any locally-added `[SymmetricCategory C]`. On v4.30.0-rc2
this diamond blocks `rw [SymmetricCategory.symmetry]` motive
extraction through `A ◁ _ ▷ Y` — the pattern is literally present
in the target, but the two distinct `BraidedCategory C` instances
(outer variable vs `SymmetricCategory.toBraidedCategory`) cause
the rewrite to fail. A new file with only
`[SymmetricCategory C]` as its variable avoids this.
## Downstream consumer
The `IsCommComonObj` tensor-product instance is load-bearing for
the external library
[markovcat](https://github.com/pedroscortes/markovcat) (formalising
Fritz–Klingler Markov categories), specifically for symmetry of
the conditional-independence predicate on compound objects.
## Checks
- `lake build Mathlib.CategoryTheory.Monoidal.Symmetric.TensorBraidSwap` — green.
- `lake exe lint-style` — clean (exit 0).
- Rebased onto current `master`; single commit; 72 insertions across
two files (new file + one-line `Mathlib.lean` registration).
Opening as draft to let CI run before requesting review. |
t-category-theory
new-contributor
|
72/0 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Symmetric/TensorBraidSwap.lean |
2 |
2 |
['github-actions'] |
nobody |
0-45373 12 hours ago |
0-45373 12 hours ago |
0-44766 12 hours |
| 34815 |
Deep0Thinking author:Deep0Thinking |
feat(Analysis/SpecialFunctions/ImproperIntegrals): Frullani integral |
- [x] depends on: #34966
---
Add a proof of **Frullani integral**.
Main theorems:
- `Frullani.integral_Ioi`
- `IntegrableOn.tendsto_integral_Ioi`
- `exists_integral_div_eq_mul_log`
Supporting lemmas:
- `Frullani.comp_mul_left_div`
- `Frullani.intervalIntegrable_div`
- `Frullani.exists_integral_div_eq_mul_log`
- `Ioi_diff_Ioc`
- `ContinuousOn.comp_mul_left_div`, `ContinuousOn.comp_mul_right_div`
- `ContinuousOn.comp_mul_left`, `ContinuousOn.comp_mul_right`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-analysis
|
265/4 |
Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/MeanValue.lean,Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/Monoid.lean |
4 |
10 |
['CoolRmal', 'Deep0Thinking', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'sgouezel'] |
urkud assignee:urkud |
0-43320 12 hours ago |
0-46734 12 hours ago |
7-1098 7 days |
| 36787 |
hommmmm author:hommmmm |
feat(RingTheory/LocalRing): Krull dimension results for maximal ideal of local ring |
Adds 1 declaration:
* `IsLocalRing.maximalIdeal_sq_lt`: In a Noetherian local ring of positive Krull dimension, the square of the maximal ideal is a proper subset of the maximal ideal.
Thanks to Dora Kassabova and Leopold Mayer for edit suggestions.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
12/0 |
Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean |
1 |
18 |
['NoahW314', 'chrisflav', 'github-actions', 'hommmmm', 'tb65536', 'wwylele'] |
chrisflav assignee:chrisflav |
0-41791 11 hours ago |
0-41820 11 hours ago |
33-81225 33 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 |
45 |
['Vilin97', 'YanYablonovskiy', 'adomani', 'botbaki-review', 'copilot-pull-request-reviewer', 'dagurtomas', 'eric-wieser', 'github-actions', 'grunweg', 'j-loreaux', 'wwylele'] |
j-loreaux assignee:j-loreaux |
0-39159 10 hours ago |
5-43141 5 days ago |
31-24183 31 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 |
8 |
['JadAbouHawili', 'artie2000', 'github-actions', 'wwylele'] |
nobody |
0-34214 9 hours ago |
9-47159 9 days ago |
12-66140 12 days |
| 38319 |
Zetetic-Dhruv author:Zetetic-Dhruv |
feat(Combinatorics/SetFamily): Assouad's dual VC bound |
Adds the Finset-level form of Assouad's 1983 dual VC bound: if a family
`𝒜 : Finset (Finset α)` has VC dimension at most `d`, then for any
ground set `X : Finset α` the dual family
`{𝒜.filter (· ∋ x) : x ∈ X}` has VC dimension at most `2 ^ (d + 1) - 1`.
New declarations (in `Finset` namespace):
- `dualFamily 𝒜 X`: for each `x ∈ X`, the subfamily `{A ∈ 𝒜 | x ∈ A}`
- `mem_dualFamily` (`@[simp]`): membership characterisation
- `exists_shatters_of_dualFamily_shatters`: Assouad's bitstring-coding lemma
- `vcDim_dualFamily_le`: the headline VC bound
Proof by Assouad's classical bitstring-coding argument. Sits on top of `Finset.shatterer` / `Finset.vcDim` from
`Mathlib.Combinatorics.SetFamily.Shatter`.
References:
- P. Assouad, Densite et dimension, Ann. Inst. Fourier 33(3) (1983), Thm 2.13
- J. Matousek, Lectures on Discrete Geometry, GTM 212, Springer, 2002, Section 10.3 Lemma 10.3.3
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
187/0 |
Mathlib.lean,Mathlib/Combinatorics/SetFamily/DualVC.lean |
2 |
5 |
['Shreyas4991', 'Zetetic-Dhruv', 'github-actions'] |
nobody |
0-31236 8 hours ago |
0-35425 9 hours ago |
0-34818 9 hours |
| 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'] |
nobody |
0-30386 8 hours ago |
44-71524 44 days ago |
51-37234 51 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'] |
mariainesdff assignee:mariainesdff |
0-29901 8 hours ago |
31-82453 31 days ago |
31-81846 31 days |
| 38308 |
drocta author:drocta |
feat(Algebra/Colimit/DirectLimit): add star structures (Star, StarRing, etc.) on DirectLimit |
add `Star`, `InvolutiveStar`, `StarMul`, `StarAddMonoid`, `StarRing`, and `StarModule` instances to `DirectLimit`, following the pattern of existing algebraic structures in `Mathlib.Algebra.Colimit.DirectLimit`.
also add the universal property API (`of`, `lift`, `hom_ext`, `of_f`, `lift_of`) for `StarRing`.
---
Use of AI:
I did make some use of ChatGPT for some advice while writing this code, as well as the auto-complete built into VS Code. However, I can personally vouch for all of the code I am submitting, and that I understand all of it.
This is the first part of my project towards supporting direct limits of $C^*$-algebras (as I described [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Early.20feedback.20on.20approach.20towards.20formalizing.20UHF.20algebras.3F) ).
This PR adds an import of `Mathlib.Algebra.Star.StarRingHom` to `Mathlib.Algebra.Colimit.DirectLimit`, because it needs it.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
127/6 |
Mathlib/Algebra/Colimit/DirectLimit.lean |
1 |
9 |
['drocta', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
0-26318 7 hours ago |
0-59652 16 hours ago |
0-59045 16 hours |
| 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$ |
16/7 |
Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean |
2 |
12 |
['github-actions', 'leanprover-radar', 'mortarsanjaya', 'themathqueen'] |
nobody |
0-20496 5 hours ago |
0-42050 11 hours ago |
5-4638 5 days |
| 38170 |
maddycrim author:maddycrim |
feat(Algebra/Module/FinitePresentation) : Finitely Presented Module Lemma |
From FLT Project
Main Definitions:
`Module.FinitePresentation.exists_fin_exact` : A finitely presented module M admits an exact sequence F' -> F -> M -> 0 where F' and F are finite free modules.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
14/0 |
Mathlib/Algebra/Module/FinitePresentation.lean |
1 |
14 |
['github-actions', 'maddycrim', 'themathqueen'] |
nobody |
0-20068 5 hours ago |
0-25639 6 hours ago |
3-47676 3 days |
| 38296 |
mike1729 author:mike1729 |
feat(MeasureTheory/LpSpace): Isometric embedding L∞ → (L¹)* |
For a finite measure `μ` and scalar field `𝕜` (any `RCLike`), adds the isometric `𝕜`-linear embedding `Lp 𝕜 ∞
μ →ₗᵢ[𝕜] StrongDual 𝕜 (Lp 𝕜 1 μ)` given by the pairing `g f ↦ ∫ x, g x * f x ∂μ`. Surjectivity (upgrading to
the isometric equivalence `Lp 𝕜 ∞ μ ≃ₗᵢ[𝕜] StrongDual 𝕜 (Lp 𝕜 1 μ)`) is addressed in the follow-up PR:
https://github.com/leanprover-community/mathlib4/pull/38295.
New declarations:
- `Mathlib/MeasureTheory/Function/LpSpace/Dual.lean` (new file): `MeasureTheory.Lp.lInftyL1Pairing`,
`norm_le_norm_lpPairing_mul_apply`, `lInftyToL1Dualₗᵢ` (and its `_apply_apply` simp lemma).
- `Mathlib/MeasureTheory/Function/LpSpace/Basic.lean`: `MeasureTheory.Lp.ae_norm_le_norm`,
`MeasureTheory.Lp.measure_norm_gt_pos_of_lt_norm` (general `L∞` helper lemmas).
- `Mathlib/MeasureTheory/Function/Holder.lean`: `ContinuousLinearMap.norm_lpPairing_apply_apply_le`,
`norm_lpPairing_apply_le` (Hölder-style operator-norm bounds for `lpPairing`).
Future PRs:
- generalize to Holder conjugates with `p>1`,
- generalize to sigma finite measures.
-->
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
176/0 |
Mathlib.lean,Mathlib/MeasureTheory/Function/Holder.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Dual.lean |
4 |
5 |
['github-actions', 'kbuzzard', 'mike1729'] |
kex-y assignee:kex-y |
0-15357 4 hours ago |
0-68088 18 hours ago |
0-67481 18 hours |
| 38316 |
tannerduve author:tannerduve |
feat(Order/OmegaCompletePartialOrder): least fixed point and Scott induction |
Add `lfp` for endomorphisms on an ωCPO with a least element and its basic API (`map_lfp`, `isFixedPt_lfp`, `lfp_le_fixed`, `isLeast_lfp`) and the Scott induction theorem `lfp_induction`
Also add corresponding induction principles for `Part.fix`: `fix_scott_induction` (ω-Scott continuous functional, admissible predicate) and `fix_scott_induction_pointwise` |
new-contributor |
101/0 |
Mathlib/Control/LawfulFix.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,docs/references.bib |
3 |
2 |
['github-actions'] |
nobody |
0-11942 3 hours ago |
0-30858 8 hours ago |
0-30777 8 hours |
| 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
|
193/115 |
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 |
8 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mike1729'] |
nobody |
0-3287 54 minutes ago |
0-3313 45 minutes ago |
25-42996 25 days |