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-73581 30 days ago |
32-69984 32 days ago |
34-12492 34 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-58955 29 days ago |
29-60554 29 days ago |
29-76061 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-82694 26 days ago |
31-21282 31 days ago |
33-4127 33 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-30420 25 days ago |
27-49431 27 days ago |
27-49420 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-78935 21 days ago |
21-82418 21 days ago |
21-82407 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-43972 21 days ago |
23-34824 23 days ago |
23-34813 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-43963 21 days ago |
26-63685 26 days ago |
26-63676 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-76425 20 days ago |
20-78579 20 days ago |
21-45582 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-54516 20 days ago |
20-55536 20 days ago |
34-36360 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-43657 20 days ago |
29-61898 29 days ago |
34-11094 34 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-18431 20 days ago |
20-19733 20 days ago |
20-26194 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 |
20-13460 20 days ago |
20-13525 20 days ago |
20-13514 20 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 |
20-6093 20 days ago |
26-59024 26 days ago |
26-59013 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 |
20-569 20 days ago |
31-79617 31 days ago |
31-80435 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-53851 19 days ago |
19-53876 19 days ago |
20-63757 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-44077 19 days ago |
20-1439 20 days ago |
20-29038 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-44061 19 days ago |
20-14075 20 days ago |
20-14064 20 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-15261 19 days ago |
19-15297 19 days ago |
19-43807 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-85818 18 days ago |
18-85889 18 days ago |
18-85878 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-55314 18 days ago |
18-55383 18 days ago |
18-55372 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-53953 18 days ago |
18-54029 18 days ago |
18-54018 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-43971 18 days ago |
33-81863 33 days ago |
33-81860 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-43963 18 days ago |
19-4763 19 days ago |
19-4752 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-40254 18 days ago |
18-40312 18 days ago |
32-50629 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 |
18-13468 18 days ago |
18-13515 18 days ago |
75-83371 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-84858 17 days ago |
25-48391 25 days ago |
25-54077 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-83708 17 days ago |
17-84859 17 days ago |
19-30461 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-70225 17 days ago |
17-72890 17 days ago |
60-57696 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-69927 17 days ago |
17-69971 17 days ago |
18-51485 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-65285 17 days ago |
21-36396 21 days ago |
21-36529 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-65284 17 days ago |
17-71545 17 days ago |
90-40326 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-50155 17 days ago |
17-50229 17 days ago |
17-50218 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-46575 17 days ago |
18-69071 18 days ago |
18-69060 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-44102 17 days ago |
25-44235 25 days ago |
25-44224 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-44096 17 days ago |
19-3547 19 days ago |
19-3536 19 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-77526 16 days ago |
16-77581 16 days ago |
29-58006 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-72253 16 days ago |
16-72292 16 days ago |
16-72365 16 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-33521 16 days ago |
16-53207 16 days ago |
16-53196 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-78475 15 days ago |
16-60313 16 days ago |
38-72050 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-59738 15 days ago |
15-59812 15 days ago |
15-59801 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-56668 15 days ago |
15-56749 15 days ago |
15-56738 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-43862 15 days ago |
24-3911 24 days ago |
24-4242 24 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-43860 15 days ago |
20-80967 20 days ago |
20-81004 20 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-71971 14 days ago |
14-72028 14 days ago |
21-38260 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-63618 14 days ago |
14-63679 14 days ago |
41-30731 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-57358 14 days ago |
14-57358 14 days ago |
14-69313 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-43947 14 days ago |
20-80403 20 days ago |
20-80392 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-18420 14 days ago |
15-17045 15 days ago |
15-17034 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 |
14-11248 14 days ago |
14-11301 14 days ago |
18-79406 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-82218 13 days ago |
13-82294 13 days ago |
13-82283 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-74810 13 days ago |
13-74873 13 days ago |
13-76105 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-74312 13 days ago |
13-80970 13 days ago |
13-80959 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-74223 13 days ago |
13-80835 13 days ago |
13-80824 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-72003 13 days ago |
13-72003 13 days ago |
13-72382 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-68779 13 days ago |
13-68839 13 days ago |
15-85465 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-50495 13 days ago |
14-2041 14 days ago |
14-2873 14 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-43886 13 days ago |
14-76202 14 days ago |
17-83591 17 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-39720 13 days ago |
13-39795 13 days ago |
13-39784 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-30665 13 days ago |
13-30724 13 days ago |
20-62456 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-14811 13 days ago |
15-81663 15 days ago |
15-81796 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 |
13-12643 13 days ago |
13-16602 13 days ago |
16-73030 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 |
13-11022 13 days ago |
13-13730 13 days ago |
32-40620 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 |
13-4665 13 days ago |
20-86361 20 days ago |
42-81619 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 |
13-414 13 days ago |
13-470 13 days ago |
35-80918 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-81969 12 days ago |
12-82227 12 days ago |
14-23220 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-77282 12 days ago |
12-77308 12 days ago |
27-6584 27 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-60123 12 days ago |
12-59825 12 days ago |
28-70522 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-53696 12 days ago |
12-56730 12 days ago |
12-57045 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-53212 12 days ago |
12-53237 12 days ago |
47-83908 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-48871 12 days ago |
19-3420 19 days ago |
34-61628 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-44121 12 days ago |
36-8525 36 days ago |
36-8515 36 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-44118 12 days ago |
15-84130 15 days ago |
27-48478 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-44112 12 days ago |
15-73501 15 days ago |
17-10625 17 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-18242 12 days ago |
22-54058 22 days ago |
22-54047 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-84555 11 days ago |
11-84555 11 days ago |
29-11700 29 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-79276 11 days ago |
11-79358 11 days ago |
11-79347 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-72778 11 days ago |
11-72838 11 days ago |
26-47701 26 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-63153 11 days ago |
24-50961 24 days ago |
24-50950 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-57338 11 days ago |
36-78334 36 days ago |
36-78323 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-56947 11 days ago |
14-81392 14 days ago |
14-81381 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-52083 11 days ago |
11-52155 11 days ago |
13-49253 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-50503 11 days ago |
11-50561 11 days ago |
21-56897 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-43917 11 days ago |
39-9067 39 days ago |
39-10845 39 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-43906 11 days ago |
12-20311 12 days ago |
12-20300 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-43905 11 days ago |
12-16553 12 days ago |
12-16542 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-28890 11 days ago |
11-28925 11 days ago |
156-40760 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-28325 11 days ago |
13-7431 13 days ago |
13-12717 13 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-19997 11 days ago |
11-35572 11 days ago |
17-14591 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-19816 11 days ago |
11-19975 11 days ago |
59-47072 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 |
11-13547 11 days ago |
11-81210 11 days ago |
11-81199 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 |
11-10029 11 days ago |
11-84395 11 days ago |
11-84391 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 |
11-9637 11 days ago |
13-11519 13 days ago |
19-69953 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 |
11-8518 11 days ago |
11-12431 11 days ago |
28-69723 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-83684 10 days ago |
10-85961 10 days ago |
10-86021 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-82510 10 days ago |
10-82510 10 days ago |
10-82500 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-70797 10 days ago |
10-70797 10 days ago |
10-70787 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-44130 10 days ago |
32-60081 32 days ago |
32-71291 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-44034 10 days ago |
33-14498 33 days ago |
33-17605 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-44022 10 days ago |
11-35033 11 days ago |
11-38259 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-41863 10 days ago |
11-4083 11 days ago |
11-4074 11 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-21238 10 days ago |
10-21298 10 days ago |
34-79466 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-18878 10 days ago |
10-18939 10 days ago |
28-16512 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-18842 10 days ago |
36-61410 36 days ago |
36-61399 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 |
10-1561 10 days ago |
10-1616 10 days ago |
10-1992 10 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-65364 9 days ago |
10-50482 10 days ago |
10-50471 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-64191 9 days ago |
9-64249 9 days ago |
14-76555 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-61543 9 days ago |
9-71010 9 days ago |
13-56755 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-51227 9 days ago |
10-10178 10 days ago |
10-10167 10 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-43714 9 days ago |
19-69530 19 days ago |
19-69723 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-43712 9 days ago |
19-57208 19 days ago |
19-57197 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-43711 9 days ago |
10-43426 10 days ago |
10-50494 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-28400 9 days ago |
9-28458 9 days ago |
21-18237 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-25103 9 days ago |
10-81202 10 days ago |
10-81191 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 |
9-10765 9 days ago |
9-10823 9 days ago |
44-54054 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-84927 8 days ago |
15-85965 15 days ago |
19-46205 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-81397 8 days ago |
8-83064 8 days ago |
8-85835 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-78410 8 days ago |
8-78470 8 days ago |
8-79307 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-64531 8 days ago |
8-64589 8 days ago |
14-32029 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-63723 8 days ago |
8-63774 8 days ago |
24-34562 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-53048 8 days ago |
8-71088 8 days ago |
8-72878 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-50360 8 days ago |
8-67380 8 days ago |
8-67369 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-43629 8 days ago |
30-61078 30 days ago |
51-16079 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-43627 8 days ago |
44-60683 44 days ago |
44-60672 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-30901 8 days ago |
8-31410 8 days ago |
8-31399 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-15614 8 days ago |
15-52302 15 days ago |
15-52869 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 |
8-7084 8 days ago |
8-65994 8 days ago |
21-56264 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 |
8-5407 8 days ago |
8-5471 8 days ago |
8-6048 8 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 |
8-3161 8 days ago |
8-2955 8 days ago |
46-11402 46 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-82206 7 days ago |
7-82267 7 days ago |
59-62556 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-82170 7 days ago |
9-19250 9 days ago |
9-19240 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-81108 7 days ago |
12-9087 12 days ago |
12-11454 12 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-73312 7 days ago |
7-73369 7 days ago |
7-76503 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-58452 7 days ago |
7-79032 7 days ago |
8-54915 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-53417 7 days ago |
7-53483 7 days ago |
7-53472 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-52908 7 days ago |
7-52932 7 days ago |
10-65258 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-49076 7 days ago |
7-80851 7 days ago |
11-29209 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-44132 7 days ago |
36-37512 36 days ago |
37-6216 37 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-44131 7 days ago |
97-61237 97 days ago |
97-61226 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-44130 7 days ago |
81-66040 81 days ago |
93-25044 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-44123 7 days ago |
30-33172 30 days ago |
30-38550 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-43632 7 days ago |
32-83657 32 days ago |
46-23836 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-43630 7 days ago |
34-44072 34 days ago |
34-44061 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-43629 7 days ago |
19-53842 19 days ago |
21-20363 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-43621 7 days ago |
10-11436 10 days ago |
10-11651 10 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-16117 7 days ago |
8-49529 8 days ago |
21-77005 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 |
7-12994 7 days ago |
7-13015 7 days ago |
11-22441 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 |
7-5679 7 days ago |
7-6819 7 days ago |
7-6910 7 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 |
7-3542 7 days ago |
7-10886 7 days ago |
12-14088 12 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 |
7-885 7 days ago |
13-44236 13 days ago |
24-81108 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-85524 6 days ago |
6-85552 6 days ago |
26-40578 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-72015 6 days ago |
8-50958 8 days ago |
19-53189 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-68986 6 days ago |
15-79431 15 days ago |
29-22489 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-59492 6 days ago |
7-56023 7 days ago |
7-57629 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-54372 6 days ago |
6-54110 6 days ago |
20-71081 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-44132 6 days ago |
33-41664 33 days ago |
33-41653 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-43671 6 days ago |
45-23329 45 days ago |
45-23318 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-43669 6 days ago |
38-44101 38 days ago |
38-44090 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-43669 6 days ago |
36-81571 36 days ago |
36-81560 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-43667 6 days ago |
19-79598 19 days ago |
20-33582 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-43664 6 days ago |
19-10927 19 days ago |
19-10916 19 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-43663 6 days ago |
14-47042 14 days ago |
14-47524 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-32448 6 days ago |
6-32512 6 days ago |
6-33662 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-30996 6 days ago |
20-75468 20 days ago |
35-73326 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-25319 6 days ago |
7-1069 7 days ago |
39-4454 39 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-20806 6 days ago |
6-20867 6 days ago |
6-21950 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 |
6-10541 6 days ago |
10-3034 10 days ago |
38-34326 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 |
6-8460 6 days ago |
6-12779 6 days ago |
6-14132 6 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 |
6-4942 6 days ago |
11-51360 11 days ago |
40-80427 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 |
6-431 6 days ago |
7-20921 7 days ago |
7-20910 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-83097 5 days ago |
5-83097 5 days ago |
7-11787 7 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-82338 5 days ago |
6-2734 6 days ago |
16-36192 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-77881 5 days ago |
11-17202 11 days ago |
11-20273 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-76216 5 days ago |
7-4489 7 days ago |
7-4631 7 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-72206 5 days ago |
5-72264 5 days ago |
9-76464 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-67404 5 days ago |
8-1963 8 days ago |
8-1952 8 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-66328 5 days ago |
5-66328 5 days ago |
14-85712 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-65008 5 days ago |
5-65039 5 days ago |
5-65044 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-62007 5 days ago |
5-79664 5 days ago |
5-80091 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-59821 5 days ago |
5-73899 5 days ago |
11-53673 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-57387 5 days ago |
5-57387 5 days ago |
11-36069 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-43563 5 days ago |
74-47637 74 days ago |
77-61052 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-43561 5 days ago |
29-74612 29 days ago |
29-74601 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-43558 5 days ago |
7-42015 7 days ago |
18-77865 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-43556 5 days ago |
6-61299 6 days ago |
6-64176 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-43554 5 days ago |
6-63800 6 days ago |
6-63791 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-43551 5 days ago |
6-75225 6 days ago |
6-75214 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-38908 5 days ago |
5-42076 5 days ago |
5-45661 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-38392 5 days ago |
21-37956 21 days ago |
21-37945 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-29009 5 days ago |
5-33883 5 days ago |
5-33872 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-21481 5 days ago |
5-21481 5 days ago |
62-37842 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-16328 5 days ago |
37-28348 37 days ago |
37-28337 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 |
5-13025 5 days ago |
5-14709 5 days ago |
5-15092 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 |
5-6220 5 days ago |
5-6280 5 days ago |
8-21917 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 |
5-5176 5 days ago |
5-5140 5 days ago |
20-25692 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 |
5-3403 5 days ago |
5-3456 5 days ago |
24-6089 24 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-85741 4 days ago |
4-85801 4 days ago |
23-13052 23 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-82657 4 days ago |
4-83633 4 days ago |
4-83622 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-82323 4 days ago |
4-82389 4 days ago |
70-73056 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-81521 4 days ago |
4-81585 4 days ago |
4-81574 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-80230 4 days ago |
19-53873 19 days ago |
24-27200 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-67229 4 days ago |
10-11240 10 days ago |
10-11229 10 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-64519 4 days ago |
4-72469 4 days ago |
21-22344 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-63858 4 days ago |
16-8029 16 days ago |
34-84946 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-63847 4 days ago |
34-72373 34 days ago |
34-72362 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-59900 4 days ago |
4-59900 4 days ago |
6-13456 6 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-57403 4 days ago |
4-61491 4 days ago |
16-4296 16 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-52849 4 days ago |
4-52849 4 days ago |
19-56703 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-45591 4 days ago |
4-45591 4 days ago |
68-74313 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-44131 4 days ago |
31-44479 31 days ago |
33-63671 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-43669 4 days ago |
31-7803 31 days ago |
31-7792 31 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-43668 4 days ago |
18-79993 18 days ago |
18-79982 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-43667 4 days ago |
14-64868 14 days ago |
14-64857 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-43667 4 days ago |
14-51644 14 days ago |
14-54828 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-43665 4 days ago |
13-17394 13 days ago |
13-18470 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-43653 4 days ago |
4-64272 4 days ago |
4-65281 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-43083 4 days ago |
5-33478 5 days ago |
5-35997 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-40956 4 days ago |
4-41023 4 days ago |
4-41012 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-36842 4 days ago |
5-607 5 days ago |
5-19635 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-35608 4 days ago |
4-39089 4 days ago |
4-39078 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-32140 4 days ago |
5-35704 5 days ago |
7-33958 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-21609 4 days ago |
4-21670 4 days ago |
24-78075 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-21358 4 days ago |
4-23866 4 days ago |
4-24590 4 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-16302 4 days ago |
4-16326 4 days ago |
20-71031 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 |
4-12937 4 days ago |
19-399 19 days ago |
19-720 19 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 |
4-8584 4 days ago |
4-19266 4 days ago |
4-19357 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 |
4-8509 4 days ago |
4-14699 4 days ago |
9-25985 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 |
4-1977 4 days ago |
25-79012 25 days ago |
25-79001 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 |
4-1402 4 days ago |
4-1460 4 days ago |
6-83530 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 |
4-1269 4 days ago |
8-83649 8 days ago |
9-4472 9 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-85953 3 days ago |
3-86017 3 days ago |
3-86006 3 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-83383 3 days ago |
3-84009 3 days ago |
29-7182 29 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-81582 3 days ago |
3-81582 3 days ago |
11-18324 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-80717 3 days ago |
8-3078 8 days ago |
8-3564 8 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-80512 3 days ago |
8-11310 8 days ago |
8-23093 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-80484 3 days ago |
3-80484 3 days ago |
28-45923 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-79520 3 days ago |
3-80799 3 days ago |
151-59033 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-74362 3 days ago |
3-81486 3 days ago |
5-44186 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-73836 3 days ago |
3-76286 3 days ago |
3-81634 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-73713 3 days ago |
3-75598 3 days ago |
20-27822 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-73092 3 days ago |
17-58418 17 days ago |
29-14269 29 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-72668 3 days ago |
16-49627 16 days ago |
25-67720 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-72598 3 days ago |
3-72598 3 days ago |
19-1344 19 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-72581 3 days ago |
10-647 10 days ago |
17-43001 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-72406 3 days ago |
12-37754 12 days ago |
12-41561 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-72127 3 days ago |
3-79801 3 days ago |
5-6267 5 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-70734 3 days ago |
3-76489 3 days ago |
3-76478 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-70536 3 days ago |
7-52887 7 days ago |
10-68373 10 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-68878 3 days ago |
3-70428 3 days ago |
16-41826 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-68141 3 days ago |
3-68204 3 days ago |
3-68193 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-67107 3 days ago |
3-67107 3 days ago |
8-3848 8 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-65921 3 days ago |
3-65999 3 days ago |
3-65988 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-63831 3 days ago |
3-65750 3 days ago |
4-28231 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-63067 3 days ago |
13-56424 13 days ago |
13-56415 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-62794 3 days ago |
6-72770 6 days ago |
6-72759 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-58670 3 days ago |
5-72963 5 days ago |
14-33029 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-58342 3 days ago |
3-58414 3 days ago |
3-58403 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-57937 3 days ago |
3-57937 3 days ago |
3-57927 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-57183 3 days ago |
3-57183 3 days ago |
3-57174 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-54051 3 days ago |
3-54051 3 days ago |
3-54041 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-51311 3 days ago |
3-51995 3 days ago |
3-60770 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-50450 3 days ago |
3-50473 3 days ago |
10-37346 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-44132 3 days ago |
27-49917 27 days ago |
32-18714 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-44130 3 days ago |
31-48713 31 days ago |
74-8394 74 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-43949 3 days ago |
27-73506 27 days ago |
27-74745 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-43948 3 days ago |
8-3078 8 days ago |
63-82846 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-43948 3 days ago |
58-7640 58 days ago |
58-22135 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-43947 3 days ago |
46-34555 46 days ago |
58-18395 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-43946 3 days ago |
15-26527 15 days ago |
21-61957 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-43945 3 days ago |
24-52919 24 days ago |
29-44133 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-43944 3 days ago |
22-70720 22 days ago |
22-71264 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-43943 3 days ago |
14-81131 14 days ago |
14-81120 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-43941 3 days ago |
11-39967 11 days ago |
11-39956 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-43940 3 days ago |
8-72171 8 days ago |
8-76855 8 days |
| 38127 |
riccardobrasca author:riccardobrasca |
feat: add ClassGroup.extendedHom |
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-algebra
t-ring-theory
label:t-algebra$ |
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-43939 3 days ago |
4-67460 4 days ago |
4-67491 4 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-43934 3 days ago |
3-66680 3 days ago |
3-67630 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-39315 3 days ago |
3-39370 3 days ago |
17-21398 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-28687 3 days ago |
3-28758 3 days ago |
3-28747 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-27914 3 days ago |
3-27933 3 days ago |
29-20889 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-27099 3 days ago |
3-27099 3 days ago |
6-70639 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-25748 3 days ago |
3-25804 3 days ago |
18-29916 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-23496 3 days ago |
9-64215 9 days ago |
15-66426 15 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-21851 3 days ago |
6-11339 6 days ago |
6-11386 6 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-20331 3 days ago |
3-20354 3 days ago |
11-12200 11 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-19334 3 days ago |
3-19392 3 days ago |
8-7177 8 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-17732 3 days ago |
3-17732 3 days ago |
3-17723 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-16107 3 days ago |
3-16165 3 days ago |
15-5089 15 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-14986 3 days ago |
3-16413 3 days ago |
3-16402 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-13850 3 days ago |
3-13670 3 days ago |
3-15112 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 |
3-12338 3 days ago |
3-24693 3 days ago |
3-24682 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 |
3-12049 3 days ago |
3-12090 3 days ago |
11-13695 11 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 |
3-11822 3 days ago |
3-50276 3 days ago |
3-53056 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 |
3-11547 3 days ago |
3-14718 3 days ago |
3-15648 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 |
3-11160 3 days ago |
3-11160 3 days ago |
4-26671 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 |
3-9419 3 days ago |
3-9476 3 days ago |
3-12299 3 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 |
3-5513 3 days ago |
3-5560 3 days ago |
20-84798 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-83382 2 days ago |
3-74781 3 days ago |
3-74772 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-82529 2 days ago |
3-83067 3 days ago |
50-49063 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-79816 2 days ago |
6-54698 6 days ago |
6-55240 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-79039 2 days ago |
2-81754 2 days ago |
2-82235 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-79006 2 days ago |
3-56589 3 days ago |
3-56579 3 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-76255 2 days ago |
5-25384 5 days ago |
5-81051 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-75748 2 days ago |
2-75805 2 days ago |
64-74696 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-72024 2 days ago |
2-72024 2 days ago |
9-29038 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-68412 2 days ago |
2-68412 2 days ago |
4-31154 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-60701 2 days ago |
2-60701 2 days ago |
2-60690 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-59690 2 days ago |
2-69628 2 days ago |
3-50395 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-58771 2 days ago |
2-58838 2 days ago |
2-58827 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-58635 2 days ago |
16-48380 16 days ago |
16-48369 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-57655 2 days ago |
2-57733 2 days ago |
2-57722 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-54444 2 days ago |
11-14217 11 days ago |
11-14310 11 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-50545 2 days ago |
3-17086 3 days ago |
3-17174 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-50380 2 days ago |
2-50380 2 days ago |
2-52675 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-46140 2 days ago |
2-46210 2 days ago |
2-46199 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-44132 2 days ago |
24-68072 24 days ago |
24-68821 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-44131 2 days ago |
24-68086 24 days ago |
24-68865 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-43574 2 days ago |
14-77887 14 days ago |
19-22183 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-43574 2 days ago |
3-80263 3 days ago |
103-61841 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-43573 2 days ago |
24-56186 24 days ago |
56-53736 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-43572 2 days ago |
27-13899 27 days ago |
46-7708 46 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-43571 2 days ago |
26-84159 26 days ago |
31-33824 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-43570 2 days ago |
16-32022 16 days ago |
17-47499 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-43570 2 days ago |
12-45850 12 days ago |
14-32601 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-43569 2 days ago |
12-59212 12 days ago |
12-59201 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-43568 2 days ago |
7-80556 7 days ago |
7-81267 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-43564 2 days ago |
2-85967 2 days ago |
2-85956 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-43563 2 days ago |
2-58851 2 days ago |
2-58840 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-37714 2 days ago |
2-57083 2 days ago |
2-60620 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-32621 2 days ago |
2-32676 2 days ago |
10-42445 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-28891 2 days ago |
3-266 3 days ago |
3-1470 3 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-28736 2 days ago |
2-28815 2 days ago |
2-28804 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-28050 2 days ago |
2-28050 2 days ago |
3-35536 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-25681 2 days ago |
3-15779 3 days ago |
3-15768 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-24422 2 days ago |
2-24491 2 days ago |
2-24480 2 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 |
2-8379 2 days ago |
2-8112 2 days ago |
2-25769 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-83679 1 day ago |
1-83679 1 day ago |
47-4721 47 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-82345 1 day ago |
13-18223 13 days ago |
27-70415 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-81049 1 day ago |
2-5589 2 days ago |
6-22850 6 days |
| 38245 |
RemyDegenne author:RemyDegenne |
feat: CountableSupClosed |
Define the property for a set of being closed by countable supremum (resp. infimum).
The new file is adapted from the `SupClosed` file, which describes sets closed by binary supremum.
Also use `to_dual` on `SupClosed`.
`CountableInfClosed` will be used in measure theory, for developments related to compact systems used for Kolmogorov's extension theorem and Choquet's capacitability theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-order
brownian
|
308/66 |
Mathlib.lean,Mathlib/Order/CountableSupClosed.lean,Mathlib/Order/SupClosed.lean |
3 |
14 |
['RemyDegenne', 'b-mehta', 'github-actions', 'vihdzp'] |
nobody |
1-76128 1 day ago |
2-3978 2 days ago |
2-8691 2 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-72581 1 day ago |
16-41961 16 days ago |
41-31815 41 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-63184 1 day ago |
2-13642 2 days ago |
2-13631 2 days |
| 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-50374 1 day ago |
2-15132 2 days ago |
2-15121 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-50050 1 day ago |
2-13659 2 days ago |
2-13684 2 days |
| 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-49957 1 day ago |
2-59126 2 days ago |
2-59786 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-49397 1 day ago |
8-44956 8 days ago |
8-45133 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-48804 1 day ago |
7-52009 7 days ago |
14-12081 14 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-44132 1 day ago |
23-4732 23 days ago |
55-46061 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-44131 1 day ago |
24-68083 24 days ago |
24-68808 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-44131 1 day ago |
28-14159 28 days ago |
28-14148 28 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-44130 1 day ago |
54-69985 54 days ago |
57-17860 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-43616 1 day ago |
17-73550 17 days ago |
17-75636 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-43615 1 day ago |
2-85690 2 days ago |
18-15051 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-43614 1 day ago |
18-54248 18 days ago |
18-54237 18 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-43426 1 day ago |
1-43450 1 day ago |
1-64416 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-43082 1 day ago |
2-52700 2 days ago |
2-52689 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-34021 1 day ago |
18-13535 18 days ago |
31-83752 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-31560 1 day ago |
1-36879 1 day ago |
7-25180 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-28061 1 day ago |
29-14043 29 days ago |
29-19613 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-20843 1 day ago |
2-17188 2 days ago |
2-17177 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-18982 1 day ago |
1-18714 1 day ago |
1-19611 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-18588 1 day ago |
50-23606 50 days ago |
50-23641 50 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 |
1-13472 1 day ago |
1-13757 1 day ago |
1-13746 1 day |
| 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 |
1-13018 1 day ago |
7-38798 7 days ago |
7-46302 7 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 |
1-12577 1 day ago |
2-24851 2 days ago |
2-63462 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 |
1-11018 1 day ago |
1-70877 1 day ago |
15-73411 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 |
1-10499 1 day ago |
1-10586 1 day ago |
1-10575 1 day |
| 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 |
1-10108 1 day ago |
1-11295 1 day ago |
1-11284 1 day |
| 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 |
1-9010 1 day ago |
1-9071 1 day ago |
4-51569 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 |
1-8794 1 day ago |
1-13987 1 day ago |
1-14213 1 day |
| 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 |
1-8200 1 day ago |
10-82331 10 days ago |
10-83060 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 |
1-7337 1 day ago |
1-22940 1 day ago |
1-22929 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 |
1-3684 1 day ago |
20-78221 20 days ago |
25-28043 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 |
1-2295 1 day ago |
1-77890 1 day ago |
1-77879 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 |
1-1474 1 day ago |
1-1673 1 day ago |
1-2169 1 day |
| 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 |
1-1347 1 day ago |
1-49980 1 day ago |
1-52363 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-83422 23 hours ago |
1-10806 1 day ago |
1-10795 1 day |
| 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-78406 21 hours ago |
1-4898 1 day ago |
25-10079 25 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-78355 21 hours ago |
0-78855 21 hours ago |
0-79233 22 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-75506 20 hours ago |
10-64485 10 days ago |
10-65204 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-74773 20 hours ago |
7-62072 7 days ago |
7-62824 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-73099 20 hours ago |
0-73155 20 hours ago |
4-65338 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-72878 20 hours ago |
0-72937 20 hours ago |
0-79490 22 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-70519 19 hours ago |
0-70519 19 hours ago |
10-85116 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-70310 19 hours ago |
0-70336 19 hours ago |
35-17859 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-69587 19 hours ago |
0-69591 19 hours ago |
1-21433 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-69267 19 hours ago |
20-32893 20 days ago |
21-40584 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-68860 19 hours ago |
0-71315 19 hours ago |
0-71718 19 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-67954 18 hours ago |
0-69292 19 hours ago |
0-69379 19 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-66613 18 hours ago |
0-66615 18 hours ago |
2-56511 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-65604 18 hours ago |
1-68210 1 day ago |
1-68199 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-64451 17 hours ago |
12-6442 12 days ago |
14-6489 14 days |
| 37512 |
xgenereux author:xgenereux |
feat(Valuation/IsTrivialOn): transcendental_of_lt_one |
For a `K`-algebra `L` and a valuation `v` over `L` which is trivial on `K`, if `y : L` is such that `y ≠ 0` and `v y < 1`, then it is transcendental over `K`.
To add this result we need some lemmas from `RatFunc.AsPolynomial` which are not related to `RatFunc` so I have pulled them out of that file. I also didn't want to put this in `Valuation.Basic` so I have made a new file for valuation which are trivial over some base ring.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
48/28 |
Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/RingTheory/Valuation/Basic.lean |
2 |
4 |
['chrisflav', 'github-actions', 'xgenereux'] |
chrisflav assignee:chrisflav |
0-63153 17 hours ago |
0-63273 17 hours ago |
19-58611 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-62921 17 hours ago |
0-63000 17 hours ago |
0-62989 17 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-60475 16 hours ago |
1-83627 1 day ago |
1-83616 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-59118 16 hours ago |
0-59118 16 hours ago |
0-59107 16 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-57065 15 hours ago |
0-60479 16 hours ago |
7-15439 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-55814 15 hours ago |
0-55816 15 hours ago |
0-57521 15 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-55536 15 hours ago |
0-55565 15 hours ago |
34-9166 34 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-55387 15 hours ago |
1-45067 1 day ago |
1-45056 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-54124 15 hours ago |
0-54180 15 hours ago |
6-74991 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-52904 14 hours ago |
5-56886 5 days ago |
31-38524 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-52866 14 hours ago |
0-52937 14 hours ago |
0-52926 14 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-52865 14 hours ago |
5-47190 5 days ago |
5-48503 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-48835 13 hours ago |
0-48896 13 hours ago |
0-48955 13 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-48821 13 hours ago |
0-48880 13 hours ago |
0-49487 13 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-48134 13 hours ago |
3-48918 3 days ago |
3-51572 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-47959 13 hours ago |
9-60904 9 days ago |
12-80481 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-44981 12 hours ago |
0-49170 13 hours ago |
0-49159 13 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-44132 12 hours ago |
11-6394 11 days ago |
29-63883 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-44131 12 hours ago |
44-85269 44 days ago |
51-51575 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-43647 12 hours ago |
23-24896 23 days ago |
53-17646 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-43646 12 hours ago |
32-9798 32 days ago |
32-9787 32 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-43644 12 hours ago |
14-39490 14 days ago |
14-39479 14 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-43641 12 hours ago |
1-25954 1 day ago |
1-33910 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-43640 12 hours ago |
3-84909 3 days ago |
3-84898 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-43639 12 hours ago |
3-79879 3 days ago |
3-79868 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-43638 12 hours ago |
0-66209 18 hours ago |
0-66215 18 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-43638 12 hours ago |
1-44822 1 day ago |
1-44811 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-43635 12 hours ago |
1-14860 1 day ago |
1-14849 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-43633 12 hours ago |
0-83111 23 hours ago |
0-83100 23 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-43632 12 hours ago |
0-82475 22 hours ago |
0-82464 22 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-43119 11 hours ago |
1-14195 1 day ago |
1-14239 1 day |
| 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-42669 11 hours ago |
0-42725 11 hours ago |
0-54886 15 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-42504 11 hours ago |
0-42562 11 hours ago |
1-73925 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-38326 10 hours ago |
0-38442 10 hours ago |
0-38431 10 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-36588 10 hours ago |
0-36661 10 hours ago |
0-36650 10 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-35498 9 hours ago |
0-48917 13 hours ago |
0-49198 13 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-34924 9 hours ago |
0-37242 10 hours ago |
0-37231 10 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-34241 9 hours ago |
0-55795 15 hours ago |
5-18979 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-34042 9 hours ago |
0-34069 9 hours ago |
0-34113 9 hours |
| 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-31162 8 hours ago |
1-10861 1 day ago |
1-10850 1 day |
| 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-30987 8 hours ago |
0-31045 8 hours ago |
26-28228 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-29102 8 hours ago |
0-81833 22 hours ago |
0-81822 22 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-28134 7 hours ago |
3-66345 3 days ago |
19-33858 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-25687 7 hours ago |
0-44603 12 hours ago |
0-45118 12 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-25126 6 hours ago |
0-25207 6 hours ago |
0-25196 6 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-23696 6 hours ago |
0-23696 6 hours ago |
0-28272 7 hours |
| 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-21075 5 hours ago |
1-15138 1 day ago |
1-15127 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-20894 5 hours ago |
0-46451 12 hours ago |
28-36437 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-18344 5 hours ago |
0-18344 5 hours ago |
19-50996 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-18278 5 hours ago |
5-1412 5 days ago |
16-48215 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-17546 4 hours ago |
3-44819 3 days ago |
9-31406 9 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-17032 4 hours ago |
0-17058 4 hours ago |
25-57337 25 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-16862 4 hours ago |
19-59253 19 days ago |
19-59242 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-16116 4 hours ago |
1-5284 1 day ago |
1-5273 1 day |
| 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-15360 4 hours ago |
5-316 5 days ago |
5-305 5 days |
| 35820 |
smmercuri author:smmercuri |
feat: unit lemmas and embedding for `FiniteAdeleRing` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
42/4 |
Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean |
1 |
11 |
['Multramate', 'Ruben-VandeVelde', 'github-actions', 'smmercuri'] |
mattrobball assignee:mattrobball |
0-14257 3 hours ago |
0-14321 3 hours ago |
45-85230 45 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 |
10 |
['drocta', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
0-13247 3 hours ago |
0-73397 20 hours ago |
0-73386 20 hours |
| 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 |
10 |
['ADedecker', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
j-loreaux assignee:j-loreaux |
0-12704 3 hours ago |
4-12749 4 days ago |
14-58189 14 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 |
9 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mike1729'] |
urkud assignee:urkud |
0-12436 3 hours ago |
18-59075 18 days ago |
18-59348 18 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'] |
nobody |
0-12112 3 hours ago |
18-40312 18 days ago |
29-73375 29 days |
| 37439 |
ADedecker author:ADedecker |
feat: UniformConvergenceCLM version of ContinuousLinearEquiv.arrowCongr |
The absence of `@[simp]` attribute comes from the fact that the generated lemmas would break the API boundary.
I think the solution to all of this will eventually be to define generic type aliases `Topology.WithUniform` / `Topology.WithUniformOn` / `Topology.WithPointwise`... which will behave like [WithLp](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Normed/Lp/WithLp.html#WithLp) (thus disabling the very-abused defeqs around here).
---
- [ ] 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 |
6 |
['ADedecker', 'github-actions', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
loefflerd assignee:loefflerd |
0-11632 3 hours ago |
14-6098 14 days ago |
15-30668 15 days |
| 38083 |
tb65536 author:tb65536 |
feat(RingTheory/DiscreteValuationRing/Basic): compute the length of the quotient of a DVR |
This PR computes the length of the quotient of a DVR by constructing an order isomorphism between the ideals and the order dual of `ENat`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
large-import
label:t-algebra$ |
54/0 |
Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean |
2 |
7 |
['github-actions', 'robin-carlier', 'tb65536'] |
robin-carlier assignee:robin-carlier |
0-9653 2 hours ago |
0-9653 2 hours ago |
5-63043 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 |
15 |
['github-actions', 'maddycrim', 'themathqueen'] |
nobody |
0-5630 1 hour ago |
0-39384 10 hours ago |
3-62017 3 days |
| 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
maintainer-merge
|
3/11 |
Mathlib/Analysis/Complex/Trigonometric.lean |
1 |
8 |
['github-actions', 'leanprover-radar', 'themathqueen', 'yuanyi-350'] |
nobody |
0-3999 1 hour ago |
0-39184 10 hours ago |
0-78468 21 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
maintainer-merge
|
2/13 |
Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean |
1 |
4 |
['github-actions', 'themathqueen', 'yuanyi-350'] |
nobody |
0-3966 1 hour ago |
1-24090 1 day ago |
1-24521 1 day |
| 38332 |
tb65536 author:tb65536 |
feat(RingTheory/Frobenius): Frobenius elements lie in the decomposition group |
This PR proves that Frobenius elements lie in the decomposition group.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-ring-theory
t-number-theory
label:t-algebra$ |
9/0 |
Mathlib/RingTheory/Frobenius.lean |
1 |
1 |
['github-actions'] |
nobody |
0-3745 1 hour ago |
0-3745 1 hour ago |
0-3735 1 hour |
| 38333 |
tb65536 author:tb65536 |
feat(RepresentationTheory/Coinvariants): finiteness instance for coinvariants |
This PR adds an instance stating that the coinvariants of a finite-dimensional representation remains finite-dimensional.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
3/0 |
Mathlib/RepresentationTheory/Coinvariants.lean |
1 |
1 |
['github-actions'] |
nobody |
0-3501 58 minutes ago |
0-3501 58 minutes ago |
0-3491 58 minutes |
| 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
maintainer-merge
|
53/0 |
Mathlib/AlgebraicTopology/SimplicialSet/KanComplex/MulStruct.lean |
1 |
6 |
['github-actions', 'joelriou', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
0-3071 51 minutes ago |
0-3940 1 hour ago |
3-73458 3 days |
| 38335 |
riccardobrasca author:riccardobrasca |
feat: add Monoid.End.ext |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
easy
label:t-algebra$ |
5/0 |
Mathlib/Algebra/Group/Hom/Defs.lean |
1 |
1 |
['github-actions'] |
nobody |
0-2323 38 minutes ago |
0-2397 39 minutes ago |
0-2386 39 minutes |
| 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 |
0-2051 34 minutes ago |
4-16837 4 days ago |
7-46960 7 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-1964 32 minutes ago |
6-16635 6 days ago |
6-19946 6 days |
| 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
maintainer-merge
|
4/4 |
Mathlib/CategoryTheory/Limits/Shapes/Opposites/Equalizers.lean |
1 |
3 |
['github-actions', 'robin-carlier'] |
nobody |
0-1408 23 minutes ago |
0-81335 22 hours ago |
0-81324 22 hours |
| 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 |
19 |
['eliasjudin', 'eric-wieser', 'github-actions', 'leanprover-radar', 'riccardobrasca', 'wwylele'] |
riccardobrasca assignee:riccardobrasca |
0-481 8 minutes ago |
3-10685 3 days ago |
5-49289 5 days |
| 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-82694 26 days ago |
31-21282 31 days ago |
33-4127 33 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-76425 20 days ago |
20-78579 20 days ago |
21-45582 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-54516 20 days ago |
20-55536 20 days ago |
34-36360 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-43657 20 days ago |
29-61898 29 days ago |
34-11094 34 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 |
20-569 20 days ago |
31-79617 31 days ago |
31-80435 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-15261 19 days ago |
19-15297 19 days ago |
19-43807 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-40254 18 days ago |
18-40312 18 days ago |
32-50629 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 |
18-13468 18 days ago |
18-13515 18 days ago |
75-83371 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-65284 17 days ago |
17-71545 17 days ago |
90-40326 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-77526 16 days ago |
16-77581 16 days ago |
29-58006 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 |
13-11022 13 days ago |
13-13730 13 days ago |
32-40620 32 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-52083 11 days ago |
11-52155 11 days ago |
13-49253 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-28890 11 days ago |
11-28925 11 days ago |
156-40760 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-19816 11 days ago |
11-19975 11 days ago |
59-47072 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-83684 10 days ago |
10-85961 10 days ago |
10-86021 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-44034 10 days ago |
33-14498 33 days ago |
33-17605 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-44022 10 days ago |
11-35033 11 days ago |
11-38259 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-61543 9 days ago |
9-71010 9 days ago |
13-56755 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-51227 9 days ago |
10-10178 10 days ago |
10-10167 10 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-64531 8 days ago |
8-64589 8 days ago |
14-32029 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-63723 8 days ago |
8-63774 8 days ago |
24-34562 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-50360 8 days ago |
8-67380 8 days ago |
8-67369 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-58452 7 days ago |
7-79032 7 days ago |
8-54915 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-43632 7 days ago |
32-83657 32 days ago |
46-23836 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-43667 6 days ago |
19-79598 19 days ago |
20-33582 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-43663 6 days ago |
14-47042 14 days ago |
14-47524 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-20806 6 days ago |
6-20867 6 days ago |
6-21950 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-82338 5 days ago |
6-2734 6 days ago |
16-36192 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-57387 5 days ago |
5-57387 5 days ago |
11-36069 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-43551 5 days ago |
6-75225 6 days ago |
6-75214 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-16328 5 days ago |
37-28348 37 days ago |
37-28337 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-85741 4 days ago |
4-85801 4 days ago |
23-13052 23 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-67229 4 days ago |
10-11240 10 days ago |
10-11229 10 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-43667 4 days ago |
14-51644 14 days ago |
14-54828 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-43665 4 days ago |
13-17394 13 days ago |
13-18470 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-32140 4 days ago |
5-35704 5 days ago |
7-33958 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-16302 4 days ago |
4-16326 4 days ago |
20-71031 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-80717 3 days ago |
8-3078 8 days ago |
8-3564 8 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-72668 3 days ago |
16-49627 16 days ago |
25-67720 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-72581 3 days ago |
10-647 10 days ago |
17-43001 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-72406 3 days ago |
12-37754 12 days ago |
12-41561 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-72127 3 days ago |
3-79801 3 days ago |
5-6267 5 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-70734 3 days ago |
3-76489 3 days ago |
3-76478 3 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-68878 3 days ago |
3-70428 3 days ago |
16-41826 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-62794 3 days ago |
6-72770 6 days ago |
6-72759 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-43948 3 days ago |
8-3078 8 days ago |
63-82846 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-43945 3 days ago |
24-52919 24 days ago |
29-44133 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-43943 3 days ago |
14-81131 14 days ago |
14-81120 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-39315 3 days ago |
3-39370 3 days ago |
17-21398 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-28687 3 days ago |
3-28758 3 days ago |
3-28747 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-27099 3 days ago |
3-27099 3 days ago |
6-70639 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-82529 2 days ago |
3-83067 3 days ago |
50-49063 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-68412 2 days ago |
2-68412 2 days ago |
4-31154 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-54444 2 days ago |
11-14217 11 days ago |
11-14310 11 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-43574 2 days ago |
3-80263 3 days ago |
103-61841 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-43570 2 days ago |
16-32022 16 days ago |
17-47499 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-43570 2 days ago |
12-45850 12 days ago |
14-32601 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-43569 2 days ago |
12-59212 12 days ago |
12-59201 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-32621 2 days ago |
2-32676 2 days ago |
10-42445 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-28050 2 days ago |
2-28050 2 days ago |
3-35536 3 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-83679 1 day ago |
1-83679 1 day ago |
47-4721 47 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-72581 1 day ago |
16-41961 16 days ago |
41-31815 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-44130 1 day ago |
54-69985 54 days ago |
57-17860 57 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-43426 1 day ago |
1-43450 1 day ago |
1-64416 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-31560 1 day ago |
1-36879 1 day ago |
7-25180 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 |
1-11018 1 day ago |
1-70877 1 day ago |
15-73411 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 |
1-7337 1 day ago |
1-22940 1 day ago |
1-22929 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 |
1-3684 1 day ago |
20-78221 20 days ago |
25-28043 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-74773 20 hours ago |
7-62072 7 days ago |
7-62824 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-67954 18 hours ago |
0-69292 19 hours ago |
0-69379 19 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-66613 18 hours ago |
0-66615 18 hours ago |
2-56511 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-62921 17 hours ago |
0-63000 17 hours ago |
0-62989 17 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-59118 16 hours ago |
0-59118 16 hours ago |
0-59107 16 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-57065 15 hours ago |
0-60479 16 hours ago |
7-15439 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-55536 15 hours ago |
0-55565 15 hours ago |
34-9166 34 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-52904 14 hours ago |
5-56886 5 days ago |
31-38524 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-47959 13 hours ago |
9-60904 9 days ago |
12-80481 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-44981 12 hours ago |
0-49170 13 hours ago |
0-49159 13 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-44131 12 hours ago |
44-85269 44 days ago |
51-51575 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-43646 12 hours ago |
32-9798 32 days ago |
32-9787 32 days |
| 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-34241 9 hours ago |
0-55795 15 hours ago |
5-18979 5 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-29102 8 hours ago |
0-81833 22 hours ago |
0-81822 22 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-25687 7 hours ago |
0-44603 12 hours ago |
0-45118 12 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-17032 4 hours ago |
0-17058 4 hours ago |
25-57337 25 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 |
10 |
['drocta', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
0-13247 3 hours ago |
0-73397 20 hours ago |
0-73386 20 hours |
| 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'] |
nobody |
0-12112 3 hours ago |
18-40312 18 days ago |
29-73375 29 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 |
15 |
['github-actions', 'maddycrim', 'themathqueen'] |
nobody |
0-5630 1 hour ago |
0-39384 10 hours ago |
3-62017 3 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 |
19 |
['eliasjudin', 'eric-wieser', 'github-actions', 'leanprover-radar', 'riccardobrasca', 'wwylele'] |
riccardobrasca assignee:riccardobrasca |
0-481 8 minutes ago |
3-10685 3 days ago |
5-49289 5 days |