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 |
| 35535 |
mariainesdff author:mariainesdff |
feat(RingTheory/ClassGroup): prove mulEquiv |
We prove that isomorphic rings have isomorphic class groups.
Co-authored by: @xgenereux.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
233/9 |
Mathlib/Algebra/Ring/CompTypeclasses.lean,Mathlib/RingTheory/ClassGroup.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean,Mathlib/RingTheory/LocalProperties/Basic.lean,Mathlib/RingTheory/Localization/FractionRing.lean |
6 |
29 |
['erdOne', 'eric-wieser', 'github-actions', 'mariainesdff', 'mathlib-merge-conflicts', 'tb65536'] |
mattrobball assignee:mattrobball |
21-47654 21 days ago |
28-83394 28 days ago |
36-41482 36 days |
| 36329 |
rwst author:rwst |
feat(PowerSeries): add barebones Log.lean |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
67/0 |
Mathlib.lean,Mathlib/RingTheory/PowerSeries/Log.lean |
2 |
1 |
['github-actions'] |
mariainesdff assignee:mariainesdff |
21-47643 21 days ago |
27-70054 27 days ago |
27-70047 27 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 |
87/2 |
Mathlib/Analysis/Normed/Module/RCLike/Extend.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean |
2 |
8 |
['ADedecker', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
urkud assignee:urkud |
20-47478 20 days ago |
25-71431 25 days ago |
25-73840 25 days |
| 35285 |
SnirBroshi author:SnirBroshi |
feat(Algebra/LinearRecurrence): define a standard basis for the solution space of a linear recurrence |
Also `mkSol` is injective.
---
The hard work was already done by the existing equivalence `toInit`; this defines the basis that the equivalence provides and uses it to simplify a couple of proofs.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
24/12 |
Mathlib/Algebra/LinearRecurrence.lean |
1 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
20-47475 20 days ago |
49-36002 49 days ago |
49-35995 49 days |
| 36442 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2/Card): cardinality theorems about `Sym2 α` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
95/0 |
Mathlib.lean,Mathlib/Data/Sym/Sym2/Card.lean |
2 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
20-47461 20 days ago |
24-83270 24 days ago |
24-83263 24 days |
| 36443 |
Fieldnote-Echo author:Fieldnote-Echo |
feat(Combinatorics/SimpleGraph): add SimpleGraph.ball (open metric ball) |
Add `SimpleGraph.ball`, the open ball in the graph extended metric.
## Design decisions
- **Open ball** (strict `<`, not `≤`): `ball c ⊤` coincides with the connected
component of `c`, whereas a closed ball would give `closedBall c ⊤ = univ`.
- **Named `SimpleGraph.ball`** (not `eball`): since `dist`-valued balls are less
natural for disconnected graphs, the `e` prefix is unnecessary.
- **Graph-specific** (not via `PseudoEMetricSpace`): avoids importing `ℝ`.
AI assistance: Claude (Opus 4.6) helped draft and iterate on the implementation. I reviewed the code line by line and vouch for the final contents.
Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/SimpleGraph.20metric.20balls/with/577846803).
---
[](https://gitpod.io/from-referrer/) |
t-combinatorics
new-contributor
LLM-generated
|
59/3 |
Mathlib/Combinatorics/SimpleGraph/Metric.lean |
1 |
36 |
['Fieldnote-Echo', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'lauramonk', 'vlad902'] |
nobody |
18-83166 18 days ago |
24-81678 24 days ago |
24-81671 24 days |
| 35826 |
quangvdao author:quangvdao |
feat(Probability/ProbabilityMassFunction): total variation distance and MetricSpace instance |
Define total variation distance on probability mass functions, provide
a `MetricSpace` instance, and prove the data processing inequality.
The extended TV distance `PMF.etvDist` is defined in `ℝ≥0∞` as
`(1/2) ∑ x, absDiff (p x) (q x)`, using a new symmetric absolute
difference `ENNReal.absDiff`. The real-valued `PMF.tvDist` is its
`toReal`.
New definitions:
- `ENNReal.absDiff`: symmetric absolute difference `(a - b) + (b - a)`
- `PMF.etvDist`: extended total variation distance
- `PMF.tvDist`: real-valued total variation distance
- `PMF.instMetricSpace`: `MetricSpace` instance on `PMF α`
Main results:
- `ENNReal.absDiff_triangle`: triangle inequality for `absDiff`
- `ENNReal.absDiff_tsum_le`: subadditivity over infinite sums
- `PMF.etvDist_le_one`: TV distance is at most 1
- `PMF.etvDist_map_le`: data processing inequality (deterministic maps)
- `PMF.etvDist_bind_right_le`: data processing inequality (Markov kernels)
- `PMF.etvDist_option_punit`: closed form for binary distributions
Supersedes #33680 with a complete, sorry-free implementation.
See Zulip discussion:
This PR was authored with the support of Claude (Cursor IDE).
---
This PR provides a complete formalization of total variation distance for PMFs, including:
1. **`ENNReal.absDiff`** (`Mathlib/Data/ENNReal/AbsDiff.lean`): A symmetric absolute difference
for `ℝ≥0∞` with triangle inequality, connection to real absolute value, and algebraic properties.
The tsum-related lemmas (`absDiff_tsum_le`, `tsum_fiber`) are placed in the TV distance file
to avoid pulling topology imports into `Data.ENNReal`.
2. **`PMF.etvDist` / `PMF.tvDist`** (`Mathlib/Probability/ProbabilityMassFunction/TotalVariation.lean`):
Total variation distance with a `MetricSpace` instance, data processing inequality for both
deterministic maps and Markov kernels, and a closed form for binary distributions.
Compared to #33680, this PR:
- Has no `sorry`s
- Defines the distance in `ℝ≥0∞` first (following Mathlib convention for `edist`/`dist`)
- Includes the data processing inequality
- Has full documentation and passes all Mathlib linters
Made with [Cursor](https://cursor.com) |
t-measure-probability
LLM-generated
|
459/0 |
Mathlib.lean,Mathlib/Data/ENNReal/AbsDiff.lean,Mathlib/Probability/ProbabilityMassFunction/TotalVariation.lean |
3 |
6 |
['BoltonBailey', 'EtienneC30', 'github-actions', 'joneugster', 'quangvdao'] |
RemyDegenne assignee:RemyDegenne |
18-82940 18 days ago |
28-60864 28 days ago |
28-61638 28 days |
| 36314 |
JovanGerb author:JovanGerb |
feat(gcongr): support `rintro` patterns |
This PR adds support for `rintro` patterns in the `with` clause of `gcongr`. This makes it consistent with `congr!`.
I've only found one case in mathlib where this could actually be used to shorten a proof.
I split the gcongr `elab` into a separate `syntax` and `elab_rules`, which makes it easier to deal with the syntax.
I noticed that the implementation of `congr!` was unnecessarily converting back and forth between `rintroPat` and `rcasesPat`, so I changed it to simply only use `rintroPat`, and then did the same in `gcongr`.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
41/28 |
Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Tactic/CongrExclamation.lean,Mathlib/Tactic/Convert.lean,Mathlib/Tactic/Core.lean,Mathlib/Tactic/GCongr/Core.lean |
5 |
2 |
['dupuisf', 'github-actions'] |
dwrensha assignee:dwrensha |
18-47616 18 days ago |
28-10663 28 days ago |
28-10784 28 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'] |
RemyDegenne assignee:RemyDegenne |
17-47626 17 days ago |
22-12598 22 days ago |
22-14380 22 days |
| 36786 |
SproutSeeds author:SproutSeeds |
feat(DoubleCounting): parity of odd-degree vertices in bipartite incidence |
Adds `odd_card_filter_odd_bipartiteAbove_iff_odd_card_filter_odd_bipartiteBelow` to
`Mathlib.Combinatorics.Enumerative.DoubleCounting`.
This is the small parity-helper first step for #25231.
Validation:
- `lake build Mathlib.Combinatorics.Enumerative.DoubleCounting`
Supersedes closed #36077 after replaying the helper cleanly on current `master`.
AI usage: used Codex for branch recovery, replay onto current `master`, and draft wording;
final code choices and verification by me.
|
new-contributor
t-combinatorics
large-import
|
17/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean |
1 |
2 |
['github-actions'] |
nobody |
17-42125 17 days ago |
17-42208 17 days ago |
17-42201 17 days |
| 28685 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): prove the minimal-degree version of the Erdős-Stone theorem |
Proves the minimal degree-version of the Erdős-Stone theorem:
If `G` has a minimal degree of at least `(1 - 1 / r + o(1)) * card V`, then `G` contains a copy of a `completeEquipartiteGraph` in `r + 1` parts each of size `t`.
The double-counting construction from the proof is available in `namespace ErdosStone`.
---
- [x] depends on: #25843
- [x] depends on: #27597
- [x] depends on: #27599
- [x] depends on: #28443
- [x] depends on: #28445
- [x] depends on: #28446
- [x] depends on: #28447
This is the first of several pull requests towards the full Erdős-Stone(-Simonovits) theorem, hence the name of the file.
[](https://gitpod.io/from-referrer/) |
t-combinatorics |
323/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
YaelDillies assignee:YaelDillies |
16-47644 16 days ago |
33-27137 33 days ago |
33-27176 33 days |
| 35963 |
Parcly-Taxel author:Parcly-Taxel |
refactor: review Kleene algebra axioms |
Derive
```lean
one_add_mul_kstar (a : α) : 1 + a * a∗ = a∗
one_add_kstar_mul (a : α) : 1 + a∗ * a = a∗
```
which is Proposition 2 in Kozen's 1994 paper.
We also remove the `bot` and `bot_le` fields in `IdemSemiring`, since the remaining axioms already show `0 ≤ a` for all `a`. |
t-algebra label:t-algebra$ |
82/81 |
Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean |
3 |
13 |
['Parcly-Taxel', 'dagurtomas', 'github-actions', 'plp127', 'vihdzp'] |
mattrobball assignee:mattrobball |
16-47636 16 days ago |
22-32021 22 days ago |
32-55886 32 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'] |
kex-y assignee:kex-y |
16-23873 16 days ago |
19-12056 19 days ago |
19-12050 19 days |
| 36736 |
loefflerd author:loefflerd |
feat(NumberTheory/Modular): strengthen 2nd Fundamental-Domain Lemma |
Strengthen the results on the fundamental domain for the modular group, by proving that the interior of the fundamental domain is disjoint from any translate of the fundamental domain.
Proof closely follows Serre _A Course in Arithmetic_ (although Serre also proves that S, T generate the modular group at the same time, which we do not do, since this is proved by a different method in `FixedDetMatrices`).
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
385/56 |
Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,Mathlib/NumberTheory/Modular.lean,docs/references.bib |
5 |
14 |
['CBirkbeck', 'github-actions', 'loefflerd', 'tb65536'] |
tb65536 assignee:tb65536 |
15-82956 15 days ago |
18-64405 18 days ago |
18-82148 18 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'] |
PatrickMassot assignee:PatrickMassot |
15-47631 15 days ago |
15-63612 15 days ago |
15-74826 15 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'] |
YaelDillies assignee:YaelDillies |
14-79261 14 days ago |
16-788 16 days ago |
29-27371 29 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'] |
awainverse assignee:awainverse |
14-47669 14 days ago |
29-38086 29 days ago |
41-21930 41 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'] |
kim-em assignee:kim-em |
14-47664 14 days ago |
27-64214 27 days ago |
27-64207 27 days |
| 34797 |
vlad902 author:vlad902 |
feat(SimpleGraph): `cycleGraph.cycle` is a cycle |
(A follow-up PR will show that `cycleGraph.cycle` is also hamiltonian.)
---
- [x] depends on: #35360
- [x] depends on: #34766
- [x] depends on: #34796
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
32/1 |
Mathlib/Combinatorics/SimpleGraph/Circulant.lean |
1 |
7 |
['Ruben-VandeVelde', 'github-actions', 'mathlib-dependent-issues', 'vlad902'] |
nobody |
13-77112 13 days ago |
15-73515 15 days ago |
17-16027 17 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'] |
JovanGerb assignee:JovanGerb |
13-64608 13 days ago |
13-64609 13 days ago |
34-19614 34 days |
| 34315 |
LessnessRandomness author:LessnessRandomness |
feat(Combinatorics/SimpleGraph/Bipartite): Prove upper bound of edge set cardinality of bipartite graph |
Two ways to express upper bound of the edge set of bipartite graph:
1) If the cardinalities of both parts/sets, that make bipartite graph, are known, then the upper bound is equal to product of the cardinalities of both parts;
2) Four times of the cardinality of the edge set is less or equal to squared cardinality of vertex set.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
54/0 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean |
1 |
56 |
['LessnessRandomness', 'SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts', 'vlad902'] |
awainverse assignee:awainverse |
13-63645 13 days ago |
13-63715 13 days ago |
65-55658 65 days |
| 35413 |
joneugster author:joneugster |
fix(Util/CountHeartbeats): move elaboration in #count_heartbeats inside a namespace |
This PR continues the work from #21182.
Original PR: https://github.com/leanprover-community/mathlib4/pull/21182 |
t-meta |
73/6 |
Mathlib/Util/CountHeartbeats.lean,MathlibTest/CountHeartbeats.lean |
2 |
3 |
['github-actions', 'joneugster', 'mathlib-bors'] |
alexjbest and dwrensha assignee:dwrensha assignee:alexjbest |
13-47660 13 days ago |
46-77295 46 days ago |
46-77288 46 days |
| 35414 |
joneugster author:joneugster |
feat(Cache): Allow arguments of the form `Mathlib.Data.+` which correspond to a folder but not a file |
This PR continues the work from #21838.
Original PR: https://github.com/leanprover-community/mathlib4/pull/21838 |
CI
t-meta
|
74/31 |
Cache/IO.lean,Cache/Main.lean |
2 |
2 |
['github-actions', 'joneugster'] |
nobody |
13-47646 13 days ago |
46-77223 46 days ago |
46-77216 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'] |
chrisflav assignee:chrisflav |
13-47638 13 days ago |
17-47603 17 days ago |
17-47596 17 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'] |
YaelDillies assignee:YaelDillies |
13-20635 13 days ago |
21-47632 21 days ago |
21-47625 21 days |
| 36785 |
hommmmm author:hommmmm |
feat(RingTheory/Localization): Nagata's criterion for primality in localization away |
## Summary
- Add `dvd_of_mem_span_singleton_localization`: if `p` is prime and `p ∤ x`, then
membership in the span of the image of `x` in `R[1/p]` implies divisibility by `x`.
- Add `prime_of_prime_in_localization` (Nagata's criterion): if `p` is prime, `x` is
irreducible, and the image of `x` in `R[1/p]` is prime, then `x` is prime.
## References
- [Stacks Project, Tag 0AFU](https://stacks.math.columbia.edu/tag/0afu)
## AI Disclosure
This code is written without AI, then uses Claude Code with cameronfreer's [Lean4-skills](https://github.com/cameronfreer/lean4-skills) (specifically, the `review`, `refactor`, and `golf` workflow) for style changes, refactoring and golfing.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
72/0 |
Mathlib.lean,Mathlib/RingTheory/Localization/Away/Prime.lean |
2 |
4 |
['chrisflav', 'github-actions', 'hommmmm'] |
chrisflav assignee:chrisflav |
12-65428 12 days ago |
12-65428 12 days ago |
17-5642 17 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 |
12-62486 12 days ago |
12-64085 12 days ago |
12-79596 12 days |
| 33143 |
wwylele author:wwylele |
feat(PowerSeries): pentagonal number theorem |
The proof is split in two files: `Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean` for the algebraic part, and `Mathlib/RingTheory/PowerSeries/Pentagonal.lean` for the summability part. In the near future, I also plan to prove the real/complex version that branches off from the algebraic part.
---
- [ ] depends on: #30436
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
427/1 |
Mathlib.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml |
4 |
43 |
['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib4-dependent-issues-bot', 'tb65536', 'urkud', 'vihdzp', 'wwylele'] |
eric-wieser assignee:eric-wieser |
12-47610 12 days ago |
51-85618 51 days ago |
98-25231 98 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'] |
b-mehta assignee:b-mehta |
12-47604 12 days ago |
64-69571 64 days ago |
76-28579 76 days |
| 34809 |
YaelDillies author:YaelDillies |
feat: induced subgraphs of complete multipartite graphs are complete multipartite |
From ProofBench
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
4/2 |
Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean |
1 |
1 |
['github-actions'] |
kmill assignee:kmill |
12-47596 12 days ago |
59-62279 59 days ago |
59-62272 59 days |
| 34875 |
banrovegrie author:banrovegrie |
feat(LinearAlgebra/Matrix): add Sherman-Morrison formula |
Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap.
- Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}`
- Add `Matrix.inv_sub_vecMulVec`: subtraction variant
- Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses
## Test plan
- [x] `lake build` passes
- [x] Lines within 100 char limit
- [x] All declarations have docstrings |
t-algebra
new-contributor
label:t-algebra$ |
135/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean |
2 |
11 |
['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
eric-wieser assignee:eric-wieser |
12-47593 12 days ago |
57-82360 57 days ago |
57-82353 57 days |
| 34963 |
Parcly-Taxel author:Parcly-Taxel |
feat(Archive): proof of the Robbins conjecture |
Cf. [#mathlib4 > Alternative axiomatization of boolean algebras @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Alternative.20axiomatization.20of.20boolean.20algebras/near/558900960) and #31924. |
t-algebra label:t-algebra$ |
610/0 |
Archive.lean,Archive/Robbins.lean |
2 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
12-47592 12 days ago |
55-40218 55 days ago |
55-41863 55 days |
| 34994 |
bwangpj author:bwangpj |
feat: Countable.of_module_finite |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
FLT
label:t-algebra$ |
7/0 |
Mathlib/LinearAlgebra/Countable.lean |
1 |
3 |
['bwangpj', 'eric-wieser', 'github-actions'] |
kim-em assignee:kim-em |
12-47591 12 days ago |
54-65732 54 days ago |
54-65725 54 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$ |
53/0 |
Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
1 |
4 |
['copilot-pull-request-reviewer', 'github-actions'] |
eric-wieser assignee:eric-wieser |
12-47589 12 days ago |
36-83618 36 days ago |
47-78756 47 days |
| 36308 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Subgraph): a couple of `subgraphOfAdj` lemmas |
---
Also golfed a lemma (it's one line longer but it looks simpler to me).
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
14/5 |
Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
1 |
1 |
['github-actions'] |
kmill assignee:kmill |
12-47583 12 days ago |
28-26860 28 days ago |
28-26853 28 days |
| 36787 |
hommmmm author:hommmmm |
feat(RingTheory/LocalRing): Krull dimension results for maximal ideal of local ring |
## Summary
This PR adds two results connecting the Krull dimension of a local ring to its maximal ideal:
* `IsLocalRing.ringKrullDim_eq_zero_of_maximalIdeal_eq_bot`: A local ring whose maximal ideal is `⊥` has Krull dimension zero.
* `IsLocalRing.exists_mem_maximalIdeal_not_mem_sq`: In a Noetherian local ring of positive Krull dimension, there exists an element in the maximal ideal that is not in its square.
The second result follows from Nakayama's lemma: if every element of the maximal ideal `𝔪` were in `𝔪²`, then `𝔪 = 𝔪²`, and Nakayama gives `𝔪 = ⊥`, contradicting positive dimension.
## New file
* `Mathlib/RingTheory/LocalRing/MaximalIdeal/KrullDimension.lean`
## Acknowledgements
Thanks to Dora Kassabova and Leopold Mayer for edit suggestions.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
57/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/MaximalIdeal/KrullDimension.lean |
2 |
10 |
['NoahW314', 'github-actions', 'hommmmm', 'tb65536', 'wwylele'] |
chrisflav assignee:chrisflav |
12-47577 12 days ago |
16-64901 16 days ago |
17-40669 17 days |
| 36789 |
hommmmm author:hommmmm |
feat(RingTheory/Ideal/Height): prime ideal determined by height among overideals |
## Summary
- Add `Ideal.eq_of_le_of_height_eq`: a prime ideal of finite height is equal to any ideal of the same height that contains it.
## Notes
This is a direct consequence of `Ideal.height_strict_mono_of_is_prime`: if `I` were strictly contained in `J`, their heights would differ.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
10/0 |
Mathlib/RingTheory/Ideal/Height.lean |
1 |
7 |
['github-actions', 'hommmmm', 'tb65536'] |
erdOne assignee:erdOne |
12-47576 12 days ago |
17-39613 17 days ago |
17-39606 17 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'] |
TwoFX assignee:TwoFX |
12-47569 12 days ago |
13-36703 13 days ago |
13-42085 13 days |
| 35627 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Finite): min/max degrees of top/bot |
And a couple of lemmas about `IsRegularOfDegree`, e.g. the empty graph is regular of any degree.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
30/1 |
Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean |
2 |
15 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'vlad902'] |
kmill assignee:kmill |
12-23413 12 days ago |
13-43835 13 days ago |
38-78531 38 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 |
12-17509 12 days ago |
12-17574 12 days ago |
12-23148 12 days |
| 35880 |
astrainfinita author:astrainfinita |
feat(Order/Defs/LinearOrder): `min_ind` |
It will be used to simplify the proofs of other lemmas in a subsequent PR.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
11/0 |
Mathlib/Order/Defs/LinearOrder.lean |
1 |
3 |
['astrainfinita', 'bryangingechen', 'github-actions'] |
bryangingechen assignee:bryangingechen |
12-6962 12 days ago |
12-6962 12 days ago |
34-78719 34 days |
| 36642 |
tb65536 author:tb65536 |
feat(NumberTheory/ArithmeticFunction/LFunction): arithmetic functions from power series |
This PR constructs arithmetic functions from power series. See #36189 for how this will ultimately be used to construct L-functions.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
label:t-algebra$ |
139/0 |
Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/NumberTheory/ArithmeticFunction/LFunction.lean,Mathlib/NumberTheory/Divisors.lean |
3 |
8 |
['github-actions', 'riccardobrasca', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
11-78644 11 days ago |
11-78644 11 days ago |
20-85692 20 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/)
|
|
4/21 |
Mathlib/GroupTheory/OreLocalization/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Tactic/NormNum/DivMod.lean |
4 |
1 |
['github-actions'] |
nobody |
11-68589 11 days ago |
11-68659 11 days ago |
11-68652 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'] |
TwoFX assignee:TwoFX |
11-57436 11 days ago |
57-51168 57 days ago |
60-64587 60 days |
| 36585 |
vihdzp author:vihdzp |
feat: order type of `Iio o` is `lift o` |
Downstreamed from the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
19/17 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Family.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/VonNeumann.lean |
5 |
5 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
alreadydone assignee:alreadydone |
11-57176 11 days ago |
11-57236 11 days ago |
21-2935 21 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/15 |
Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Order/Filter/Bases/Basic.lean |
2 |
1 |
['artie2000', 'github-actions'] |
nobody |
11-50826 11 days ago |
19-64941 19 days ago |
19-64934 19 days |
| 36774 |
euprunin author:euprunin |
chore: replace long terminal `rw […]`:s (≥4 lemmas) with bare `simp`:s |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Finset.lcm_union`: unchanged 🎉
* `Finset.gcd_union`: unchanged 🎉
* `Polynomial.derivative_eval₂_C`: unchanged 🎉
* `Polynomial.expand_pow`: unchanged 🎉
* `Cardinal.mk_real`: unchanged 🎉
* `Real.log_zpow`: unchanged 🎉
* `Matroid.eRank_le_encard_add_eRk_compl`: unchanged 🎉
* `DFinsupp.single_tsub`: unchanged 🎉
* `EReal.inv_neg`: unchanged 🎉
* `Finsupp.toMultiset_map`: unchanged 🎉
* `Finsupp.single_tsub`: unchanged 🎉
* `Multiset.countP_map`: unchanged 🎉
* `Nat.ascFactorial_eq_factorial_mul_choose'`: unchanged 🎉
* `Real.sign_intCast`: unchanged 🎉
* `Real.volume_eball`: unchanged 🎉
* `Real.volume_closedEBall`: unchanged 🎉
* `LFunction_ne_zero_of_not_quadratic_or_ne_one`: 295 ms before, 152 ms after 🎉
* `hasSum_one_div_nat_pow_mul_cos`: unchanged 🎉
* `inv_eq_of_aeval_divX_ne_zero`: unchanged 🎉
* `AlgebraicIndependent.aeval_comp_mvPolynomialOptionEquivPolynomialAdjoin`: unchanged 🎉
* `Ordinal.deriv_mul_eq_opow_omega0_mul`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
22/24 |
Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Expand.lean,Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Combinatorics/Matroid/Rank/ENat.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finsupp/Multiset.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/Data/Real/Sign.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/NumberTheory/LSeries/Nonvanishing.lean,Mathlib/NumberTheory/ZetaValues.lean,Mathlib/RingTheory/Algebraic/Basic.lean,Mathlib/RingTheory/AlgebraicIndependent/Basic.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean |
19 |
1 |
['artie2000', 'github-actions'] |
nobody |
11-50094 11 days ago |
17-75904 17 days ago |
17-75897 17 days |
| 34477 |
spanning-tree author:spanning-tree |
refactor(Order): make CompletePartialOrder extend OrderBot |
Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly.
Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor.
See discussion in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20complete.20partial.20order.20and.20domain.20theory.20formalization).
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
15/1 |
Mathlib/Order/CompletePartialOrder.lean |
1 |
3 |
['Citronhat', 'github-actions', 'mathlib-merge-conflicts'] |
bryangingechen assignee:bryangingechen |
11-47663 11 days ago |
34-562 34 days ago |
54-62112 54 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'] |
joneugster assignee:joneugster |
11-47659 11 days ago |
41-11171 41 days ago |
41-25670 41 days |
| 36720 |
YanYablonovskiy author:YanYablonovskiy |
feat(Order): `OrderType.lift` and more order type API |
Adding the universe lifting operation to `OrderType` , addresses a 'TODO' .
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
41/2 |
Mathlib/Order/Types/Defs.lean |
1 |
23 |
['YaelDillies', 'YanYablonovskiy', 'github-actions', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
11-47653 11 days ago |
12-17142 12 days ago |
13-67091 13 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'] |
alreadydone assignee:alreadydone |
11-47649 11 days ago |
16-45195 16 days ago |
16-45188 16 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'] |
eric-wieser assignee:eric-wieser |
11-47647 11 days ago |
12-78143 12 days ago |
12-78136 12 days |
| 36999 |
themathqueen author:themathqueen |
feat(Analysis/RCLike): lifting `C(X, ℝ)` to `C(X, 𝕜)` |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
69/0 |
Mathlib.lean,Mathlib/Analysis/RCLike/ContinuousMap.lean |
2 |
1 |
['github-actions'] |
urkud assignee:urkud |
11-47646 11 days ago |
12-67327 12 days ago |
12-67320 12 days |
| 36958 |
JovanGerb author:JovanGerb |
chore(Topology/Order/Basic): use `Preorder.topology` in `OrderTopology` |
This PR addresses the comment:
```
TODO: define `Preorder.topology` before `OrderTopology` and reuse the def
```
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
22/19 |
Mathlib/Topology/Instances/Discrete.lean,Mathlib/Topology/Order/Basic.lean |
2 |
1 |
['github-actions', 'vihdzp'] |
PatrickMassot assignee:PatrickMassot |
11-20014 11 days ago |
13-39793 13 days ago |
13-40121 13 days |
| 35084 |
edegeltje author:edegeltje |
feat(Combinatorics/SimpleGraph): Cayley graph for structures with `Mul`/`Add` |
This pr:
- adds the definition `SimpleGraph.mulCayley`, where `x` is adjacent to a distinct `y` when there is `g` such that `x * g = y` or `x = y * g`,
- proves various lemmas about the above,
- adds/proves the additive versions of all of the above
some related zulip conversation: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Cayley.20and.20circulant.20graph/with/572839048
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
141/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cayley.lean |
2 |
44 |
['SnirBroshi', 'YaelDillies', 'edegeltje', 'github-actions', 'vihdzp', 'vlad902'] |
kmill assignee:kmill |
11-190 11 days ago |
13-78610 13 days ago |
50-64471 50 days |
| 37109 |
zeekmartin author:zeekmartin |
feat(SimpleGraph): card of common neighbors equals card of triangles containing edge |
Adds `SimpleGraph.card_commonNeighbors_eq_card_triangles_containing_edge`
to `Mathlib/Combinatorics/SimpleGraph/Clique.lean`.
For adjacent vertices `u v` in a finite simple graph, establishes the bijection
between common neighbors and 3-cliques containing the edge `{u, v}`:
```lean
theorem card_commonNeighbors_eq_card_triangles_containing_edge
{u v : α} (huv : G.Adj u v) :
(G.commonNeighbors u v).toFinset.card =
((G.cliqueFinset 3).filter fun s => {u, v} ⊆ s).card
```
This connects `commonNeighbors` (defined in `Basic.lean`) with `cliqueFinset` —
a gap not previously covered in `Clique.lean`.
**AI disclosure**: Claude (Anthropic) was used as an assistant during the development of this proof. It helped with the initial proof structure and tactic suggestions. The proof was reviewed and validated step by step by the author, who can vouch for all the content. The mathematical idea originates from the author's prior Lean 4 work on spectral graph theory (github.com/zeekmartin/topostability-lean4).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
LLM-generated
new-contributor
|
61/0 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
7 |
['SnirBroshi', 'github-actions', 'zeekmartin'] |
nobody |
10-73084 10 days ago |
10-80243 10 days ago |
10-80236 10 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'] |
mattrobball assignee:mattrobball |
10-47643 10 days ago |
14-11334 14 days ago |
14-11327 14 days |
| 36018 |
wwylele author:wwylele |
feat(LinearAlgebra/AffineSpace): shifting a subspace towards a point |
This is preparing to calculate the volume of a simplex by integrating the cross-section created by shifting the base plane. Part of #34826.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
293/0 |
Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
3 |
7 |
['copilot-pull-request-reviewer', 'github-actions', 'mathlib-bors'] |
kim-em assignee:kim-em |
10-43490 10 days ago |
23-52056 23 days ago |
23-52065 23 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'] |
awainverse assignee:awainverse |
10-22179 10 days ago |
20-31879 20 days ago |
20-31872 20 days |
| 32744 |
NoneMore author:NoneMore |
feat(ModelTheory/Definablity): add `DefinableFun` definition and lemmas |
This PR adds two basic shapes of definable sets and `DefinableFun` definition with relevant lemmas.
The main result is `Set.Definable.preimage_of_map` asserting that the preimage of a definable set under a definable map is definable.
There are also some tool lemmas derived by the preimage lemma.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
147/0 |
Mathlib/ModelTheory/Definability.lean |
1 |
60 |
['NoneMore', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'staroperator'] |
nobody |
10-20054 10 days ago |
10-20035 10 days ago |
105-64662 105 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'] |
b-mehta assignee:b-mehta |
10-17406 10 days ago |
10-17430 10 days ago |
29-11243 29 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'] |
joneugster assignee:joneugster |
10-1267 10 days ago |
10-1290 10 days ago |
14-37359 14 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 |
9-86225 9 days ago |
14-24813 14 days ago |
16-7662 16 days |
| 37026 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Data/Nat/Perm): add two lemmas |
If a finite type has at most two elements, then its permutation group is cyclic and commutative.
---
- [x] depends on: #36983
[](https://gitpod.io/from-referrer/)
|
large-import |
34/1 |
Mathlib/Data/Finite/Perm.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'tb65536'] |
nobody |
9-85507 9 days ago |
9-85517 9 days ago |
11-61390 11 days |
| 37170 |
tb65536 author:tb65536 |
feat(RingTheory/Artinian/Module): add `pow` version of `quotNilradicalEquivPi` |
This PR upgrades `IsArtinianRing.quotNilradicalEquivPi` and adds a `pow` version.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
large-import
label:t-algebra$ |
33/12 |
Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Spectrum/Maximal/Basic.lean |
2 |
2 |
['github-actions', 'tb65536'] |
nobody |
9-75507 9 days ago |
9-75507 9 days ago |
9-75501 9 days |
| 36760 |
SnirBroshi author:SnirBroshi |
feat(GroupTheory/Subgroup): basic API for set normalizers |
---
Since `@[to_additive]` [doesn't work](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MulAut.20and.20to_additive/with/577355267) on `MulAut` (because `AddAut` wants to use multiplicative syntax) I've had to translate 2 theorems manually.
~~FWIW I think that `setNormalizer` should replace `normalizer`, as this old TODO says:~~
https://github.com/leanprover-community/mathlib4/blob/34ad346d5509066e2d41dc59c6a92a917ba55661/Mathlib/Algebra/Group/Subgroup/Defs.lean#L674
~~This will join `Subgroup.centralizer` which is already defined on sets rather than subgroups (and subgroups can use it thanks to their `SetLike`).~~
~~If you agree I'll create a separate PR that does it. Though it shouldn't block this PR.~~
- [x] depends on: #36852
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
115/33 |
Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/Subgroup/Center.lean,Mathlib/GroupTheory/Subgroup/Centralizer.lean |
8 |
11 |
['SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'tb65536'] |
tb65536 assignee:tb65536 |
9-73496 9 days ago |
12-1008 12 days ago |
16-23831 16 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'] |
alreadydone and vihdzp assignee:alreadydone assignee:vihdzp |
9-69181 9 days ago |
19-41043 19 days ago |
20-9751 20 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/)
|
|
36/36 |
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/List/SplitOn.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 |
31 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
9-56012 9 days ago |
9-56036 9 days ago |
18-10786 18 days |
| 36794 |
vihdzp author:vihdzp |
doc(SetTheory/Ordinal/Principal): improve documentation |
The module docstring now contains a description of what an `op`-principal actually is. I've also added some additional names for discoverability.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
documentation
|
26/20 |
Mathlib/SetTheory/Ordinal/Principal.lean,Mathlib/SetTheory/Ordinal/Veblen.lean |
2 |
8 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
alreadydone assignee:alreadydone |
9-47536 9 days ago |
14-48010 14 days ago |
16-67206 16 days |
| 35600 |
yisiox author:yisiox |
feat(Computability): add Kleene's algorithm to prove regular languages have regex matching |
This PR adds a proof that every regular language has some regular expression matching it.
This was achieved by the following constructions and proofs of their correctness
- Define `toSingleεNFA` to transform any epsilon-NFA to an equivalent one with only a single start and accept state (and the type is `ExtendedState`)
- Define a bijection between `ExtendedState` and `Fin (FinEnum.card (ExtendedState σ))` to index the states
- Define `pathRegex` which implements Kleene's algorithm
- Define `toRegex` which takes an epsilon-NFA, applies `toSingleεNFA` on it, and computes the corresponding regex using `pathRegex`
The proofs of correctness chain together to yield `(toRegex M).matches' = M.accepts` which asserts the direction of Kleene's theorem required.
---
As in [#mathlib4 > Regular languages: the review queue @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Regular.20languages.3A.20the.20review.20queue/near/573958148), this overlaps with #15654, which uses GNFA instead but has been inactive.
[](https://gitpod.io/from-referrer/)
|
t-computability
new-contributor
|
492/0 |
Mathlib/Computability/EpsilonNFA.lean |
1 |
15 |
['YaelDillies', 'github-actions', 'yisiox'] |
YaelDillies assignee:YaelDillies |
9-23685 9 days ago |
11-4849 11 days ago |
30-7025 30 days |
| 33520 |
NoneMore author:NoneMore |
feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input |
There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
91/0 |
Mathlib/ModelTheory/ElementarySubstructures.lean |
1 |
3 |
['Citronhat', 'NoneMore', 'github-actions'] |
fpvandoorn assignee:fpvandoorn |
9-16238 9 days ago |
9-16302 9 days ago |
91-8310 91 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'] |
JovanGerb assignee:JovanGerb |
9-14292 9 days ago |
16-18029 16 days ago |
16-21140 16 days |
| 35828 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/GradedAlgebra/Homogeneous/Hom): homogeneous algebra maps and evaluation |
Define the notion of homogeneous algebra morphism between algebra maps.
Prove that the evaluation of a (weighted) homogeneous multivariate polynomial at adequate elements
of a graded algebra define a homogeneous algebra morphism.
co-authored with @mariainesdff
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
74/0 |
Mathlib.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Hom.lean |
3 |
5 |
['github-actions', 'joneugster', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
9-13249 9 days ago |
36-52198 36 days ago |
36-52815 36 days |
| 36955 |
NoneMore author:NoneMore |
chore(ModelTheory/Types): expose `T` in `typesWith` and move it to `Theory` |
Make the `T : L.Theory` argument explicit in `typesWith` and place the definition in `FirstOrder.Language.Theory` to enable dot notation.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
24/19 |
Mathlib/ModelTheory/Topology/Types.lean,Mathlib/ModelTheory/Types.lean |
2 |
2 |
['github-actions'] |
nobody |
9-3468 9 days ago |
13-80233 13 days ago |
13-80226 13 days |
| 37247 |
yuma-mizuno author:yuma-mizuno |
feat(GroupTheory/MonoidLocalization): add prime transport lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
75/7 |
Mathlib/GroupTheory/MonoidLocalization/MonoidWithZero.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/Defs.lean |
3 |
1 |
['github-actions'] |
nobody |
8-58645 8 days ago |
8-58723 8 days ago |
8-58716 8 days |
| 36891 |
vihdzp author:vihdzp |
feat(SetTheory/Ordinal/Exponential): characterization of `a ^ b = 1` |
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
12/0 |
Mathlib/SetTheory/Ordinal/Exponential.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
alreadydone assignee:alreadydone |
8-47512 8 days ago |
10-53448 10 days ago |
15-22249 15 days |
| 37235 |
gasparattila author:gasparattila |
chore: do not tag `Measurable.prod` with `fun_prop` |
This avoids relying on the bug where `fun_prop` unfolds semireducible definitions in the presence of projections (see [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60fun_prop.60.20sometimes.20unfolds.20semireducible.20definitions/with/574596569) of the bug).
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
6/1 |
Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean |
2 |
1 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
8-47500 8 days ago |
8-67846 8 days ago |
8-67839 8 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 |
8-33951 8 days ago |
10-52962 10 days ago |
10-52955 10 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 |
234/0 |
Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Complex/Poisson.lean |
2 |
9 |
['github-actions', 'kebekus', 'sgouezel'] |
sgouezel assignee:sgouezel |
8-26853 8 days ago |
8-26853 8 days ago |
13-72415 13 days |
| 37022 |
vihdzp author:vihdzp |
feat(SetTheory/Cardinal/Cofinality): cof (a * b) = cof b |
We also tag `isSuccLimit_omega0` as simp, so that simp can solve goals like `(ω_ ω).cof = ω` or `cof (x * ω) = ω`.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
12/3 |
Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean |
3 |
4 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
8-18216 8 days ago |
10-18281 10 days ago |
12-21144 12 days |
| 37244 |
tb65536 author:tb65536 |
chore(Algebra/Algebra/Basic): add `IsLocalHom (algebraMap R R)` |
Experimentally, this seems to speed things up.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
3/0 |
Mathlib/Algebra/Algebra/Basic.lean |
1 |
4 |
['github-actions', 'leanprover-radar', 'tb65536'] |
nobody |
8-16025 8 days ago |
8-58360 8 days ago |
8-58355 8 days |
| 32245 |
erdOne author:erdOne |
feat(RingTheory): the `coassoc_simps` simp set |
From Toric
Co-authored-by: Yaël Dillies
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
toric
t-meta
|
781/0 |
Mathlib.lean,Mathlib/RingTheory/Coalgebra/CoassocSimps.lean,Mathlib/Tactic/Attr/Register.lean,MathlibTest/RingTheory/CoassocSimps.lean |
4 |
26 |
['Paul-Lez', 'YaelDillies', 'b-mehta', 'erdOne', 'github-actions', 'joneugster', 'riccardobrasca'] |
b-mehta assignee:b-mehta |
8-13662 8 days ago |
9-14827 9 days ago |
41-19410 41 days |
| 36989 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(NumberTheory/Height/EllipticCurve): new file |
This PR defines the "addition-and-subtraction map" on x-coordinates of pairs of points on elliptic curves and proves an inequality for the logarithmic height of the image.
In a later PR, we will show that the map thus defined indeed comes from addition and subtraction on an elliptic curve.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
214/0 |
Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/AddSubMap.lean,Mathlib/NumberTheory/Height/EllipticCurve.lean |
3 |
20 |
['MichaelStollBayreuth', 'Multramate', 'github-actions', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
7-81456 7 days ago |
8-14549 8 days ago |
11-4975 11 days |
| 33010 |
xgenereux author:xgenereux |
feat: localizations of primes in Dedekind domains are valuation subrings |
The goal of this PR is the theorem `valuationSubringAtPrime_eq_valuationSubring` which states that the localization at a nonzero prime in a Dedekind domain is precisely the valuation subring of the valuation associated with that same prime.
Given a Dedekind domain `R` in its field of fractions `K`, we define `IsDedekindDomain.valuationSubringAtPrime`, which is the localization of `R` at a nonzero prime, viewed as valuation subring of `K`.
We show that `valuationSubringAtPrime K v ≤ (valuation K v).valuationSubring` and use maximality to show that they must be equal.
Other small note:
- added a variant of `intValuation_exists_uniformizer` in terms of `valuation` (instead of intValuation).
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
- [ ] depends on: #33631
- [ ] depends on: #33634
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
68/6 |
Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
1 |
11 |
['erdOne', 'github-actions', 'mathlib-dependent-issues', 'xgenereux'] |
nobody |
7-67317 7 days ago |
7-67287 7 days ago |
10-15000 10 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 |
10/12 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean |
2 |
1 |
['github-actions'] |
nobody |
7-54405 7 days ago |
7-54492 7 days ago |
7-54485 7 days |
| 36544 |
xroblot author:xroblot |
feat(RingTheory/Ideal): restriction maps on decomposition and inertia groups in a Galois tower |
Adds a new file `Mathlib/RingTheory/Ideal/Galois.lean` with results on the action of `Gal(L/K)` on ideals of a ring `B ⊆ L` for a Galois subextension `F/K` of `L/K`. The main results are the surjectivity and kernel descriptions of the natural maps from the decomposition (resp. inertia) group of `P` in `Gal(L/K)` to the decomposition (resp. inertia) group of `p` in `Gal(F/K)`, induced by restriction.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
213/0 |
Mathlib.lean,Mathlib/FieldTheory/Normal/Defs.lean,Mathlib/RingTheory/Ideal/Galois.lean |
3 |
8 |
['github-actions', 'riccardobrasca', 'tb65536', 'xroblot'] |
erdOne and riccardobrasca assignee:riccardobrasca assignee:erdOne |
7-53623 7 days ago |
22-73584 22 days ago |
22-73577 22 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 |
134/114 |
Mathlib/Geometry/Convex/Cone/Pointed.lean |
1 |
4 |
['artie2000', 'github-actions', 'martinwintermath', 'mathlib-merge-conflicts'] |
nobody |
7-49710 7 days ago |
7-49733 7 days ago |
8-56530 8 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`.
---
[](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 |
3 |
['YaelDillies', 'github-actions'] |
nobody |
7-49621 7 days ago |
9-40838 9 days ago |
10-14475 10 days |
| 31892 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Sphere/PolePolar): poles and polars |
Define poles and polars for spheres in Euclidean affine spaces, and set up some basic API, including in particular La Hire's theorem (`p₁` lies on the polar of `p₂` if and only if `p₂` lies on the polar of `p₁`).
Poles and polars are actually meaningful for any quadric in a projective space over any field, but I think it's reasonable to set up this theory for spheres in the Euclidean context and potentially link it in future to more general projective geometry.
---
- [ ] depends on: #31891
- [ ] depends on: #32296
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
159/0 |
Mathlib.lean,Mathlib/Geometry/Euclidean/Sphere/PolePolar.lean |
2 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
JovanGerb assignee:JovanGerb |
7-47651 7 days ago |
7-71603 7 days ago |
7-72356 7 days |
| 32294 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): distance from second intersection with circumcircle |
Add the following lemma: given a triangle ABC, suppose an angle bisector from A through the incenter or excenter I meets the circumcircle again at X (including the case of an external bisector at A tangent to the circle, in which case X = A). Then XB = XI (= XC, by applying this lemma again). This is a standard configuration: https://en.wikipedia.org/wiki/Incenter%E2%80%93excenter_lemma
---
- [ ] depends on: #30981
- [ ] depends on: #30982
- [ ] depends on: #32019
- [ ] depends on: #32021
- [ ] depends on: #32023
- [ ] depends on: #32270
- [ ] depends on: #32290
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
189/0 |
Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
1 |
5 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'peakpoint'] |
JovanGerb assignee:JovanGerb |
7-47650 7 days ago |
7-71617 7 days ago |
7-72400 7 days |
| 34909 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2): `fromRel` equivalence with `Sigma` over a `Quotient` |
Add a non-dependent recursor on members of a `fromRel` set, and the following `Equiv`s:
- The `fromRel` set of a symmetric relation `r` is equivalent to summing that set restricted to fibers of `f`.
- For a relation homomorphism `r →r r'` where `r` is symmetric, the `fromRel` set of `r` is equivalent to summing that set restricted to equivalence classes of `r'` using a `Subtype`.
---
I find this recursor pretty useful when dealing with `fromRel`, the idea came from a suggestion by @kmill [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Eq.2Erec.20with.20a.20constant.20does.20nothing.3A.20h.20.E2.96.B8.20c.20.3D.20c/near/565176948) for another `Sym2` conundrum.
[](https://gitpod.io/from-referrer/)
|
t-data |
43/0 |
Mathlib/Data/Sym/Sym2.lean |
1 |
8 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] |
TwoFX and pechersky assignee:TwoFX assignee:pechersky |
7-47648 7 days ago |
14-52244 14 days ago |
57-11929 57 days |
| 37251 |
plp127 author:plp127 |
fix(Tactic/DepRewrite): `conv` mode |
Add tests for `rewrite!` and `rw!` in `conv` mode. Fix a bug where `rw!` always produces type-incorrect terms when rewriting the goal in `conv` mode. Remove support for `rw! [...] at h` in `conv` mode, for consistency with `rw`, which does not have this feature, and because it's usually not what you want to do anyways.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
46/15 |
Mathlib/Tactic/DepRewrite.lean,MathlibTest/depRewrite.lean |
2 |
1 |
['Vtec234', 'github-actions'] |
dwrensha assignee:dwrensha |
7-47632 7 days ago |
8-51336 8 days ago |
8-51329 8 days |
| 37293 |
peabrainiac author:peabrainiac |
feat(Order/Partition): finite meets of partitions of frames |
For any frame `α`, `Partition α` has finite meets: the meet of two partitions `P`, `Q` can be constructed as the partition consisting of all meets `p ⊓ q` with `p ∈ P`, `q ∈ Q` and `p ⊓ q ≠ ⊥`.
Note that even for frames `Partition α` does not have arbitrary meets: for example, there is no finest partition on the frame of open subsets of the Cantor space. We thus have to construct the remaining operations by hand instead of e.g. just transporting a `CompleteLattice` instance along some Galois connection.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
44/2 |
Mathlib/Order/Partition/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
7-42831 7 days ago |
7-52402 7 days ago |
7-52395 7 days |
| 37214 |
Kha author:Kha |
perf(Tactic/Abel): use `mkAuxTheorem` for proof term |
Removes some duplication from types of nested proofs |
t-meta |
4/1 |
Mathlib/Tactic/Abel.lean |
1 |
5 |
['JovanGerb', 'Kha', 'github-actions', 'leanprover-radar'] |
thorimur assignee:thorimur |
7-10772 7 days ago |
8-82543 8 days ago |
8-82536 8 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'] |
nobody |
7-7486 7 days ago |
7-7442 7 days ago |
7-7777 7 days |
| 31242 |
plp127 author:plp127 |
feat: express filter as supremum of principal filter and free filter |
Prove a filter is free iff it is smaller than the cofinite filter. Prove that every filter decomposes as the disjoint supremum of a principal filter and a free filter.
---
- [x] depends on: #31264
[](https://gitpod.io/from-referrer/)
|
t-order |
78/4 |
Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Cofinite.lean,Mathlib/Order/Heyting/Boundary.lean,Mathlib/Order/Lattice.lean |
4 |
8 |
['github-actions', 'jcommelin', 'kckennylau', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] |
bryangingechen assignee:bryangingechen |
6-79435 6 days ago |
6-79453 6 days ago |
31-15893 31 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
|
269/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Order/Floor.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean |
3 |
8 |
['Vilin97', 'copilot-pull-request-reviewer', 'dagurtomas', 'github-actions', 'wwylele'] |
PatrickMassot assignee:PatrickMassot |
6-78543 6 days ago |
7-79409 7 days ago |
16-23083 16 days |
| 37047 |
gasparattila author:gasparattila |
chore(Data/Finset/Lattice/Fold): use `to_dual` |
This PR uses the `@[to_dual]` attribute to generate dual lemmas about `Finset.sup`. The lemmas about `sdiff` and `himp` are skipped, as `HeytingAlgebra` is not yet tagged with `@[to_dual]`.
To improve the consistency between dual lemmas, several changes are made:
- tag `inf_insert` with `@[grind =]`
- rename `le_inf_const_le` to `le_inf_const`
- tag `inf_union` with `@[grind _=_]`
- tag `inf_mono_fun` with `@[grind ←]`
- tag `inf_mono` with `@[grind ←]`
- tag `inf_attach` with `@[simp]`
- add `le_inf_of_directed_le`
- add `inf_eq_top_of_isEmpty`
- add `inf_mem_of_nonempty`
- add `inf'_mono_fun`
- rename `comp_sup_eq_sup_comp_of_nonempty` to `apply_sup_eq_sup_comp_of_nonempty` and add `apply_inf_eq_inf_comp_of_nonempty`
---
[](https://gitpod.io/from-referrer/)
|
t-data |
126/477 |
Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/Order/BigOperators/Group/LocallyFinite.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Lattice/Fold.lean |
4 |
14 |
['JovanGerb', 'gasparattila', 'github-actions', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
6-47420 6 days ago |
7-59928 7 days ago |
11-71633 11 days |
| 37084 |
SnirBroshi author:SnirBroshi |
feat(Order/PropInstances): relations and `Subsingleton` |
`r = ⊤ ↔ Refl r` and `r = ⊥ ↔ Irrefl r` given `Subsingleton`
---
[](https://gitpod.io/from-referrer/)
|
t-order |
7/1 |
Mathlib/Order/PropInstances.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
6-47419 6 days ago |
11-17690 11 days ago |
11-17683 11 days |
| 37160 |
vihdzp author:vihdzp |
feat: product of Coxeter matrices |
The Coxeter matrix `A * B` is the block matrix `!![A, 2; 2, B]`.
---
I've used multiplication to denote this under the logic that the product of Coxeter groups has a Coxeter matrix given by this construction. Perhaps this isn't desirable, considering it doesn't match matrix multiplication. I'm open to suggestions.
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
13/3 |
Mathlib/GroupTheory/Coxeter/Matrix.lean |
1 |
3 |
['github-actions', 'tb65536', 'vihdzp'] |
tb65536 assignee:tb65536 |
6-31451 6 days ago |
10-9057 10 days ago |
10-9050 10 days |
| 34507 |
metakunt author:metakunt |
feat(NumberTheory/AKSPrimality): Adds the AKS primality test |
Adds the completed proof for the AKS primality test.
Everything except the final theorem is marked private as it's only needed for the final proof.
Also everything except the final theorem is namespaced with AKS.
----
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Aks.20primality.20Theorem.206.2E1.20Claim.20.28i.29.20proven |
t-number-theory |
645/0 |
Mathlib.lean,Mathlib/NumberTheory/AKSPrimality.lean |
2 |
51 |
['github-actions', 'jcommelin', 'kim-em', 'metakunt', 'qawbecrdtey', 'tb65536', 'vihdzp'] |
tb65536 assignee:tb65536 |
6-28427 6 days ago |
6-28427 6 days ago |
36-21181 36 days |
| 34808 |
YaelDillies author:YaelDillies |
feat(Combinatorics/SimpleGraph): isolated vertices |
From ProofBench
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
37/1 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean |
3 |
5 |
['YaelDillies', 'b-mehta', 'github-actions'] |
b-mehta assignee:b-mehta |
6-24669 6 days ago |
6-24720 6 days ago |
58-1185 58 days |
| 35613 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Clique): use `IsContained` instead of an explicit embedding from top |
This makes theorems require only a proof that a `Copy` exists rather than provide an explicit `Embedding`.
Also tag monotonicity lemmas with `@[gcongr]`, and add `Copy.isContained` / `Embedding.isIndContained` / `Embedding.isContained` / `Iso.isContained'`.
---
This isn't a generalization per-se since one could use choice plus `Copy.topEmbedding` to upgrade the `IsContained` to an embedding, but `IsContained` makes more sense in theorems.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
65/55 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean |
4 |
21 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
awainverse assignee:awainverse |
6-10067 6 days ago |
12-2446 12 days ago |
35-71132 35 days |
| 37278 |
SnirBroshi author:SnirBroshi |
chore(Order/Defs/Unbundled): deprecate `def Reflexive` in favor of `class Std.Refl` |
Also adds definitional lemmas `std*_def` for the relation classes, and cleans up things nearby, especially in `Logic/Relation.lean`.
---
[Mathlib's `def Reflexive`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#Reflexive)
[Core's `class Std.Refl`](https://leanprover-community.github.io/mathlib4_docs/Init/Core.html#Std.Refl)
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Relation.20properties.20duplication/near/544638270)
[](https://gitpod.io/from-referrer/)
|
|
229/171 |
Mathlib/Algebra/Group/Semiconj/Defs.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/Computability/Reduce.lean,Mathlib/Data/List/Pairwise.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/WSeq/Relation.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/Logic/Pairwise.lean,Mathlib/Logic/Relation.lean,Mathlib/ModelTheory/Order.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Directed.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/Quotient.lean,Mathlib/Order/ScottContinuity.lean,Mathlib/Order/SuccPred/Relation.lean,MathlibTest/abel.lean |
20 |
3 |
['SnirBroshi', 'github-actions', 'leanprover-radar'] |
nobody |
6-8907 6 days ago |
7-68457 7 days ago |
7-70251 7 days |
| 34952 |
joneugster author:joneugster |
feat(scripts/autolabel): use `Cli` and integrate `curl` call into `autolabel` |
- use `Cli` for `lake exe autolabel`
- add arguments `--pr xxx --gh` and `--pr xxx --curl ` to chose between different interaction methods with github
- add `--force` to skip the check whether labels are already present. (note: the current `curl` setup doesn't perform this step and neither does the refactor, so I added a `Todo` to remember this. )
- make CI-workflow simpler and more robust by removing current stdout-parsing of the debug-messages which `autolabel` emits.
### Testing
Make some local changes and commit them. Ensure your local `origin/master` is in sync with `upstream/master` if you are on a fork.
- `lake exe autolabel`: prints the labels which would be applicable
- `lake exe autolabel --pr 34952 --gh --force` adds these labels to this PR using `gh`.
- `lake exe autolabel --pr 34952 --gh` adds these labels to this PR using `gh` if no topic labels are present.
- `lake exe autolabel --pr 34952 --curl ` adds these labels to this PR using `curl`. This requires a github access token for authentication
---
[](https://gitpod.io/from-referrer/)
|
CI |
87/73 |
.github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean |
2 |
4 |
['github-actions', 'mathlib-merge-conflicts'] |
adomani assignee:adomani |
6-7980 6 days ago |
6-8263 6 days ago |
38-49596 38 days |
| 35976 |
Phelixh author:Phelixh |
feat: add add Liu's uncertainty theory foundations (core/distribution/process modules) |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
2374/0 |
Mathlib.lean,Mathlib/Uncertainty/Base.lean,Mathlib/Uncertainty/BaseCore.lean,Mathlib/Uncertainty/BaseDistribution.lean,Mathlib/Uncertainty/BaseProcess.lean,Mathlib/Uncertainty/Uncertainty.lean |
6 |
26 |
['Phelixh', 'copilot-pull-request-reviewer', 'github-actions'] |
nobody |
6-85 6 days ago |
6-152 6 days ago |
6-5442 6 days |
| 36773 |
adomasbaliuka author:adomasbaliuka |
feat(Tactic/Linter): lint unwanted unicode |
Add a text-based style linter that checks all unicode characters. Provides automatic replacements for some disallowed characters.
Unicode is very versatile and useful for Lean and Mathlib.
However, it is also very complex and few people have a thorough understanding of all its pitfalls (I don't claim to be one of them).
In order to avoid unpleasant surprises going forward, both accidental and malicious, we should keep track of which Unicode characters are allowed in Mathlib.
In programming and cybersecurity, there are many known [issues and attacks concerning unicode](https://en.wikipedia.org/wiki/Unicode#Security_issues).
Many open source repositories have been hit by such attacks, which are becoming ever more frequent due to the use of automation using e.g. large language models.
Some notable ones:
- [homograph attacks](https://en.wikipedia.org/wiki/IDN_homograph_attack): confusion caused by use of distinct characters which look the same (we probably don't want to fully address this and this PR does not attempt to)
- [Trojan Source](https://en.wikipedia.org/wiki/Trojan_Source): abuse of bidirectional characters. Characters used by languages with right-to-left reading direction can cause code to be displayed differently than it is parsed. (This PR tries to address this)
- Exploits involving Private Use Area characters, e.g. [GlassWorm](https://abit.ee/en/cybersecurity/viruses-trojans-and-other-malware/glassworm-github-supply-chain-attack-unicode-solana-malware-npm-vs-code-2026-en). (This PR tries to address this)
Co-authored-by: Michael Rothgang @grunweg
Co-authored-by: Jon Eugster @joneugster
---
Continues work from #16215 (due to PRs now being made from forks).
Discussed at [Zulip](https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Whitelist.20for.20Unicode.3F/near/448721083)
Note: the script was added due to reviewer comment in #16215. Perhaps that is overkill here.
- [x] depends on: #36811
[](https://gitpod.io/from-referrer/)
|
t-linter |
252/75 |
Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/TextBased/UnicodeLinter.lean,MathlibTest/LintStyle.lean,scripts/README.md,scripts/extract-unique-nonascii.lean |
6 |
24 |
['adomasbaliuka', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
joneugster assignee:joneugster |
5-82184 5 days ago |
5-82185 5 days ago |
10-56913 10 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 |
221/232 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
5-81382 5 days ago |
5-81406 5 days ago |
7-27215 7 days |
| 37344 |
vihdzp author:vihdzp |
feat: monotone function `Cardinal → α` is eventually constant |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
|
57/0 |
Mathlib.lean,Mathlib/Logic/Small/Basic.lean,Mathlib/SetTheory/Cardinal/EventuallyConst.lean |
3 |
3 |
['github-actions', 'vihdzp', 'wwylele'] |
nobody |
5-65389 5 days ago |
5-67934 5 days ago |
5-70086 5 days |
| 32282 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): unoriented angle bisection |
Add lemmas giving unoriented angles involving the incenter and excenters of a triangle as expressions involving dividing angles of the triangle by 2, deduced from oriented bisection lemmas.
---
- [ ] depends on: #30981
- [ ] depends on: #30982
- [ ] depends on: #31205
- [ ] depends on: #32019
- [ ] depends on: #32021
- [ ] depends on: #32259
- [ ] depends on: #32260
- [ ] depends on: #32270
- [ ] depends on: #32273
- [ ] depends on: #32278
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
98/0 |
Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
1 |
8 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] |
JovanGerb assignee:JovanGerb |
5-64083 5 days ago |
7-71614 7 days ago |
7-72343 7 days |
| 35069 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): simple polygons and boundary map |
This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution.
- [x] depends on: #34598
---
|
new-contributor
t-euclidean-geometry
LLM-generated
|
360/0 |
Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean |
4 |
30 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'jsm28', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] |
jsm28 assignee:jsm28 |
5-63953 5 days ago |
37-73516 37 days ago |
40-21395 40 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'] |
b-mehta assignee:b-mehta |
5-62813 5 days ago |
80-64768 80 days ago |
80-64761 80 days |
| 37006 |
hakii6 author:hakii6 |
feat(LinearAlgebra/Matrix/Block, Analysis/Normed/Algebra/MatrixExponential): add BlockTriangular.pow and BlockTriangular.exp |
# Summary
Add BlockTriangular.pow and BlockTriangular.exp for proving "det (exp A) = exp (trace A)"
# Which part using LLM
The part I used LLM is for
1. Searching duplicated theorems and lemmas I may missed (I already search them myself first).
2. Help me handle the "variables and signatures", the "letI" part, some of lemmas and theorems trivial but hard to find the true one.
3. After I finished, let them helped me check the structure match the disciplines of mathlib.
4. Check the steps PR match the disciplines of mathlib
Most things above are done by me first, then let them to make sure I'm not missing something.
# More context
More context can be found in a topic in "# new member" in Zulip
[#new members > (Matrix and NormedSpace.exp) | det (exp A) = exp (trace A)](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/.28Matrix.20and.20NormedSpace.2Eexp.29.20.7C.20det.20.28exp.20A.29.20.3D.20exp.20.28trace.20A.29/with/580964688)
|
new-contributor
LLM-generated
|
54/1 |
Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/Topology/Instances/Matrix.lean |
3 |
59 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'hakii6', 'wwylele'] |
nobody |
5-53482 5 days ago |
7-56450 7 days ago |
12-47668 12 days |
| 37299 |
XC0R author:XC0R |
feat(NumberTheory): Chebyshev's lower bound on primorial |
## Summary
Prove `primorial(n) ≥ 2^(n/2)` for all `n ≥ 2` (Chebyshev's 1852 lower bound). This is the lower bound complement to `primorial_le_four_pow`. Addresses the TODO at `Chebyshev.lean` line 50: "Prove Chebyshev's lower bound."
### New file: `Mathlib/NumberTheory/PrimorialLowerBound.lean`
**Main theorems:**
- `two_pow_le_primorial`: `2 ^ n ≤ primorial (2 * n)` for `n ≥ 29`
- `two_pow_div_two_le_primorial`: `2 ^ (n / 2) ≤ primorial n` for `n ≥ 2`
**Key intermediates:**
- `centralBinom_le_pow_mul_primorial`: `C(2n,n) ≤ (2n)^{π(√(2n)+1)} * primorial(2n)`
- `eight_mul_sq_add_le_two_pow`: `8u² + 16u + 8 ≤ 2^u` for `u ≥ 10`
### Proof technique
Central binomial decomposition: from `four_pow_lt_mul_centralBinom` and `factorization_choose_le_log`, bound `C(2n,n)` above by `(2n)^{π(√(2n)+1)} * primorial(2n)`. Rearranging gives `primorial(2n) ≥ 2^n` for `n ≥ 29`. Base cases by `norm_num` + `decide`, large `n` analytically via `√n` factoring.
### AI disclosure
Claude (Anthropic) was used as a coding assistant for Lean tactic exploration, file structuring, and CI debugging. All proof strategy, mathematical content, and final code have been reviewed and are understood by the author. |
t-number-theory
new-contributor
|
234/0 |
Mathlib.lean,Mathlib/NumberTheory/PrimorialLowerBound.lean,Mathlib/NumberTheory/SmoothNumbers.lean |
3 |
21 |
['MichaelStollBayreuth', 'Parcly-Taxel', 'XC0R', 'github-actions', 'wwylele'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
5-43093 5 days ago |
7-44990 7 days ago |
7-45098 7 days |
| 37353 |
SnirBroshi author:SnirBroshi |
feat(Order/WellFounded): characterize `WellFoundedLT` and `IsWellOrder` in terms of nonempty sets |
---
Both of these use the existing characterization of `WellFounded`.
[](https://gitpod.io/from-referrer/)
|
t-order |
19/0 |
Mathlib/Order/WellFounded.lean |
1 |
1 |
['github-actions'] |
nobody |
5-40567 5 days ago |
5-40320 5 days ago |
5-42210 5 days |
| 37354 |
SnirBroshi author:SnirBroshi |
feat(Order/Defs/PartialOrder): `(a < b ↔ b < a) ↔ (a ≤ b ↔ b ≤ a)` in `Preorder`s |
Relate the predicates {`a < b`, `b < a`, `a ≤ b`, `b ≤ a`}.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
12/0 |
Mathlib/Order/Defs/PartialOrder.lean |
1 |
1 |
['github-actions'] |
nobody |
5-40420 5 days ago |
5-40174 5 days ago |
5-41850 5 days |
| 36764 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `DirectSum.lequivCongrLeft_lof`: unchanged 🎉
* `AnalyticOnNhd.preimage_mem_codiscreteWithin`: unchanged 🎉
* `mem_permsOfList_of_mem`: unchanged 🎉
* `PNat.mod_le`: unchanged 🎉
* `Computation.map_parallel`: unchanged 🎉
* `Sigma.curry_update`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
10/42 |
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 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
5-20915 5 days ago |
5-20940 5 days ago |
17-83098 17 days |
| 37343 |
xgenereux author:xgenereux |
feat: add coe instances for spectrums |
This PR adds `Coe` instances for the type `PrimeSpectrum` and similar.
For `P: PrimeSpectrum`, this means that when lean expects `Ideal A`, we can directly write `P : Ideal A` instead of `P.asIdeal`. The `.asIdeal` gets inserted automatically.
At the moment, I haven't set up the `@[coe]` to make delab into `↑P` - it simply shows `P.asIdeal` in the infoview. If we want the `↑P` I can add it.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
9/0 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Spectrum/Maximal/Defs.lean,Mathlib/RingTheory/Spectrum/Prime/Defs.lean |
3 |
2 |
['faenuccio', 'github-actions'] |
faenuccio assignee:faenuccio |
5-5764 5 days ago |
5-70306 5 days ago |
5-70299 5 days |
| 36979 |
Komyyy author:Komyyy |
feat: `↑(Nat.log m n) = Ordinal.log ↑m ↑n` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
12/3 |
Mathlib/SetTheory/Ordinal/Exponential.lean |
1 |
18 |
['Komyyy', 'github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] |
nobody |
5-3803 5 days ago |
11-7991 11 days ago |
12-60646 12 days |
| 36592 |
Vierkantor author:Vierkantor |
chore(Tactic): rewrite `introv` tactic docstring |
This PR rewrites the docstrings for the `introv` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long.
In particular, I wanted to clarify exactly what `introv` does and does not introduce, depending on the list of names given to it.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
22/19 |
Mathlib/Tactic/Basic.lean |
1 |
10 |
['Vierkantor', 'dwrensha', 'github-actions', 'joneugster'] |
dwrensha assignee:dwrensha |
4-85605 4 days ago |
4-85605 4 days ago |
19-11422 19 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 |
4-82466 4 days ago |
4-85949 4 days ago |
4-85942 4 days |
| 36283 |
Vierkantor author:Vierkantor |
chore(Tactic/GRewrite): rewrite `grw` family tactic docstrings |
This PR rewrites the docstrings for tactics in the `grw` family: `grw`, `grewrite`, `apply_rw`, `apply_rewrite`, `nth_rw` and `nth_rewrite`, to consistently match the official style guide, to make sure they are complete while not getting too long.
The `grw` tactic docstring was nice and complete, but the others were very brief and needed expansion (especially since it took me quite some time to understand the motivation behind `apply_rw`).
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
150/23 |
Mathlib/Tactic/GRewrite/Elab.lean |
1 |
20 |
['JovanGerb', 'Vierkantor', 'github-actions', 'joneugster'] |
adamtopaz assignee:adamtopaz |
4-73348 4 days ago |
5-1488 5 days ago |
25-81115 25 days |
| 35830 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Data/Nat/Choose/Multinomial): multinomial coefficients |
Define the multinomial coefficients, a variant of `Nat.multinomial`.
- redefine `Multiset.multinomial`.
Given a multiset `m` of natural numbers, `m.multinomial` is the
multinomial coefficient defined by (m.sum) ! / ∏ i ∈ m, m i !.
As an example, `Multiset.multinomial {1, 2, 2} = 30`.
This is the exponent of $x y^2 z^2$ in $(x+y+z)^5$.
This should not be confused with the existing `Multiset.multinomial` which gives a different answer,
for example, `Multiset.multinomial {1, 2, 2} = 3`. This function is renamed as `Multiset.countPerms`.
- `Multiset.multinomial_cons` proves that
`(x ::ₘ m).multinomial = Nat.choose (x + m.sum) x * m.multinomial`
- `Multiset.multinomial_add` proves that
`(m + m').multinomial = Nat.choose (m + m').sum m.sum * m.multinomial * m'.multinomial`
co-authored with @mariainesdff
---
- [x] depends on: #36611
[](https://gitpod.io/from-referrer/)
|
t-data
blocked-by-core-release
|
122/1 |
Mathlib/Data/List/ToFinsupp.lean,Mathlib/Data/Nat/Choose/Multinomial.lean |
2 |
25 |
['AntoineChambert-Loir', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
joneugster assignee:joneugster |
4-67330 4 days ago |
5-12500 5 days ago |
25-52693 25 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 |
7 |
['JovanGerb', 'bryangingechen', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] |
dwrensha assignee:dwrensha |
4-48814 4 days ago |
4-48873 4 days ago |
10-44798 10 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 |
4-47503 4 days ago |
6-38355 6 days ago |
6-38348 6 days |
| 36745 |
EtienneC30 author:EtienneC30 |
feat: a process with independent increments and Gaussian marginals is Gaussian |
The new file only provides one public declaration that corresponds to the title of the PR. The rest of the file is an implementation detail to show that the finite dimensional marginals of a process can be written as a linear map of the increments.
---
- [x] depends on: #36674
- [x] depends on: #36718
[](https://gitpod.io/from-referrer/)
|
brownian
t-measure-probability
file-removed
|
160/1 |
Mathlib.lean,Mathlib/Probability/Distributions/Gaussian/Basic.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/Probability/Independence/Process/HasIndepIncrements/Basic.lean,Mathlib/Probability/Independence/Process/HasIndepIncrements/IsGaussianProcess.lean |
5 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
RemyDegenne assignee:RemyDegenne |
4-47500 4 days ago |
5-16998 5 days ago |
5-17325 5 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 |
4-47494 4 days ago |
9-67216 9 days ago |
9-67211 9 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
|
87/3 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
3 |
33 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-merge-conflicts'] |
adamtopaz assignee:adamtopaz |
4-39355 4 days ago |
13-70615 13 days ago |
52-31663 52 days |
| 37355 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): refactor `smulShortComplex` |
Use `LinearMap.lsmul` for the `f` of `ModuleCat.smulShortComplex`, also providing new APIs for it.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
40/20 |
Mathlib/RingTheory/Regular/Category.lean |
1 |
1 |
['github-actions'] |
nobody |
4-34530 4 days ago |
5-39789 5 days ago |
5-39782 5 days |
| 36926 |
vihdzp author:vihdzp |
chore: golf `Cardinal.lt_power_cof` |
We rewrite the proof so as to avoid working with unbundled relations, and golf it somewhat in the process.
---
- [x] depends on: #36927
- [x] depends on: #36928
- [x] depends on: #36929
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
|
21/22 |
Mathlib/SetTheory/Cardinal/Cofinality.lean |
1 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
4-27151 4 days ago |
4-27178 4 days ago |
4-75758 4 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 |
41/37 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
3 |
5 |
['github-actions', 'mathlib-merge-conflicts'] |
alreadydone assignee:alreadydone |
4-26641 4 days ago |
4-26540 4 days ago |
31-59798 31 days |
| 37413 |
Paul-Lez author:Paul-Lez |
feat(Combinatorics/Enumerative/Composition): add lemma about products of embeddings |
Co-authored-by: Xavier Genereux [xaviergenereux@hotmail.com](mailto:xaviergenereux@hotmail.com)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
4/0 |
Mathlib/Combinatorics/Enumerative/Composition.lean |
1 |
1 |
['github-actions'] |
nobody |
4-22465 4 days ago |
4-22541 4 days ago |
4-22534 4 days |
| 37025 |
vihdzp author:vihdzp |
feat: supremum of countably many countable ordinals is countable |
This theorem already existed, but we clean it up by using ω₁ and generalize its universes.
---
- [x] depends on: #37015
- [x] depends on: #37020
- [x] depends on: #37024
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
11/22 |
Mathlib/SetTheory/Cardinal/Regular.lean |
1 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
4-13511 4 days ago |
4-18412 4 days ago |
4-19123 4 days |
| 37432 |
mariainesdff author:mariainesdff |
feat(Algebra/BigOperators/NatAntidiagonal): add ofAdd_antidiagonal |
Co-authored by: @xgenereux.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
27/0 |
Mathlib/Algebra/BigOperators/NatAntidiagonal.lean |
1 |
1 |
['github-actions'] |
nobody |
4-6929 4 days ago |
4-7013 4 days ago |
4-7006 4 days |
| 37437 |
mariainesdff author:mariainesdff |
feat(Algebra/SkewPolynomial/Basic): add API |
We add API for `SkewPolynomial`, including `monomial`, `coeff`, `C` and `X`.
Co-authored by: @xgenereux.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
307/19 |
Mathlib/Algebra/SkewPolynomial/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
4-4933 4 days ago |
4-5022 4 days ago |
4-5015 4 days |
| 37317 |
vihdzp author:vihdzp |
feat: a topology with a basis of clopens is completely regular |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
11/0 |
Mathlib/Topology/Separation/CompletelyRegular.lean |
1 |
4 |
['felixpernegger', 'github-actions', 'themathqueen', 'vihdzp'] |
urkud assignee:urkud |
4-2278 4 days ago |
6-82140 6 days ago |
6-82133 6 days |
| 35316 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 4/5) |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
85/0 |
Mathlib.lean,Mathlib/NumberTheory/Transcendental/AnalyticPart.lean |
2 |
12 |
['MichaelStollBayreuth', 'SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'mkaratarakis'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
4-1650 4 days ago |
4-1705 4 days ago |
8-20155 8 days |
| 35402 |
samueloettl author:samueloettl |
feat(Dynamics/BirkhoffSum): birkhoffAverage const |
---
I think this is useful and one of these should be a simp lemma.
I'm not really sure if I got the naming of the theorems correct.
When generalizing to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
|
22/0 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
6 |
['Maldooor', 'github-actions'] |
ADedecker assignee:ADedecker |
3-85890 3 days ago |
40-57322 40 days ago |
47-4203 47 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 |
40 |
['DavidLedvinka', 'EtienneC30', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'pfaffelh'] |
RemyDegenne assignee:RemyDegenne |
3-84850 3 days ago |
4-3492 4 days ago |
25-85154 25 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'] |
nobody |
3-84088 3 days ago |
3-84498 3 days ago |
3-84539 3 days |
| 37183 |
dagurtomas author:dagurtomas |
feat(Tactic/CategoryTheory): map attribute |
Adding `@[map]` to a lemma named `H` of shape `∀ .., f = g`, where `f` and `g` are morphisms
in some category `C`, creates a new lemma named `H_map` of the form
`∀ .. {D} (func : C ⥤ D), F.map f = F.map g` and then applies
`simp only [Functor.map_comp, Functor.map_id]`.
---
[](https://gitpod.io/from-referrer/)
|
LLM-generated
t-meta
t-category-theory
|
253/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/MapSimp.lean,MathlibTest/CategoryTheory/MapSimpCheck.lean |
6 |
5 |
['adamtopaz', 'dagurtomas', 'github-actions', 'joelriou'] |
adamtopaz assignee:adamtopaz |
3-82689 3 days ago |
3-82750 3 days ago |
9-32094 9 days |
| 37138 |
dtumad author:dtumad |
feat(Data/FinEnum): instances for standard signed and unsigned integer types |
Adds `FinEnum` instances for `UIntN`/`IntN` for various `N`, and for platform sized integers.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
45/0 |
Mathlib/Data/FinEnum.lean |
1 |
8 |
['dtumad', 'github-actions', 'joneugster', 'linesthatinterlace'] |
joneugster assignee:joneugster |
3-81752 3 days ago |
3-81752 3 days ago |
8-31578 8 days |
| 30551 |
smmercuri author:smmercuri |
feat: `NumberField.InfinitePlace.sum_inertiaDeg_eq_finrank` |
If `L/K` are number fields number fields and `v : InfinitePlace K`, then the sum of inertia degrees of `w : InfinitePlace L` lying over `v` is the degree of `L` over `K`.
---
- [x] depends on: #27978
- [x] depends on: #27974
- [x] depends on: #29942
- [x] depends on: #29946
- [x] depends on: #36132
- [x] depends on: #36257
- [x] depends on: #36268
- [x] depends on: #36353
- [x] depends on: #36393
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
label:t-algebra$ |
196/7 |
Mathlib.lean,Mathlib/NumberTheory/NumberField/Completion/InfinitePlace.lean,Mathlib/NumberTheory/NumberField/Completion/LiesOverInstances.lean,Mathlib/NumberTheory/NumberField/Completion/Ramification.lean |
4 |
10 |
['Multramate', 'github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
3-80866 3 days ago |
3-80921 3 days ago |
14-18533 14 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 |
10 |
['Multramate', 'github-actions', 'smmercuri'] |
mattrobball assignee:mattrobball |
3-80840 3 days ago |
3-80896 3 days ago |
36-70830 36 days |
| 35653 |
pepamontero author:pepamontero |
feat: add ChartedSpace structure on orbit space |
Add topological preliminaries for properly discontinuous group actions, and use them to equip the orbit space `orbitRel.Quotient G M` with a `ChartedSpace` structure.
In particular:
- Show that the quotient map `Quotient.mk _ : M → orbitRel.Quotient G M` is a covering map and hence a local homeomorphism.
- Construct chosen local inverses of the quotient map and establish properties over them.
- Define a `ChartedSpace` instance on the quotient by composing these local inverses with charts of M.
This started as an ItaLean2025 project; here is the [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Quotient.20Manifolds/with/575121158) dedicated to it.
---
|
new-contributor
t-differential-geometry
|
186/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Instances/OrbitSpace.lean,Mathlib/Topology/Algebra/OrbitSpace.lean |
3 |
13 |
['Rida-Hamadani', 'github-actions'] |
PatrickMassot, grunweg, ocfnash, sgouezel assignee:ocfnash assignee:grunweg assignee:sgouezel assignee:PatrickMassot |
3-79965 3 days ago |
40-66691 40 days ago |
40-67359 40 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 |
3-79956 3 days ago |
3-82110 3 days ago |
4-49117 4 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.
(1/2) 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 |
66 |
['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] |
urkud assignee:urkud |
3-79863 3 days ago |
28-2400 28 days ago |
34-55110 34 days |
| 37438 |
mariainesdff author:mariainesdff |
feat(Algebra/SkewPolynomial/Basic): add more API |
We add API for `SkewPolynomial`, including the definitions `erase` and `update` and results about coefficients and supports.
Co-authored by: @xgenereux.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
602/22 |
Mathlib/Algebra/SkewPolynomial/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
3-79152 3 days ago |
4-4432 4 days ago |
4-4425 4 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 |
3-78942 3 days ago |
3-78999 3 days ago |
18-76861 18 days |
| 37336 |
mbkybky author:mbkybky |
feat(RingTheory/Polynomial): some lemmas about `Ideal.leadingCoeff` |
Add some lemmas about [Ideal.leadingCoeff](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Polynomial/Basic.html#Ideal.leadingCoeff).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
54/1 |
Mathlib/RingTheory/Polynomial/Basic.lean |
1 |
3 |
['github-actions', 'wwylele'] |
nobody |
3-78931 3 days ago |
5-44902 5 days ago |
5-82851 5 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 |
1 |
['github-actions'] |
tb65536 assignee:tb65536 |
3-75445 3 days ago |
4-63104 4 days ago |
4-63374 4 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 |
3-58047 3 days ago |
3-59067 3 days ago |
17-39797 17 days |
| 36754 |
mcdoll author:mcdoll |
feat(Analysis/Distribution): Sobolev distributions |
This is the first part of the definition of the Sobolev space. Here we only define the predicate `MemSobolev`, the subsequent PR will define the space of all Sobolev functions with the correct topology.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
344/0 |
Mathlib.lean,Mathlib/Analysis/Distribution/Sobolev.lean |
2 |
9 |
['github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mcdoll'] |
j-loreaux assignee:j-loreaux |
3-57861 3 days ago |
4-34149 4 days ago |
17-23985 17 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)$, or in Lean, `μHE[n] (L '' A) = L.normDet * volume A`
- 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.
[](https://gitpod.io/from-referrer/)
|
t-analysis
large-import
|
408/0 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/GramMatrix.lean,Mathlib/Analysis/InnerProductSpace/NormDet.lean,docs/references.bib |
4 |
7 |
['copilot-pull-request-reviewer', 'github-actions', 'wwylele'] |
ADedecker assignee:ADedecker |
3-55600 3 days ago |
7-47964 7 days ago |
7-47957 7 days |
| 37466 |
xgenereux author:xgenereux |
feat(Torsion/PrimaryComponent): direct sum of primaryComponent on primes is the whole module |
Let `M(P)` be the `primaryComponent` for `P : HeightOneSpectrum A`, we have $$M \cong \bigoplus_{P} M(P).$$
This is implemented as `DirectSum.IsInternal`.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
68/1 |
Mathlib/Algebra/Module/Torsion/PrimaryComponent.lean |
1 |
1 |
['github-actions'] |
nobody |
3-51099 3 days ago |
3-51176 3 days ago |
3-51169 3 days |
| 33715 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/Projectivization/Action): prove that the action is 2-transitive and primitive |
Define the action of the special linear group on the projectivization.
Prove that it is 2-transitive and primitive.
---
- [ ] depends on: #33387
- [ ] depends on: #33347
- [ ] depends on: #32757
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
259/4 |
Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/Projectivization/Action.lean,Mathlib/LinearAlgebra/Projectivization/Basic.lean,Mathlib/LinearAlgebra/SpecialLinearGroup.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean |
6 |
8 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
joelriou assignee:joelriou |
3-47197 3 days ago |
5-11566 5 days ago |
5-14976 5 days |
| 36501 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/GradedAlgebra/Homogeneous/RingQuot): graded structure on the quotient of a graded ring by a homogeneous ideal |
Define the graded structure on the quotient of a graded ring by a homogeneous ideal
Co-authored with: @mariainesdff
(This is WIP because it still needs some `erw`, various instances do not seem to match,
and the overall structure has to be cleaned-up.
- Maybe define the graded structure on the quotient of a graded module by a homogeneous submodule.
- There is also an issue of working with ring congruences rather than with ideals. )
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
600/2 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Data/DFinsupp/BigOperators.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/RingQuot.lean |
5 |
9 |
['AntoineChambert-Loir', 'chrisflav', 'eric-wieser', 'github-actions'] |
ocfnash assignee:ocfnash |
3-47189 3 days ago |
5-1193 5 days ago |
5-1199 5 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 |
3-47188 3 days ago |
12-65429 12 days ago |
17-14629 17 days |
| 36892 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/MvPowerSeries/NoZeroDivisors): simplify the proof by adding two instances |
Add two instances proposed by @eric-wieser :
- `WellFoundedLT.wellOrderingRel` : `WellOrderingRel.isWellOrder` satisfies `WellFoundedLT`
- `WellFoundedGT.swap` : If a linear order `l` satisfies `WellFoundedLT`, then `l.swap` satisfies `WellFoundedGT`.
They clarify the proof of `MvPowerSeries.NoZeroDivisors` that the power series rings over a ring without zero divisors has no zero divisors.
Ref. [#mathlib4 > help in RingTheory.MvPowerSeries.NeZeroDivisors](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/help.20in.20RingTheory.2EMvPowerSeries.2ENeZeroDivisors/with/580586392)
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
10/3 |
Mathlib/Order/RelClasses.lean,Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean,Mathlib/SetTheory/Cardinal/Order.lean |
3 |
3 |
['JovanGerb', 'github-actions', 'vihdzp'] |
mariainesdff assignee:mariainesdff |
3-47187 3 days ago |
15-21863 15 days ago |
15-21856 15 days |
| 37274 |
JovanGerb author:JovanGerb |
chore(Order/Hom/WithTopBot): use `to_dual` |
Use `to_dual` on `WithBot`/`WithTop` morphism definitions. This removes one `backward.isDefEq.respectTransparency` option.
Intentionally remove `simps!` from `LatticeHom.withTopWithBot` and `LatticeHom.withTop'`, instead putting `simp` on the equivalent manual lemma`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
55/205 |
Mathlib/Order/Hom/WithTopBot.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
3-47184 3 days ago |
7-74546 7 days ago |
7-77099 7 days |
| 37349 |
kim-em author:kim-em |
feat(Analysis/Polynomial/MahlerMeasure): Landau's inequality and Mignotte bound |
This PR extracts Landau's inequality as a standalone theorem and adds the
Mignotte coefficient bound for polynomial factors.
Landau's inequality (`mahlerMeasure_le_sqrt_sum_sq_norm_coeff`) states that
the Mahler measure of a polynomial is at most `√(∑ ‖coeff i‖²)`. This was
previously buried as an intermediate step inside the proof of
`mahlerMeasure_le_sqrt_natDegree_add_one_mul_supNorm`, which is now a short
corollary.
The Mignotte bound (`norm_coeff_le_choose_mul_mahlerMeasure_mul`) says that
if `f = g * h` with `M(h) ≥ 1`, then `‖g.coeff n‖ ≤ C(deg g, n) · M(f)`.
The hypothesis `M(h) ≥ 1` holds in particular for nonzero integer polynomials
(via `one_le_mahlerMeasure`, also added here). This is the classical bound
used in Berlekamp–Zassenhaus polynomial factorization.
New declarations:
- `one_le_mahlerMeasure`
- `mahlerMeasure_le_sqrt_sum_sq_norm_coeff`
- `le_mahlerMeasure_mul_right` / `le_mahlerMeasure_mul_left`
- `norm_coeff_le_choose_mul_mahlerMeasure_mul`
The ℓ² norm is stated explicitly as `√(∑ i ∈ p.support, ‖p.coeff i‖ ^ 2)`
with a TODO to restate using a dedicated polynomial ℓ² norm once one is
defined (cf. the TODO in `Mathlib.Analysis.Polynomial.Norm`).
🤖 Prepared with [Claude Code](https://claude.ai/code) |
t-analysis |
58/20 |
Mathlib/Analysis/Polynomial/MahlerMeasure.lean |
1 |
3 |
['github-actions', 'khwilson', 'mathlib-bors'] |
j-loreaux assignee:j-loreaux |
3-47182 3 days ago |
5-46707 5 days ago |
5-47004 5 days |
| 37430 |
RemyDegenne author:RemyDegenne |
feat: lemmas about predictablePart |
Co-authored-by: Etienne Marion @EtienneC30
---
[](https://gitpod.io/from-referrer/)
|
brownian
t-measure-probability
|
19/0 |
Mathlib/Probability/Martingale/Centering.lean |
1 |
3 |
['github-actions', 'kex-y'] |
kex-y assignee:kex-y |
3-47176 3 days ago |
4-10483 4 days ago |
4-10476 4 days |
| 37452 |
mathlib-splicebot author:mathlib-splicebot |
chore(Mathlib/Condensed/Light/Epi.lean): automated extraction |
This PR was automatically created from PR #37449 by @dagurtomas via a [review comment](https://github.com/leanprover-community/mathlib4/pull/37449#discussion_r3017308832) by @dagurtomas. |
t-condensed |
19/0 |
Mathlib/Condensed/Light/Epi.lean |
1 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
3-47173 3 days ago |
3-74478 3 days ago |
3-74471 3 days |
| 37454 |
mathlib-splicebot author:mathlib-splicebot |
chore(Mathlib/Topology/Category/LightProfinite/Limits.lean): automated extraction |
This PR was automatically created from PR #37449 by @dagurtomas via a [review comment](https://github.com/leanprover-community/mathlib4/pull/37449#discussion_r3017310641) by @dagurtomas. |
t-topology |
7/0 |
Mathlib/Topology/Category/LightProfinite/Limits.lean |
1 |
1 |
['github-actions'] |
PatrickMassot assignee:PatrickMassot |
3-47173 3 days ago |
3-74445 3 days ago |
3-74438 3 days |
| 36968 |
NoahW314 author:NoahW314 |
feat: add missing IndiscreteTopology instances |
Add several instances for the IndiscreteTopology. These instances are chosen as they have short proofs and imply many of the more common instances like `NormalSpace` and `LocPathConnectedSpace`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-topology
|
21/0 |
Mathlib/Topology/AlexandrovDiscrete.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Irreducible.lean,Mathlib/Topology/Metrizable/Basic.lean |
4 |
3 |
['felixpernegger', 'github-actions'] |
PatrickMassot assignee:PatrickMassot |
3-39550 3 days ago |
3-39604 3 days ago |
13-19734 13 days |
| 37222 |
SnirBroshi author:SnirBroshi |
feat(LinearAlgebra/Matrix/ConjTranspose): `conjTranspose` as an `AlgEquiv` |
Wrap `Matrix.conjTranspose` as a `StarAlgEquiv` to the opposite ring.
Also upgrade the existing `RingEquiv` to a `StarRingEquiv`.
---
This relies on `TrivialStar R` (the matrix has entries in `α` which is an `R`-algebra) because an `AlgEquiv` requires `f (r • M) = r • (f M)` but `conjTranspose` gives `(r • M)ᴴ = (star r) • Mᴴ`.
Unlike `LinearEquiv` there doesn't seem to be a ["semilinear" variant of it over `starRingEnd`](https://github.com/leanprover-community/mathlib4/blob/3871d9aa5a510dda9dcf837fbb6ba30d6927d504/Mathlib/Algebra/Module/LinearMap/Star.lean#L25).
- [x] depends on: #37178
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
29/27 |
Mathlib/LinearAlgebra/Matrix/ConjTranspose.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
3-36650 3 days ago |
3-36711 3 days ago |
3-37280 3 days |
| 37171 |
SnirBroshi author:SnirBroshi |
chore(Data/Int/Init): generalize `le_induction` from `Prop` to `Sort*` + def lemmas |
---
[Zulip 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Add.20note.20to.20help.20search.20similar.20thms/near/535331432)
[](https://gitpod.io/from-referrer/)
|
t-data
large-import
|
56/48 |
Mathlib/Data/Int/Basic.lean,Mathlib/Data/Int/Init.lean,Mathlib/GroupTheory/CoprodI.lean |
3 |
5 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'plp127'] |
nobody |
3-36394 3 days ago |
3-36424 3 days ago |
4-44119 4 days |
| 37193 |
JJYYY-JJY author:JJYYY-JJY |
doc(metric): add main results sections for metric spaces |
Add Main results sections to metric-space definition modules
This PR improves discoverability in the metric-space definition modules by adding curated Main results sections and by fixing a stale internal file reference.
Add a Main results section to the pseudo-metric definitions module, highlighting key constructions and foundational lemmas.
Add a Main results section to the metric-space definitions module, highlighting core constructions and distance-based characterization lemmas.
Update the implementation note to point to the current pseudo-metric definitions path, clarifying where elementary pseudometric facts live.
This is a docstring-only change:
No declarations, theorem names, imports, instances, or proofs are changed;
only module docstrings in the two metric-space definition files are edited.
---
[](https://gitpod.io/from-referrer/) |
t-topology
new-contributor
|
17/3 |
Mathlib/Topology/MetricSpace/Defs.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean |
2 |
6 |
['copilot-pull-request-reviewer', 'felixpernegger', 'github-actions'] |
j-loreaux assignee:j-loreaux |
3-28487 3 days ago |
3-28549 3 days ago |
4-28871 4 days |
| 36451 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Matching): `edgeSet` is injective and strictly monotonic on matchings, and more API |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
41/10 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
2 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
3-25273 3 days ago |
3-25299 3 days ago |
20-21513 20 days |
| 26645 |
erdOne author:erdOne |
feat(RingTheory/PowerSeries): Construction of `Q` such that `P(Q(X)) = X` |
Co-authored-by: Junnosuke Koizumi
Co-authored-by: Hyeon, Seung-Hyeon
Co-authored-by: Yuichiro Taguchi
This contribution was created as part of the ZMC conference 2025 "Anabelian Geometry and its Computer Formalization".
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
130/0 |
Mathlib/RingTheory/PowerSeries/Substitution.lean |
1 |
9 |
['chrisflav', 'erdOne', 'github-actions', 'kckennylau'] |
kbuzzard assignee:kbuzzard |
3-23144 3 days ago |
3-23144 3 days ago |
51-52997 51 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 |
3-21962 3 days ago |
3-23264 3 days ago |
3-29729 3 days |
| 37419 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): introduce `MultiseriesExpansion.Approximates` |
* Introduce `MultiseriesExpansion.Approximates` predicate meaning that a multiseries can be used to obtain
an asymptotical approximations of its attached function.
* Provide constructors (`nil`, `cons`), a coinductive principle, and basic constructions for `Approximates`.
---
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-meta
large-import
|
132/2 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean |
1 |
1 |
['github-actions'] |
nobody |
3-21865 3 days ago |
4-19538 4 days ago |
4-19531 4 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 |
208/0 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean |
1 |
1 |
['github-actions'] |
nobody |
3-21846 3 days ago |
4-20301 4 days ago |
4-20294 4 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/)
|
|
6/38 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Data/Rat/Floor.lean,Mathlib/Geometry/Euclidean/Triangle.lean,Mathlib/NumberTheory/Padics/PadicNorm.lean |
4 |
1 |
['FernandoChu', 'github-actions'] |
nobody |
3-20287 3 days ago |
5-57589 5 days ago |
5-57582 5 days |
| 37414 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): predicates for `Monomial` |
Introduce `FirstNonzeroIsPos`, `FirstNonzeroIsNeg` and `AllZero` predicates on lists of real numbers.
When applied to a list of exponents of a monomial in a well-formed basis, this trichotomy
determines its asymptotic behaviour: `FirstNonzeroIsPos` means it tends to infinity,
`FirstNonzeroIsNeg` means it tends to zero and `AllZero` means it tends to a constant.
---
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/) |
t-meta |
92/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Monomial/Predicates.lean |
3 |
5 |
['WilliamCoram', 'github-actions', 'vasnesterov'] |
JovanGerb assignee:JovanGerb |
3-20265 3 days ago |
4-19385 4 days ago |
4-20063 4 days |
| 33662 |
Pjotr5 author:Pjotr5 |
feat(Algebra/Order/BigOperators/Expect): add lemmas and strict variants |
### Summary
- Combine `le_expect_nonempty_of_subadditive` and `le_expect_of_subadditive` into a single lemma `le_expect_of_subadditive`.
The extra assumptions `(hs : s.Nonempty)` and `(h_zero : m 0 = 0)` are unnecessary (since `m 0 = 0` follows from `h_div`).
This requires a small downstream update to `Mathlib/Analysis/RCLike/Basic.lean` (`norm_expect_le`).
- Add strict-inequality variants:
`expect_lt_expect`, `expect_lt`, `lt_expect`.
- Add existence lemmas:
`exists_le_of_expect_le_expect`, `exists_le_of_le_expect`, `exists_le_of_expect_le`,
and `exists_lt_of_expect_lt_expect`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
46/16 |
Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Analysis/RCLike/Basic.lean |
2 |
7 |
['Pjotr5', 'b-mehta', 'felixpernegger', 'github-actions'] |
b-mehta assignee:b-mehta |
3-20095 3 days ago |
12-62703 12 days ago |
88-17836 88 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/)
|
|
10/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 |
1 |
['artie2000', 'github-actions', 'ooovi'] |
nobody |
3-18603 3 days ago |
19-81865 19 days ago |
19-81858 19 days |
| 37382 |
tb65536 author:tb65536 |
feat(RingTheory/TensorProduct/Quotient): add flipped version of `tensorQuotientEquiv` |
This PR adds the isomorphism
`(A ⧸ I) ⊗[R] T ≃ₐ[S] (A ⊗[R] T) ⧸ I.map (algebraMap A (A ⊗[R] T))`
which is just the flipped version of the existing isomorphism
`A ⊗[R] (T ⧸ I) ≃ₐ[S] (A ⊗[R] T) ⧸ I.map includeRight`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
19/0 |
Mathlib/RingTheory/TensorProduct/Quotient.lean |
1 |
2 |
['WenrongZou', 'github-actions'] |
nobody |
3-18447 3 days ago |
4-73490 4 days ago |
4-73485 4 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 |
3-16991 3 days ago |
3-17056 3 days ago |
3-17049 3 days |
| 37486 |
sgouezel author:sgouezel |
chore: fix instance diamond in `Order.Ideal` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
6/4 |
Mathlib/Order/Ideal.lean |
1 |
1 |
['github-actions'] |
nobody |
3-10329 3 days ago |
3-10404 3 days ago |
3-10397 3 days |
| 37448 |
SnirBroshi author:SnirBroshi |
chore(Algebra): use `IsMulCommutative` to spell `Std.Commutative (· * ·)` |
and use `IsAddCommutative` to spell `Std.Commutative (· + ·)`.
Also makes `Is{Mul/Add}Commutative.is_comm` instances so that core lemmas (or `grind`) can synthesize `Std.Commutative`.
---
Hopefully this is useful since #36549 was merged.
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
116/151 |
Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Subgroup/ZPowers/Basic.lean,Mathlib/Algebra/Lie/Abelian.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Sub/Defs.lean,Mathlib/Algebra/Star/CentroidHom.lean,Mathlib/CategoryTheory/Center/Basic.lean,Mathlib/FieldTheory/Galois/Abelian.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/GroupTheory/CommutingProbability.lean,Mathlib/GroupTheory/Focal.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/KleinFour.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic/Basic.lean,Mathlib/GroupTheory/SpecificGroups/Dihedral.lean,Mathlib/GroupTheory/Subgroup/Centralizer.lean,Mathlib/RepresentationTheory/Irreducible.lean |
21 |
17 |
['SnirBroshi', 'github-actions', 'j-loreaux', 'leanprover-radar', 'vihdzp'] |
tb65536 assignee:tb65536 |
3-9874 3 days ago |
3-14888 3 days ago |
3-25311 3 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 |
3-9624 3 days ago |
9-62555 9 days ago |
9-62548 9 days |
| 37488 |
sgouezel author:sgouezel |
chore: fix instance diamond for order on `Subtype (IsPartition)` |
We introduce a type synonym to avoid the diamond.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
23/8 |
Mathlib/Data/Setoid/Partition.lean |
1 |
1 |
['github-actions'] |
nobody |
3-8316 3 days ago |
3-8384 3 days ago |
3-8377 3 days |
| 36863 |
artie2000 author:artie2000 |
feat(Algebra/Ring/Subsemiring): subsemiring support |
* Add automation for working with support of a subsemiring
* Define structure for support of a subsemiring when it's an ideal
* Prove sufficient condition for it to be an ideal
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
93/0 |
Mathlib.lean,Mathlib/Algebra/Ring/Subsemiring/Support.lean |
2 |
1 |
['github-actions'] |
eric-wieser assignee:eric-wieser |
3-8146 3 days ago |
15-71476 15 days ago |
15-71870 15 days |
| 37397 |
xgenereux author:xgenereux |
chore(RatFunc/Luroth): split file and small changes |
This PR splits the Luroth file so that we can use the results on `IntermediateField` without having to import the whole file.
I've also applied some small changes like removing the custom notation in favor of the more general `Algebra.adjoin` notation.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
192/170 |
Mathlib.lean,Mathlib/FieldTheory/RatFunc/IntermediateField.lean,Mathlib/FieldTheory/RatFunc/Luroth.lean |
3 |
3 |
['felixpernegger', 'github-actions', 'xgenereux'] |
nobody |
3-8066 3 days ago |
4-44848 4 days ago |
4-44986 4 days |
| 35533 |
mariainesdff author:mariainesdff |
feat(RingTheory/DedekindDomain/Ideal/Lemmas): add nontrivial_heightOneSpectrum |
Co-authored by: @xgenereux.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
12/0 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean |
1 |
5 |
['Multramate', 'erdOne', 'github-actions', 'mariainesdff', 'tb65536'] |
chrisflav assignee:chrisflav |
3-5857 3 days ago |
31-18852 31 days ago |
37-45990 37 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 |
3-4100 3 days ago |
14-83148 14 days ago |
14-83970 14 days |
| 37431 |
YaelDillies author:YaelDillies |
chore(Algebra/Pointwise): generalise `closure_pow_le` |
Thanks to Andrew for spotting this.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
11/11 |
Mathlib/Algebra/Group/Submonoid/Pointwise.lean |
1 |
8 |
['YaelDillies', 'github-actions', 'grunweg', 'j-loreaux', 'vihdzp'] |
nobody |
2-83508 2 days ago |
2-83566 2 days ago |
3-53317 3 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'] |
ADedecker assignee:ADedecker |
2-81955 2 days ago |
2-83129 2 days ago |
3-37117 3 days |
| 37375 |
NoneMore author:NoneMore |
feat(SetTheory/Ordinal/FixedPointApproximants): add zero and limit lemmas for approximants |
Add helper lemmas `lfpApprox_zero`, `lfpApprox_limit`, and the corresponding `gfpApprox` lemmas by duality.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
new-contributor
maintainer-merge
|
50/26 |
Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean |
1 |
20 |
['NoneMore', 'YaelDillies', 'github-actions', 'vihdzp'] |
nobody |
2-81166 2 days ago |
3-80702 3 days ago |
4-50971 4 days |
| 34273 |
gasparattila author:gasparattila |
feat(Topology/Sets): finite sets are dense in `(Nonempty)Compacts` |
---
- [x] depends on: #34266
[](https://gitpod.io/from-referrer/)
|
t-topology |
35/0 |
Mathlib/Topology/Sets/VietorisTopology.lean |
1 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'scholzhannah'] |
mcdoll assignee:mcdoll |
2-80238 2 days ago |
10-77037 10 days ago |
10-78280 10 days |
| 37511 |
grunweg author:grunweg |
chore(positivity): tests for two more extensions |
I believe these extensions are not explicitly tested yet: I've added one as I wondered about this today.
---
[](https://gitpod.io/from-referrer/)
|
easy
t-meta
|
3/0 |
MathlibTest/positivity.lean |
1 |
1 |
['github-actions'] |
nobody |
2-74312 2 days ago |
2-74378 2 days ago |
2-74371 2 days |
| 36552 |
j-loreaux author:j-loreaux |
feat: add instances for `IsMulCommutative s.toWeakerSubobject` |
---
- [ ] depends on: #36549
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
60/0 |
Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Submonoid/Defs.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/RingTheory/NonUnitalSubring/Defs.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Defs.lean |
9 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-73074 2 days ago |
2-73101 2 days ago |
2-73399 2 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'] |
nobody |
2-73038 2 days ago |
2-73061 2 days ago |
2-73258 2 days |
| 33935 |
mckoen author:mckoen |
feat(CategoryTheory/Monoidal/Arrow): define monoidal structure on arrow category |
defines a monoidal category structure on the arrow category of a cartesian closed category.
---
- [x] depends on: #33974
- [x] depends on: #34887
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
large-import
|
635/1 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Arrow.lean,Mathlib/CategoryTheory/Monoidal/Closed/Basic.lean,Mathlib/CategoryTheory/Monoidal/Limits/HasLimits.lean,Mathlib/CategoryTheory/Monoidal/Limits/Shapes/Pullback.lean,Mathlib/CategoryTheory/Monoidal/PushoutProduct.lean |
6 |
39 |
['dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mckoen'] |
joelriou assignee:joelriou |
2-69363 2 days ago |
2-69363 2 days ago |
24-23929 24 days |
| 37512 |
xgenereux author:xgenereux |
feat(Valuation/IsTrivialOn): transcendental_of_lt_one |
For a `K`-algebra `L` and a valuation `v` over `L` which is trivial on `K`, if `y : L` is such that `y ≠ 0` and `v y < 1`, then it is transcendental over `K`.
To add this result we need some lemmas from `RatFunc.AsPolynomial` which are not related to `RatFunc` so I have pulled them out of that file. I also didn't want to put this in `Valuation.Basic` so I have made a new file for valuation which are trivial over some base ring.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
82/25 |
Mathlib.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/RingTheory/Valuation/IsTrivialOn.lean |
3 |
1 |
['github-actions'] |
nobody |
2-67274 2 days ago |
2-67245 2 days ago |
2-67320 2 days |
| 35683 |
gasparattila author:gasparattila |
fix(Tactic/FunProp): detect `Continuous.subtype_mk` as compositional |
This PR changes `fun_prop` to detect some theorems involving dependent types, such as `Continous.subtype_mk` to be in compositional form. This lets `fun_prop` solve goals such as `Continuous fun x => (⟨x, trivial⟩ : {x : ℝ // True})`.
---
These theorems become compositional: `Continuous.subtype_mk`, `Topology.IsEmbedding.inclusion`, `Topology.IsOpenEmbedding.inclusion`, `Topology.IsClosedEmbedding.inclusion`, `Measurable.subtype_mk`, `Measurable.imp`, `Path.symm_continuous_family`, `Continuous.upperHalfPlaneMk`
These theorems become simple: `hasFDerivAt_prodMk_left`, `hasFDerivAt_prodMk_right`, `contDiff_prodMk_left`, `contDiff_prodMk_right`
[](https://gitpod.io/from-referrer/)
|
t-meta |
57/33 |
Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,MathlibTest/fun_prop_dev.lean |
5 |
6 |
['gasparattila', 'github-actions', 'grunweg', 'lecopivo', 'mathlib-merge-conflicts'] |
dwrensha assignee:dwrensha |
2-62583 2 days ago |
7-59717 7 days ago |
39-57271 39 days |
| 30077 |
agjftucker author:agjftucker |
feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfBivariate |
Two specializations of the implicit function theorem, one applying to an uncurried bivariate function and one applying to a curried bivariate function.
---
- [ ] depends on: #26985
This PR is a synthesis of material from others which failed to make progress. But there seems always to have been a different reason for it, so I'm afraid I keep trying where maybe I shouldn't.
#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.
There are certain changes agreed upon in those PRs, e.g. to existing names, that are doubtless good but that I have excised from this PR to avoid distraction.
[](https://gitpod.io/from-referrer/)
|
t-analysis |
187/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/FDeriv/Partial.lean,Mathlib/Analysis/Calculus/ImplicitFunction/Bivariate.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean |
4 |
12 |
['agjftucker', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
j-loreaux assignee:j-loreaux |
2-62448 2 days ago |
2-75405 2 days ago |
48-53336 48 days |
| 37363 |
vihdzp author:vihdzp |
feat: many simp lemmas about aleph/beth/omega functions and lift |
---
- [x] depends on: #37024
[](https://gitpod.io/from-referrer/)
|
t-set-theory
maintainer-merge
|
220/41 |
Mathlib/SetTheory/Cardinal/Aleph.lean |
1 |
4 |
['YaelDillies', 'github-actions', 'mathlib-dependent-issues'] |
nobody |
2-59982 2 days ago |
4-18444 4 days ago |
4-20093 4 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 |
2 |
['github-actions', 'vihdzp'] |
nobody |
2-59093 2 days ago |
2-62784 2 days ago |
2-62777 2 days |
| 37523 |
matthewjasper author:matthewjasper |
feat: elements of Dedekind domain approximate elements of valuation ring |
Algebra part of showing that `R` is dense in `O_v` which is used to show that `R / v` is isomorphic to
the residue field of `O_v` and construct the base change isomorphism for finite adeles.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
81/1 |
Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
2 |
1 |
['github-actions'] |
nobody |
2-58302 2 days ago |
2-58377 2 days ago |
2-58370 2 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 |
2-57382 2 days ago |
2-57407 2 days ago |
3-67292 3 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/)
|
|
421/308 |
Mathlib.lean,Mathlib/Analysis/ODE/ExistUnique.lean,Mathlib/Analysis/ODE/Gronwall.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,docs/1000.yaml,docs/undergrad.yaml |
7 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-57381 2 days ago |
2-57404 2 days ago |
7-30735 7 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'] |
nobody |
2-57317 2 days ago |
2-57373 2 days ago |
4-23898 4 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 |
112/27 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean |
4 |
3 |
['github-actions', 'mathlib-dependent-issues', 'plp127'] |
nobody |
2-56664 2 days ago |
2-56723 2 days ago |
10-56013 10 days |
| 36940 |
vihdzp author:vihdzp |
chore(SetTheory/Cardinal/Cofinality): deprecate many lemmas on `lsub`/`blsub` |
The intention is to get rid of `Ordinal.lsub` and `Ordinal.blsub` entirely, see #17033.
---
- [x] depends on: #37015
- [x] depends on: #37020
- [x] depends on: #37024
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
maintainer-merge
|
109/89 |
Mathlib/CategoryTheory/ObjectProperty/LimitsClosure.lean,Mathlib/MeasureTheory/MeasurableSpace/Card.lean,Mathlib/Order/Filter/Cocardinal.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Pigeonhole.lean,Mathlib/SetTheory/Cardinal/Regular.lean |
6 |
7 |
['YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
2-55883 2 days ago |
4-18403 4 days ago |
4-21089 4 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 |
173/1 |
Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/Topology/Sheaves/SheafCondition/Sites.lean |
3 |
4 |
['Brian-Nugent', 'github-actions', 'joelriou'] |
adamtopaz assignee:adamtopaz |
2-55190 2 days ago |
2-54931 2 days ago |
4-46319 4 days |
| 37356 |
BryceT233 author:BryceT233 |
feat(RingTheory): uniqueness of the lift of a simple root and the adic completeness of artinian local ring |
This PR adds the following three lemmas:
* `Polynomial.exists_mul_sq_add_linear_part_eq_eval_add`: this is an alternative version of `Polynomial.eval_add_of_sq_eq_zero` and is used in the lemma `IsLocalRing.eq_of_eval_eq_zero_of_not_isUnit_sub`.
* An instance that an artinian local ring is adic complete with respect to its maximal ideal.
* `IsLocalRing.eq_of_eval_eq_zero_of_not_isUnit_sub`: this is [stacks [06RR]](https://stacks.math.columbia.edu/tag/06RR) which shows the uniqueness of the lift of a simple root given by the henselian property.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
40/4 |
Mathlib/Algebra/Polynomial/Taylor.lean,Mathlib/RingTheory/AdicCompletion/Noetherian.lean,Mathlib/RingTheory/Henselian.lean |
3 |
4 |
['BryceT233', 'artie2000', 'github-actions'] |
nobody |
2-53863 2 days ago |
5-38778 5 days ago |
5-39014 5 days |
| 37456 |
Robertboy18 author:Robertboy18 |
feat(LinearAlgebra/AffineSpace): add Desargues's theorem |
This PR adds an affine (parallel) version of Desargues's theorem!
**Main changes**
- New file `Mathlib/LinearAlgebra/AffineSpace/Desargues.lean` with
`parallel_third_side_of_perspective`: if two triangles are in perspective from a point `S` and
two pairs of corresponding sides are parallel, then the third pair of sides is parallel.
- Add the corresponding `public import` to `Mathlib.lean`.
- Update `docs/100.yaml` (entry #87) to point to the new declaration.
**High level Proof idea is from the rocq repository!**
Compare side vectors via `exists_eq_smul_of_parallel` for the two given pairs of parallel sides; the
shared comparison along `SA` forces the same scalar, yielding parallelism of the third sides.
Tests: `lake build Mathlib.LinearAlgebra.AffineSpace.Desargues`! |
t-algebra
new-contributor
label:t-algebra$ |
159/0 |
Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/Desargues.lean,docs/100.yaml |
3 |
8 |
['Robertboy18', 'SnirBroshi', 'copilot-pull-request-reviewer', 'github-actions', 'wwylele'] |
nobody |
2-52522 2 days ago |
3-63043 3 days ago |
3-71276 3 days |
| 34031 |
lua-vr author:lua-vr |
feat(Dynamics/BirkhoffSum): add the maximal ergodic theorem |
---
This file exports three constants:
```lean
public def birkhoffAverageSupSet (f : α → α) (g : α → ℝ) (a : ℝ) : Set α :=
{x | ∃ n : ℕ, a < birkhoffAverage ℝ f g n x}
public theorem meas_birkhoffAverageSupSet_smul_const_le_integral (a : ℝ) (ha : 0 < a) :
μ.real (birkhoffAverageSupSet f g a) • a ≤ ∫ x in birkhoffAverageSupSet f g a, g x ∂μ
public theorem meas_birkhoffAverageSupSet_smul_const_le_norm (a : ℝ) (ha : 0 < a) :
μ.real (birkhoffAverageSupSet f (fun x ↦ ‖g x‖) a) • a ≤ ∫ x, ‖g x‖ ∂μ
```
In my interpretation, the other constants are auxiliary, so I did not make them public. If it's of independent interest, `birkhoffMax` could be exported or moved to a dedicated file, but I'm not sure of that at the moment.
- [x] depends on: #34030
- [x] depends on: #34029
- [x] depends on: #34025
[](https://gitpod.io/from-referrer/)
|
t-dynamics |
291/0 |
Mathlib.lean,Mathlib/Dynamics/BirkhoffSum/Maximal.lean |
2 |
4 |
['github-actions', 'lua-vr', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-47661 2 days ago |
30-2804 30 days ago |
30-3167 30 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 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
mcdoll assignee:mcdoll |
2-47617 2 days ago |
3-1157 3 days ago |
3-1287 3 days |
| 34275 |
gasparattila author:gasparattila |
feat(Topology/Sets): topological properties of `(Nonempty)Compacts.map` |
---
- [x] depends on: #34268
[](https://gitpod.io/from-referrer/)
|
t-topology |
80/1 |
Mathlib/Topology/Sets/VietorisTopology.lean |
1 |
10 |
['gasparattila', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'scholzhannah'] |
j-loreaux assignee:j-loreaux |
2-47616 2 days ago |
3-1160 3 days ago |
3-3252 3 days |
| 34276 |
gasparattila author:gasparattila |
feat(Topology/Sets): discreteness of `(Nonempty)Compacts` |
---
- [x] depends on: #34268
[](https://gitpod.io/from-referrer/)
|
t-topology |
20/0 |
Mathlib/Topology/Sets/VietorisTopology.lean |
1 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
j-loreaux assignee:j-loreaux |
2-47615 2 days ago |
3-1162 3 days ago |
3-3007 3 days |
| 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
|
188/2 |
Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/MeanValue.lean,Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/Monoid.lean |
4 |
9 |
['CoolRmal', 'Deep0Thinking', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'sgouezel'] |
urkud assignee:urkud |
2-47614 2 days ago |
3-6646 3 days ago |
4-51875 4 days |
| 36155 |
grunweg author:grunweg |
feat: custom elaborators for TangentSpace and tangentMap(Within) |
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-meta
|
58/28 |
Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean,Mathlib/Geometry/Manifold/GroupLieAlgebra.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/Topology/FiberBundle/Constructions.lean |
7 |
4 |
['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'ocfnash'] |
PatrickMassot assignee:PatrickMassot |
2-47610 2 days ago |
28-5258 28 days ago |
29-15013 29 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 |
97/0 |
Mathlib.lean,Mathlib/Analysis/CStarAlgebra/Extreme.lean,docs/references.bib |
3 |
8 |
['github-actions', 'j-loreaux', 'loefflerd', 'mathlib-dependent-issues', 'themathqueen'] |
mcdoll assignee:mcdoll |
2-47609 2 days ago |
22-11441 22 days ago |
24-1194 24 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 |
2-47608 2 days ago |
3-4970 3 days ago |
3-32573 3 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 |
284/288 |
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 |
1 |
['github-actions'] |
joelriou assignee:joelriou |
2-47607 2 days ago |
27-60136 27 days ago |
27-60761 27 days |
| 36917 |
iarnoldy author:iarnoldy |
feat(LinearAlgebra/CliffordAlgebra): bivector Lie subalgebra |
Define the submodule of grade-n elements (n-vectors) in a Clifford algebra
and show that bivectors (n = 2) form a `LieSubalgebra` under the commutator
bracket. This gives the standard construction of so(Q) from Cl(Q).
Main definitions:
* `CliffordAlgebra.nvector` — grade-n submodule, spanned by n-fold products of ι
* `CliffordAlgebra.bivector` — nvector 2 Q, the bivector submodule
* `CliffordAlgebra.bivectorLieSubalgebra` — LieSubalgebra of bivectors
Main results:
* `CliffordAlgebra.lie_ι_mul_ι` — explicit commutator formula for bivector generators
* `CliffordAlgebra.lie_mem_bivector` — bracket closure of the bivector submodule
* `CliffordAlgebra.bivector_le_evenOdd_zero` — bivectors lie in the even part
The `LieModule` instance for `CliffordAlgebra Q` acting on itself is provided
explicitly (`instLieModuleSelf`) because automatic synthesis exceeds the default
heartbeat limit.
AI disclosure: This code was generated with AI assistance (Claude, Anthropic).
The submitter directed the construction and QA but is not a Lean programmer.
The mathematical content is classical (Doran & Lasenby, Ch. 3). Extra review
scrutiny is welcomed.
Co-authored-by: Claude
---
Open design questions for reviewers:
1. **Naming**: Is `nvector` the right name? Eric Wieser suggested generalizing
to n-vectors. Alternatives: `ιProd`, `grade`, or following the `exteriorPower`
pattern via `equivExterior` pullback.
2. **Scalar contamination**: The spanning set `{ι m₁ * ι m₂}` includes
`ι m * ι m = Q(m)` (scalars). Eric suggested pulling back `exteriorPower`
through `equivExterior` for pure grades (requires `Invertible (2 : R)`).
Happy to rework if that's preferred.
3. **instLieModuleSelf**: Should this be an upstream issue rather than a
local workaround? @ocfnash
4. **ι_mul_ι_comm'**: This may duplicate existing API (`ι_mul_ι_comm b a`
plus `polar_comm`). Happy to inline if reviewers prefer.
Discussed on Zulip: https://leanprover.zulipchat.com (Is there code for X? thread) |
new-contributor
t-algebra
LLM-generated
label:t-algebra$ |
338/0 |
Mathlib.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Bivector.lean |
2 |
2 |
['github-actions'] |
eric-wieser assignee:eric-wieser |
2-47601 2 days ago |
14-53969 14 days ago |
14-55187 14 days |
| 37371 |
kebekus author:kebekus |
feat: formulate identity principle for meromorphic functions on topologically perfect subsets |
Add a simple, but useful, reformulation of the identity principle for meromorphic functions on topologically perfect subsets. To facilitate application, establish (closures of) open subsets in perfect topological spaces are preperfect sets.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
43/0 |
Mathlib/Analysis/Meromorphic/Divisor.lean,Mathlib/Analysis/Meromorphic/IsolatedZeros.lean,Mathlib/Topology/Perfect.lean |
3 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
2-47598 2 days ago |
4-84962 4 days ago |
4-84955 4 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}
(N : Submodule R₁ M₁) (B : M₁ →ₛₗ[I₁] M₂ →ₛₗ[I₂] 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$ |
17/17 |
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 |
4 |
['eric-wieser', 'github-actions', 'martinwintermath', 'vihdzp'] |
ocfnash assignee:ocfnash |
2-47596 2 days ago |
3-7596 3 days ago |
4-59928 4 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 |
2-47592 2 days ago |
3-17606 3 days ago |
3-17599 3 days |
| 37479 |
ADedecker author:ADedecker |
feat(Distribution): make parameters implicit in favor of type ascription |
Expanding on a suggestion by @faenuccio in an earlier PR, I make the regularity parameters of [TestFunction.fderivCLM](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Distribution/TestFunction.html#TestFunction.fderivCLM) (and similar constructions) implicit.
This is a bit controversial, because it is essentially forcing type ascription in a lot of contexts. The rationale is that
"the differentiation operator from `𝓓^{n}` to `𝓓^{k}`" matches mathematical practice, and is easier to parse than "the differentiation operator with parameters `n` and `k`".
To make this even more convenient, I introduce notations like `𝓓^{n}` to be used when the spaces can be inferred but the regularity cannot.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
107/46 |
Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean |
2 |
1 |
['github-actions'] |
sgouezel assignee:sgouezel |
2-47591 2 days ago |
3-18657 3 days ago |
3-18650 3 days |
| 37499 |
gasparattila author:gasparattila |
feat(Topology/Sets): local compactness of `(Nonempty)Compacts` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
46/0 |
Mathlib/Topology/Sets/VietorisTopology.lean |
1 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
2-47591 2 days ago |
3-305 3 days ago |
3-298 3 days |
| 37530 |
mcdoll author:mcdoll |
fix(Topology/Algebra): fix bad simps and make arguments implicit for `PointwiseConvergenceCLM` |
We delete all `simps` calls in the definitions of operators on `PointwiseConvergenceCLM` and replace them with `apply_apply` lemmas that do not abuse the defeq between `SLₚₜ` and `SL`. This made the linter discover some typeclass duplications, which we remove by restructuring the file.
As a consequence of the new `simp` lemmas, we can remove all `set_option backward.isDefEq.respectTransparency false in` in `Analysis.Distribution.TemperedDistribution`.
Moreover, we make several arguments implicit, which can be inferred in almost all practical situations.
---
[](https://gitpod.io/from-referrer/)
|
|
86/65 |
Mathlib/Analysis/Distribution/TemperedDistribution.lean,Mathlib/Topology/Algebra/Module/PointwiseConvergence.lean |
2 |
1 |
['github-actions'] |
nobody |
2-36805 2 days ago |
2-38233 2 days ago |
2-38226 2 days |
| 33392 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/Transvection/Generation): non-exceptional case in Dieudonné's theorem |
We prove the theorem of [Dieudonné-1955][J. Dieudonné, “Sur les générateurs
des groupes classiques”].
Let `K` be a division ring and `V` be a `K`-module.
* `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_eq_one`:
If `e.fixedReduce = 1`, then `e` can be written as the product
of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections
and one dilatransvection.
This is the first part of the non-exceptional case in Dieudonné's theorem.
(This statement is not interesting when `e = 1`.)
* `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_ne_smul_id`:
If `e.fixedReduce` is not a homothety, then `e` can be written as the product
of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections and one dilatransvection.
This is the second part of the non-exceptional case in Dieudonné's theorem.
* `LinearEquiv.IsExceptional`:
A linear equivalence `e : V ≃ₗ[K] V` is exceptional if `1 < finrank K (V ⧸ e.fixedSubmodule)`
and if `e.fixedReduce` is a nontrivial homothety.
* `LinearEquiv.mem_dilatransvections_pow_of_notIsExceptional`:
This is the non-exceptional case in Dieudonné's theorem,
as a combination of the two preceding statements.
---
- [x] depends on: #33348
- [x] depends on: #33282
- [x] depends on: #33347
- [ ] depends on: #33387
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
574/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean |
6 |
9 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
2-32037 2 days ago |
8-20483 8 days ago |
8-31894 8 days |
| 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
|
73/26 |
Cache/IO.lean,Cache/Requests.lean |
2 |
4 |
['github-actions', 'joneugster', 'kim-em'] |
joneugster assignee:joneugster |
2-28097 2 days ago |
2-28421 2 days ago |
21-66533 21 days |
| 37518 |
sgouezel author:sgouezel |
chore: fix instances in SetSemiring |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
24/19 |
Mathlib/Data/Set/Semiring.lean |
1 |
1 |
['github-actions'] |
nobody |
2-27321 2 days ago |
2-27377 2 days ago |
2-29340 2 days |
| 35329 |
BryceT233 author:BryceT233 |
feat(Data/Finsupp): add computational lemmas for cons and single |
This PR introduces `cons_injective2`, `cons_eq_single_zero_iff` and `cons_eq_single_succ_iff`, which are helper lemmas designed to facilitate calculations (or simplification) of equalities involving `Finsupp.cons` and `Finsupp.single`.
Co-authored-by: Wenrong Zou <141128015+WenrongZou@users.noreply.github.com>
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
24/8 |
Mathlib/Data/Finsupp/Fin.lean |
1 |
6 |
['BryceT233', 'WenrongZou', 'github-actions'] |
joneugster assignee:joneugster |
2-23931 2 days ago |
2-48162 2 days ago |
48-19570 48 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'] |
nobody |
2-22052 2 days ago |
2-60739 2 days ago |
2-60732 2 days |
| 36439 |
xgenereux author:xgenereux |
feat(Algebra/Adjoin): CoeT instances for Algebra.adjoin on singletons |
Is it a common occurrence that I need to consider an element `x` or some polynomial evaluated in `x`, `p.eval x` as an element of `Algebra.adjoin R {x}`.
This makes it so that we can write
- `(x : adjoin R {x})` instead of `⟨x, self_mem_adjoin_singleton A x⟩`
- `(p.eval x : adjoin R {x})` instead of `⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩`
This is particularly useful when we need to write the type anyways, so that we need not to write `(⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩ : adjoin R {x})` anymore.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
9/3 |
Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
2-20723 2 days ago |
7-59804 7 days ago |
25-900 25 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.
---
According to the docstring, the purpose of `Mathlib.Algebra.Field.Power`
is to define `Field` with minimal imports. But after this PR, Power.lean
does not rely on `Mathlib.Algebra.Field.Defs` any more. Arguably, it
could be deprecated. The two results in the file could be stated in
`Mathlib.Algebra.Ring.Int.Parity` without any extra imports. Should we implement
this in the current or an additional PR?
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$ |
16/10 |
Mathlib/Algebra/Field/Power.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean |
2 |
6 |
['eric-wieser', 'github-actions', 'goliath-klein'] |
nobody |
2-19980 2 days ago |
6-70709 6 days ago |
6-73501 6 days |
| 34854 |
GrigorenkoPV author:GrigorenkoPV |
chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` |
---
Split off from #34853
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
227/194 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/Combinatorics/Enumerative/Catalan/Basic.lean,Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean |
6 |
5 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
2-19970 2 days ago |
17-80761 17 days ago |
37-70653 37 days |
| 36833 |
harahu author:harahu |
doc: demote repeated H1 headers |
Having more than one H1 header per file confuses search engines and thus makes documentation more difficult to find. Hence, we make sure that lean files only have a single H1 header in them.
In the case of `Mathlib/Tactic/Common.lean`, we achieve this by adding a new module header.
---
[](https://gitpod.io/from-referrer/)
|
documentation |
12/10 |
Archive/Imo/Imo2002Q3.lean,Archive/Imo/Imo2010Q5.lean,Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/RingTheory/LocalProperties/Injective.lean,Mathlib/RingTheory/LocalProperties/ProjectiveDimension.lean,Mathlib/RingTheory/QuasiFinite/Weakly.lean,Mathlib/Tactic/Common.lean,Mathlib/Tactic/Linter/EmptyLine.lean |
9 |
2 |
['github-actions', 'harahu', 'vihdzp'] |
nobody |
2-19713 2 days ago |
16-59308 16 days ago |
16-59705 16 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 |
2-18792 2 days ago |
2-18828 2 days ago |
2-47342 2 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 |
2 |
['YaelDillies', 'github-actions', 'ooovi', 'vihdzp'] |
nobody |
2-18727 2 days ago |
4-18346 4 days ago |
4-18476 4 days |
| 37515 |
chrisflav author:chrisflav |
feat(Topology): a coinducing map with connected fibers induces a homeomorphism on connected components |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
53/0 |
Mathlib/Topology/Connected/TotallyDisconnected.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,Mathlib/Topology/Maps/Basic.lean |
3 |
11 |
['chrisflav', 'github-actions', 'grunweg', 'scholzhannah'] |
j-loreaux assignee:j-loreaux |
2-18377 2 days ago |
2-6328 2 days ago |
2-54650 2 days |
| 37514 |
chrisflav author:chrisflav |
chore(Topology/Connected): generalize `preimage_connectedComponent_connected` to closed connected sets |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
33/24 |
Mathlib/Topology/Connected/Clopen.lean |
1 |
3 |
['github-actions', 'scholzhannah'] |
j-loreaux assignee:j-loreaux |
2-18288 2 days ago |
2-18333 2 days ago |
2-63996 2 days |
| 37532 |
justus-springer author:justus-springer |
feat(Algebra/Category/ModuleCat/Sheaf): `isQuasicoherent` and `isFinitePresentation` are closed under isomorphisms |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
38/2 |
Mathlib/Algebra/Category/ModuleCat/Sheaf/Generators.lean,Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean |
2 |
1 |
['github-actions'] |
nobody |
2-16514 2 days ago |
2-16590 2 days ago |
2-16583 2 days |
| 37503 |
Vierkantor author:Vierkantor |
chore(*): remove comments mentioning obsolete note `[nolint_ge]` |
In Lean 3 times we used to have a `ge_or_gt` linter which complained if theorem statements contained `≥` or `>`, and it would be silenced with a reference to the library note `[nolint_ge]`. But the linter and its note never got ported, so the references are irrelevant and we should drop them.
---
[](https://gitpod.io/from-referrer/)
|
t-linter
tech debt
|
1/6 |
Mathlib/Algebra/Order/CauSeq/Basic.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Filter/AtTopBot/Finite.lean,Mathlib/Topology/EMetricSpace/Basic.lean,Mathlib/Topology/MetricSpace/Cauchy.lean |
5 |
4 |
['Vierkantor', 'github-actions', 'grunweg'] |
nobody |
2-15272 2 days ago |
2-82584 2 days ago |
2-82577 2 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'] |
nobody |
2-14388 2 days ago |
2-14458 2 days ago |
2-14451 2 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/)
|
|
183/0 |
Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean,Mathlib/Data/ENat/Basic.lean |
4 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
2-8045 2 days ago |
2-8047 2 days ago |
6-14576 6 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.
---
- [ ] depends on: #36817
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
227/0 |
Mathlib.lean,Mathlib/Algebra/Order/Monoid/WithTop.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/Regular/ProjectiveDimension.lean |
4 |
29 |
['Thmoas-Guan', 'erdOne', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
2-7891 2 days ago |
2-7893 2 days ago |
2-31372 2 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 |
3 |
['artie2000', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
2-6927 2 days ago |
2-6951 2 days ago |
17-65163 17 days |
| 37541 |
EtienneC30 author:EtienneC30 |
feat: another version of the cardinality of the difference |
In mathlib there is `Set.ncard_diff` which states that `(t \ s).ncard = t.ncard - s.ncard` when `s ⊆ t` and `s` is finite. But one way to prove that `s` is finite is by showing that `t` is finite and using the `s ⊆ t` hypothesis, so this PR adds `Set.ncard_diff'` which assumes that `t` is finite instead of `s`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
5/0 |
Mathlib/Data/Set/Card.lean |
1 |
1 |
['github-actions'] |
nobody |
2-2949 2 days ago |
2-3020 2 days ago |
2-3013 2 days |
| 37464 |
martinwintermath author:martinwintermath |
feat(Geometry/Convex/Cone): Minor additions to pointed cones |
Minor additions to pointed cones:
* `PointedCone.ofSubmodule_le_ofSubmodule` and `PointedCone.ofSubmodule_lt_ofSubmodule`
* `PointedCone.hull_le_span` as a short form of `Submodule.span_le_restrictScalars R≥0 R s`
* `PointedCone.neg_ofSubmodule` proving `-(ofSubmodule S) = S`
In preparation for #36605.
Co-authored by: Artie Khovanov
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry |
28/12 |
Mathlib/Geometry/Convex/Cone/Pointed.lean |
1 |
10 |
['artie2000', 'github-actions', 'martinwintermath', 'ooovi'] |
nobody |
2-2522 2 days ago |
2-2560 2 days ago |
2-41040 2 days |
| 37484 |
martinwintermath author:martinwintermath |
feat(RingTheory/Finiteness): Improve `fg_induction` |
- rename `fg_induction` to `fg_induction'`
- include the FG-hypothesis into motive for `fg_induction'`. This is necessary, since it might be that `P (M₁ ⊔ M₂)` is only provable from `P M₁`and `P M₂` if we can use that `M₁` and `M₂` are FG. Also, `M₁.FG` and `M₂.FG` are not provable from `(M₁ ⊔ M₂).FG` in general.
- add new `fg_induction` variant that adds one 1-dimensional submodule at a time.
- give expressive names to the induction start and induction step hypotheses.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
46/34 |
Mathlib/RingTheory/Bezout.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Finiteness/Ideal.lean,Mathlib/RingTheory/Flat/EquationalCriterion.lean |
4 |
2 |
['github-actions', 'vihdzp'] |
nobody |
2-2305 2 days ago |
3-11630 3 days ago |
3-11623 3 days |
| 37086 |
tb65536 author:tb65536 |
chore(GroupTheory/Sylow): remove explicit type ascriptions `(P : Subgroup G)` |
PR #36852 generalized `normalizer` to subsets of `G` (like we do for centralizer), but introduced a few explicit type ascriptions `(P : Subgroup)` into `Sylow.lean` (to force the coercion to `Set` to go through `Subgroup`). This PR removes those.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
62/45 |
Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/GroupTheory/SpecificGroups/ZGroup.lean,Mathlib/GroupTheory/Sylow.lean,Mathlib/GroupTheory/Transfer.lean |
4 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
riccardobrasca assignee:riccardobrasca |
2-1668 2 days ago |
2-1668 2 days ago |
9-1639 9 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.
---
- [ ] depends on: #35072
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-data
t-meta
|
161/0 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean |
1 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
2-1268 2 days ago |
2-3930 2 days ago |
2-4255 2 days |
| 37298 |
artie2000 author:artie2000 |
refactor(Algebra/Order): unbundle group and ring cone |
* Unbundle `GroupCone` and `RingCone` using `Submonoid.IsMulPointed`
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
136/31 |
Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Ring/Cone.lean |
2 |
2 |
['artie2000', 'github-actions'] |
nobody |
1-84136 1 day ago |
5-74251 5 days ago |
5-74799 5 days |
| 30900 |
vihdzp author:vihdzp |
feat: run-length encoding |
---
- [x] depends on: #30898
Moved from #17105.
[](https://gitpod.io/from-referrer/)
|
t-data |
168/0 |
Mathlib.lean,Mathlib/Data/List/RunLength.lean,Mathlib/Data/List/SplitBy.lean |
3 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'plp127'] |
pechersky assignee:pechersky |
1-78315 1 day ago |
1-78372 1 day ago |
44-21629 44 days |
| 37545 |
vihdzp author:vihdzp |
feat: ℵ_ univ = univ |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
64/4 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean |
3 |
4 |
['github-actions', 'plp127', 'vihdzp'] |
nobody |
1-78181 1 day ago |
1-85116 1 day ago |
1-85152 1 day |
| 36867 |
ADedecker author:ADedecker |
feat: line derivative of distributions |
---
- [ ] depends on: #36866
[](https://gitpod.io/from-referrer/)
|
t-analysis |
68/2 |
Mathlib/Analysis/Distribution/Distribution.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
j-loreaux assignee:j-loreaux |
1-76856 1 day ago |
3-18320 3 days ago |
3-19996 3 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'] |
nobody |
1-73842 1 day ago |
3-83934 3 days ago |
3-83927 3 days |
| 37565 |
pitmonticone author:pitmonticone |
feat(Data/ENNReal): add `ofReal_inv_le` and `ofReal_div_le` |
Add inequality versions of `ofReal_inv_of_pos` and `ofReal_div_of_pos` that don't require positivity:
- `ofReal_inv_le`: `ENNReal.ofReal x⁻¹ ≤ (ENNReal.ofReal x)⁻¹`
- `ofReal_div_le`: `ENNReal.ofReal (x / y) ≤ ENNReal.ofReal x / ENNReal.ofReal y`
Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project.
Co-authored-by: Jeremy Tan Jie Rui
--- |
carleson
t-data
easy
|
11/0 |
Mathlib/Data/ENNReal/Inv.lean |
1 |
1 |
['github-actions'] |
nobody |
1-69533 1 day ago |
1-69605 1 day ago |
1-69598 1 day |
| 37369 |
joelriou author:joelriou |
feat(Algebra/Category/ModuleCat/Presheaf): the colimit module of a presheaf of modules on a cofiltered category |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
254/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/ColimitFunctor.lean,Mathlib/CategoryTheory/Filtered/FinallySmall.lean |
3 |
4 |
['dagurtomas', 'erdOne', 'github-actions', 'joelriou'] |
dagurtomas assignee:dagurtomas |
1-69289 1 day ago |
5-2353 5 days ago |
5-2346 5 days |
| 36494 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(GroupTheory/IndexNSmul): add results on multiplication-by-n in AddCommGroups |
This PR adds a new file (to be able to have the required imports) that contains some results related to the (relative) index of subgroups in commutative additive groups and the multiplication-by-`n` map.
They will be useful in proving the Northcott property for heights on number fields.
---
- [x] depends on: #36458 [some API lemmas for powMonoidHom]
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
92/0 |
Mathlib.lean,Mathlib/GroupTheory/IndexNSmul.lean |
2 |
9 |
['MichaelStollBayreuth', 'artie2000', 'dagurtomas', 'github-actions', 'mathlib-dependent-issues'] |
dagurtomas assignee:dagurtomas |
1-61850 1 day ago |
1-61850 1 day ago |
8-67530 8 days |
| 37573 |
vihdzp author:vihdzp |
feat: supremum of `≤ c` ordinals of cardinal `≤ c` has cardinal `≤ c` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
47/14 |
Mathlib/SetTheory/Cardinal/Ordinal.lean |
1 |
1 |
['github-actions'] |
nobody |
1-60232 1 day ago |
1-60929 1 day ago |
1-60922 1 day |
| 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 |
1-58845 1 day ago |
1-58914 1 day ago |
1-58907 1 day |
| 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 |
1-57484 1 day ago |
1-57560 1 day ago |
1-57553 1 day |
| 37008 |
BryceT233 author:BryceT233 |
feat(Algebra/Ring): introduce `pullback` for `RingHom` and `AlgHom` |
This PR introduces `pullback` for `RingHom` and `AlgHom` and adds `IsLocalHom`, `IsLocalRing` lemmas related to them.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
160/0 |
Mathlib/Algebra/Algebra/Subalgebra/Prod.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/RingTheory/LocalRing/LocalSubring.lean |
3 |
5 |
['BryceT233', 'github-actions', 'wwylele'] |
mattrobball assignee:mattrobball |
1-53156 1 day ago |
2-9291 2 days ago |
12-24510 12 days |
| 31135 |
kckennylau author:kckennylau |
feat(RingTheory): is localization iff is localization on saturation |
In this PR we show that `A` is a localization of `R` on the submonoid `S` iff it is so on the saturation of `S`.
Crucially, the saturation of `S` is precisely the elements that become a unit in `A`.
---
- [x] depends on: #31132
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
53/0 |
Mathlib.lean,Mathlib/RingTheory/Localization/Saturation.lean |
2 |
11 |
['alreadydone', 'chrisflav', 'github-actions', 'kckennylau', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
chrisflav assignee:chrisflav |
1-47509 1 day ago |
29-80606 29 days ago |
29-82485 29 days |
| 35518 |
kim-em author:kim-em |
chore: forbid prime (') in filenames, rename LinearCombination' |
This PR renames `Mathlib/Tactic/LinearCombination'.lean` to `LinearCombinationPrime.lean` (and the corresponding test file), and adds a lint check to `modulesOSForbidden` to prevent future files with prime/apostrophe characters in their names.
The `'` character in filenames causes shell escaping issues in scripts (any `find ... -name '*.lean'` or similar pattern needs careful quoting to handle these files correctly).
🤖 Prepared with Claude Code |
file-removed
t-meta
LLM-generated
|
13/8 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/LinearCombinationPrime.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,MathlibTest/linear_combination_prime.lean |
6 |
7 |
['eric-wieser', 'euprunin', 'github-actions', 'kim-em', 'mathlib-merge-conflicts'] |
dwrensha assignee:dwrensha |
1-47506 1 day ago |
2-29358 2 days ago |
24-40790 24 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 |
1-47502 1 day ago |
16-85394 16 days ago |
16-85395 16 days |
| 36965 |
vihdzp author:vihdzp |
chore(SetTheory/Cardinal): tweak `succ` lemmas |
We leave the `SuccOrder` instance unexposed. It doesn't have any particularly good def-eqs, it's simply defined as the infimum of all larger cardinals. We also golf some surrounding theorems.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
49/41 |
Mathlib/LinearAlgebra/Dimension/Basic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
4 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
1-47498 1 day ago |
8-18437 8 days ago |
13-27335 13 days |
| 37535 |
grunweg author:grunweg |
chore(FiberBundle/Trivialisation): tag with grind |
I am unsure if all of these are good grind lemmas; close examination is welcome. I left XXX comments with my questions; there are about 3 different questions repeating a few times.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
46/24 |
Mathlib/Topology/FiberBundle/Trivialization.lean |
1 |
3 |
['chenson2018', 'github-actions', 'grunweg'] |
urkud assignee:urkud |
1-47494 1 day ago |
2-8003 2 days ago |
2-8164 2 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 |
1-47494 1 day ago |
2-8294 2 days ago |
2-8287 2 days |
| 37547 |
pitmonticone author:pitmonticone |
feat(MeasureTheory/LpSeminorm): add `rpow_add_le_mul_rpow_add_rpow'` variants |
Add two variants of `ENNReal.rpow_add_le_mul_rpow_add_rpow` using `LpAddConst` as the constant, valid for all `0 ≤ p` (not just `1 ≤ p`).
Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project.
Co-authored-by: Leo Diedering <129694072+ldiedering@users.noreply.github.com>
--- |
carleson
easy
t-measure-probability
|
36/0 |
Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean |
1 |
1 |
['github-actions'] |
kex-y assignee:kex-y |
1-47490 1 day ago |
1-83411 1 day ago |
1-83404 1 day |
| 37559 |
pitmonticone author:pitmonticone |
feat(MeasureTheory/LpSeminorm): add `HasCompactSupport.memLp_of_enorm_bound` |
Add `HasCompactSupport.memLp_of_enorm_bound`: a bounded measurable function with compact support is in L^p. This is the `ENNReal`-valued version of `HasCompactSupport.memLp_of_bound`.
Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project.
Co-authored-by: Floris van Doorn
--- |
carleson
easy
t-measure-probability
|
19/0 |
Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean |
1 |
1 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
1-47484 1 day ago |
1-73032 1 day ago |
1-73025 1 day |
| 37563 |
tb65536 author:tb65536 |
feat(NumberTheory/ArithmeticFunction/LFunction): Euler products are multiplicative |
This PR proves that Euler products of multiplicative functions are multiplicative.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
label:t-algebra$ |
17/3 |
Mathlib/NumberTheory/ArithmeticFunction/LFunction.lean |
1 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
1-47482 1 day ago |
1-70042 1 day ago |
1-70036 1 day |
| 37567 |
peabrainiac author:peabrainiac |
doc(Analysis/DifferentialForm): fix equations in docstrings |
Fix equations in the docstrings in `Mathlib.Analysis.DifferentialForm.VectorField`.
---
A lot of the equations in `Mathlib.Analysis.DifferentialForm.VectorField` contained an extra `\left(` preventing them from getting rendered in the documentation; see [here](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Calculus/DifferentialForm/VectorField.html). I've removed the extra `\left(`, adjusted the size of some of the remaining parentheses to make the equations more readable, and changed some of the shorter terms / equations to get rendered inline instead of in their own line each.
[](https://gitpod.io/from-referrer/)
|
documentation
t-analysis
|
32/34 |
Mathlib/Analysis/Calculus/DifferentialForm/VectorField.lean |
1 |
2 |
['github-actions', 'peabrainiac'] |
j-loreaux assignee:j-loreaux |
1-47481 1 day ago |
1-69369 1 day ago |
1-69362 1 day |
| 37570 |
pitmonticone author:pitmonticone |
feat(Topology/Instances/AddCircle): add Ioc analogues of lift and equiv lemmas |
Add Ioc analogues of existing AddCircle Ico lemmas:
- `liftIoc_eq_liftIco_of_ne`
- `coe_eq_coe_iff_of_mem_Ioc`
- `eq_coe_Ioc`
- `coe_equivIoc`
- `equivIoc_coe_of_mem`
Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project.
Co-authored-by: James Sundstrom
Co-authored-by: Leo Diedering <129694072+ldiedering@users.noreply.github.com>
--- |
carleson
t-topology
easy
|
32/0 |
Mathlib/Topology/Instances/AddCircle/Defs.lean |
1 |
1 |
['github-actions'] |
loefflerd assignee:loefflerd |
1-47479 1 day ago |
1-67179 1 day ago |
1-67172 1 day |
| 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
|
41/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Pigeonhole.lean |
2 |
12 |
['IvanRenison', 'cjrl', 'ghseeli', 'github-actions', 'j-loreaux'] |
nobody |
1-46637 1 day ago |
1-46637 1 day ago |
7-49052 7 days |
| 37576 |
WenrongZou author:WenrongZou |
feat(MvPowerSeries): connection between rename and subst |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
33/6 |
Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean |
2 |
3 |
['BryceT233', 'WenrongZou', 'github-actions'] |
nobody |
1-43958 1 day ago |
1-57779 1 day ago |
1-57772 1 day |
| 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 |
1-43785 1 day ago |
1-43843 1 day ago |
15-54164 15 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 |
27 |
['KryptosAI', 'eric-wieser', 'github-actions', 'vihdzp'] |
ocfnash assignee:ocfnash |
1-43785 1 day ago |
1-43843 1 day ago |
12-76910 12 days |
| 37412 |
LLaurance author:LLaurance |
chore(Analysis): shorten proofs by removing steps |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
7/18 |
Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Basic.lean,Mathlib/Analysis/Calculus/MeanValue.lean,Mathlib/Analysis/ODE/PicardLindelof.lean |
4 |
7 |
['LLaurance', 'github-actions', 'j-loreaux', 'themathqueen'] |
nobody |
1-41102 1 day ago |
1-41102 1 day ago |
2-7794 2 days |
| 35197 |
j-loreaux author:j-loreaux |
feat: Hölder framework for `lp` spaces |
---
- [ ] depends on: #35152
- [ ] depends on: #35198
[](https://gitpod.io/from-referrer/)
|
t-analysis |
315/9 |
Mathlib.lean,Mathlib/Analysis/Normed/Lp/LpEquiv.lean,Mathlib/Analysis/Normed/Lp/lpHolder.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Operator/Basic.lean,Mathlib/Tactic/Linter/TextBased.lean |
6 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-28474 1 day ago |
1-62606 1 day ago |
1-62883 1 day |
| 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 |
173/0 |
Mathlib.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangeRightExact.lean |
4 |
17 |
['Thmoas-Guan', 'chrisflav', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'urkud'] |
mariainesdff assignee:mariainesdff |
1-21259 1 day ago |
1-21301 1 day ago |
24-86240 24 days |
| 31046 |
Thmoas-Guan author:Thmoas-Guan |
feat(Homology) : compatibility of map between `Ext` |
In this PR, we proved the compatibility of map between `Ext` induced by exact functor with
1: `mk_0` 2: `comp` 3: `extClass`
---
- [x] depends on: #31707
[](https://gitpod.io/from-referrer/) |
t-category-theory |
232/8 |
Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean |
5 |
43 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] |
eric-wieser assignee:eric-wieser |
1-20906 1 day ago |
8-42901 8 days ago |
48-21635 48 days |
| 37462 |
grunweg author:grunweg |
chore: golf using gcongr |
Auditing occurrences of `mul_le_mul_of_nonneg_{left,right}` and `rpow_le_rpow` (not exhaustive).
---
[](https://gitpod.io/from-referrer/)
|
|
148/128 |
Archive/Imo/Imo1988Q6.lean,Mathlib/Algebra/Module/ZLattice/Summable.lean,Mathlib/Algebra/Order/BigOperators/Ring/Multiset.lean,Mathlib/Algebra/Order/Chebyshev.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Basic.lean,Mathlib/Algebra/Order/Ring/Basic.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Polynomial/Degree/Lemmas.lean,Mathlib/Algebra/Polynomial/Expand.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/BoxIntegral/DivergenceTheorem.lean,Mathlib/Analysis/Calculus/Deriv/Slope.lean,Mathlib/Analysis/Calculus/InverseFunctionTheorem/ApproximatesLinearOn.lean,Mathlib/Analysis/Calculus/ParametricIntegral.lean,Mathlib/Analysis/Complex/AbelLimit.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/PhragmenLindelof.lean,Mathlib/Analysis/Convex/Body.lean,Mathlib/Analysis/Convex/Cone/Extension.lean,Mathlib/Analysis/Convolution.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/InnerProductSpace/Adjoint.lean,Mathlib/Analysis/InnerProductSpace/LinearMap.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/MellinTransform.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Module/HahnBanach.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Analysis/Normed/Operator/BoundedLinearMaps.lean,Mathlib/Analysis/Normed/Operator/Extend.lean,Mathlib/Analysis/Normed/Unbundled/SeminormFromConst.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Extremal.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/Combinatorics/SetFamily/FourFunctions.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/MeasureTheory/Covering/BesicovitchVectorSpace.lean,Mathlib/MeasureTheory/Covering/DensityTheorem.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Monotonicity.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/MeasureTheory/Integral/CircleIntegral.lean,Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean,Mathlib/MeasureTheory/Measure/Hausdorff.lean,Mathlib/NumberTheory/NumberField/House.lean,Mathlib/Probability/Moments/CovarianceBilinDual.lean,Mathlib/Probability/Moments/IntegrableExpMul.lean |
56 |
4 |
['github-actions', 'grunweg', 'leanprover-radar'] |
nobody |
1-17531 1 day ago |
1-18398 1 day ago |
3-17306 3 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-17043 1 day ago |
1-17066 1 day ago |
15-887 15 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 |
1-16999 1 day ago |
1-17046 1 day ago |
59-506 59 days |
| 37451 |
mathlib-splicebot author:mathlib-splicebot |
chore(Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean): automated extraction |
This PR was automatically created from PR #37449 by @dagurtomas via a [review comment](https://github.com/leanprover-community/mathlib4/pull/37449#discussion_r3017307958) by @dagurtomas. |
t-category-theory
maintainer-merge
|
21/0 |
Mathlib/CategoryTheory/EffectiveEpi/Preserves.lean |
1 |
4 |
['erdOne', 'github-actions', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-16978 1 day ago |
3-74482 3 days ago |
3-74475 3 days |
| 37057 |
erdOne author:erdOne |
feat(AlgebraicTopology): `SimplexCategory.toTop_map_δ_apply` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
maintainer-merge
|
49/2 |
Mathlib/AlgebraicTopology/CechNerve.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Defs.lean,Mathlib/AlgebraicTopology/TopologicalSimplex.lean,Mathlib/Data/Fin/SuccPred.lean |
5 |
9 |
['Raph-DG', 'dagurtomas', 'erdOne', 'github-actions', 'joelriou', 'mathlib-merge-conflicts'] |
robin-carlier assignee:robin-carlier |
1-16543 1 day ago |
1-16594 1 day ago |
2-44674 2 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
|
32/2 |
Mathlib/Tactic/Linter/DocString.lean |
1 |
1 |
['github-actions'] |
nobody |
1-15674 1 day ago |
1-15740 1 day ago |
1-15733 1 day |
| 31560 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Topology/Sion): the minimax theorem of von Neumann - Sion |
Prove `Sion.exists_isSaddlePointOn` :
Let X and Y be convex subsets of topological vector spaces E and F,
X being moreover compact,
and let f : X × Y → ℝ be a function such that
- for all x, f(x, ⬝) is upper semicontinuous and quasiconcave
- for all y, f(⬝, y) is lower semicontinuous and quasiconvex
Then inf_x sup_y f(x,y) = sup_y inf_x f(x,y).
The classical case of the theorem assumes that f is continuous,
f(x, ⬝) is concave, f(⬝, y) is convex.
As a particular case, one get the von Neumann theorem where
f is bilinear and E, F are finite dimensional.
We follow the proof of Komiya (1988).
## Remark on implementation
* The essential part of the proof holds for a function
`f : X → Y → β`, where `β` is a complete dense linear order.
* We have written part of it for just a dense linear order,
* On the other hand, if the theorem holds for such `β`,
it must hold for any linear order, for the reason that
any linear order embeds into a complete dense linear order.
Although the Dedekind McNeille completion (docs#DedekindCut) furnishes a complete lattice,
it is not dense in general, so that this result does not seem to be known to Mathlib yet.
* When `β` is `ℝ`, one can use `Real.toEReal` and one gets a proof for `ℝ`.
## TODO
Give particular important cases (eg, bilinear maps in finite dimension).
Co-authored with @ADedecker
---
- [x] depends on: #31548
- [x] depends on: #31547
- [x] depends on: #31558
[](https://gitpod.io/from-referrer/)
|
t-topology |
639/0 |
Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Topology/NhdsWithin.lean,Mathlib/Topology/Semicontinuity/Basic.lean,Mathlib/Topology/Sion.lean,docs/references.bib |
6 |
44 |
['AntoineChambert-Loir', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'thorimur'] |
dwrensha, j-loreaux, kmill assignee:kmill assignee:dwrensha assignee:j-loreaux |
1-15546 1 day ago |
1-15702 1 day ago |
107-7923 107 days |
| 37334 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet): evaluation on subcomplexes |
In this PR, given a simplicial set `X` and `j : SimplexCategoryᵒᵖ`, we define a functor `evaluation X j : X.Subcomplex ⥤ Set (X.obj j)`, and use it to show that the functor `Subcomplex.toSSetFunctor` which sends a subcomplex of `X` to the corresponding simplicial set preserves filtered colimits.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
maintainer-merge
|
71/0 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/SubcomplexEvaluation.lean |
3 |
5 |
['FernandoChu', 'github-actions', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-12251 1 day ago |
1-18396 1 day ago |
6-14253 6 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 |
2 |
['Rida-Hamadani', 'github-actions'] |
nobody |
1-10972 1 day ago |
2-81177 2 days ago |
2-81170 2 days |
| 37332 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet): more on nondegenerate simplices of the standard simplex |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
maintainer-merge
|
144/0 |
Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/Data/Finset/BooleanAlgebra.lean,Mathlib/Order/Fin/Basic.lean |
4 |
15 |
['FernandoChu', 'github-actions', 'joelriou', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-7755 1 day ago |
1-13390 1 day ago |
6-19263 6 days |
| 35405 |
xroblot author:xroblot |
feat(RamificationInertia): add `ramificationIdx_le_ramificationIdx` and `inertiaDeg_le_inertiaDeg` |
Assume that `Q` is over `P` that is over `p`. We prove that:
- `Ideal.ramificationIdx P Q ≤ Ideal.ramificationIdx p Q`
- `Ideal.inertiaDeg P Q ≤ Ideal.inertiaDeg p Q`
Note: These results also follow from [Ideal.ramificationIdx_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.ramificationIdx_algebra_tower) and [Ideal.inertiaDeg_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.inertiaDeg_algebra_tower) but they are proved here in a slightly more general situation.
---
- [x] depends on: #35483
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
24/0 |
Mathlib/NumberTheory/RamificationInertia/Inertia.lean,Mathlib/NumberTheory/RamificationInertia/Ramification.lean |
2 |
9 |
['Multramate', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'xroblot'] |
MichaelStollBayreuth and alexjbest assignee:alexjbest assignee:MichaelStollBayreuth |
1-7410 1 day ago |
1-7410 1 day ago |
44-84392 44 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`.
* `TopologicalSpace.IsClosedSubbasis s`: Given a topological space `α`, `s : Set (Set α)` is a closed subbasis if the topology on `α` equals `generateFrom { uᶜ | u ∈ s }`.
---
[](https://gitpod.io/from-referrer/) |
t-topology |
117/0 |
Mathlib.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/ClosedBases.lean |
3 |
18 |
['github-actions', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
1-6706 1 day ago |
1-6706 1 day ago |
11-68700 11 days |
| 37564 |
Garmelon author:Garmelon |
chore: bump toolchain to v4.30.0-rc1 |
---
[](https://gitpod.io/from-referrer/)
|
|
706/488 |
Archive/Imo/Imo2024Q5.lean,Cache/IO.lean,Cache/Main.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/FiniteSupport/Basic.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Homology/HomotopyCategory/MappingCocone.lean,Mathlib/Algebra/Homology/SpectralObject/Page.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/Lie/Classical.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/AlgebraicTopology/DoldKan/Faces.lean,Mathlib/AlgebraicTopology/DoldKan/Homotopies.lean,Mathlib/AlgebraicTopology/Quasicategory/StrictSegal.lean,Mathlib/AlgebraicTopology/SimplexCategory/ToMkOne.lean,Mathlib/Analysis/AbsoluteValue/Equivalence.lean,Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean,Mathlib/Analysis/Calculus/BumpFunction/FiniteDimension.lean,Mathlib/Analysis/Calculus/FDeriv/Mul.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Complex/UpperHalfPlane/ProperAction.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Fourier/BoundedContinuousFunctionChar.lean,Mathlib/Analysis/Normed/Affine/Simplex.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/CategoryTheory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Adjunction/CompositionIso.lean,Mathlib/CategoryTheory/Adjunction/FullyFaithful.lean,Mathlib/CategoryTheory/Adjunction/Limits.lean,Mathlib/CategoryTheory/Adjunction/Mates.lean,Mathlib/CategoryTheory/Adjunction/Opposites.lean,Mathlib/CategoryTheory/Adjunction/Parametrized.lean,Mathlib/CategoryTheory/Adjunction/Triple.lean,Mathlib/CategoryTheory/Adjunction/Unique.lean,Mathlib/CategoryTheory/Adjunction/Whiskering.lean,Mathlib/CategoryTheory/Category/Pairwise.lean,Mathlib/CategoryTheory/ConcreteCategory/Basic.lean,Mathlib/CategoryTheory/Functor/Category.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/PullbackObjObj.lean,Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean,Mathlib/CategoryTheory/Limits/Shapes/WidePullbacks.lean,Mathlib/CategoryTheory/Monoidal/Bimod.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/FunctorCategory.lean,Mathlib/CategoryTheory/Monoidal/Closed/Functor.lean,Mathlib/CategoryTheory/Monoidal/CommGrp_.lean,Mathlib/CategoryTheory/Monoidal/CommMon_.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean,Mathlib/CategoryTheory/Monoidal/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Mon_.lean,Mathlib/CategoryTheory/Sites/Coherent/RegularSheaves.lean,Mathlib/CategoryTheory/Sites/Coverage.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean,Mathlib/Combinatorics/Matroid/Closure.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/Computability/Partrec.lean,Mathlib/Data/DFinsupp/Defs.lean,Mathlib/Data/Fin/VecNotation.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Destutter.lean,Mathlib/Data/List/Duplicate.lean,Mathlib/Data/List/Forall2.lean,Mathlib/Data/List/NodupEquivFin.lean,Mathlib/Data/List/OfFn.lean,Mathlib/Data/List/Permutation.lean,Mathlib/Data/List/Sigma.lean,Mathlib/Data/List/Sort.lean,Mathlib/Data/List/SplitOn.lean,Mathlib/Data/List/Sublists.lean,Mathlib/Data/List/Sym.lean,Mathlib/Data/Matrix/Reflection.lean,Mathlib/Data/Nat/Bits.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/Data/String/Basic.lean,Mathlib/Geometry/Euclidean/Circumcenter.lean,Mathlib/Geometry/Euclidean/Sphere/Power.lean,Mathlib/GroupTheory/CommutingProbability.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean,Mathlib/GroupTheory/HNNExtension.lean,Mathlib/GroupTheory/SpecificGroups/Quaternion.lean,Mathlib/Lean/Expr/Basic.lean,Mathlib/Lean/MessageData/Trace.lean,Mathlib/LinearAlgebra/FreeModule/Norm.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean,Mathlib/LinearAlgebra/RootSystem/Basic.lean,Mathlib/MeasureTheory/Constructions/Cylinders.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/AbsolutelyContinuousFun.lean,Mathlib/MeasureTheory/Measure/AddContent.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/Interval/Lex.lean,Mathlib/Order/OmegaCompletePartialOrder.lean |
159 |
20 |
['Garmelon', 'JovanGerb', 'Rob23oba', 'github-actions', 'kim-em', 'sgouezel'] |
nobody |
1-6598 1 day ago |
1-29983 1 day ago |
1-58833 1 day |
| 36991 |
Jun2M author:Jun2M |
feat(Order/Partition): add `Rel`, relation induced by partition on Set |
**Main changes:**
* **Set partition API**: Adds a `Set` section with various useful lemmas for working with partitions of sets.
* **Induced relation**: Defines `Partition.Rel`, a transitive and symmetric binary relation (partial equivalence relation) induced by a partition of a set.
Co-authored-by: Peter Nelson
---
- [x] depends on: #36574
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
103/0 |
Mathlib/Order/Partition/Basic.lean |
1 |
5 |
['YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-6018 1 day ago |
2-64969 2 days ago |
2-81768 2 days |
| 36951 |
mbkybky author:mbkybky |
feat(Algebra/Module): define stably free modules |
We define stably free modules: a module `M` over a commutative ring `R` is called stably free if there exists a finite free module `N` over `R` such that `M ⊕ N` is free.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
67/0 |
Mathlib.lean,Mathlib/Algebra/Module/StablyFree/Basic.lean |
2 |
3 |
['dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
1-5661 1 day ago |
1-5661 1 day ago |
13-39929 13 days |
| 35675 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory/Smooth): some lemmas about formally smooth |
This PR mainly formalized the result [[Stacks 031L](https://stacks.math.columbia.edu/tag/031L)]
This is a preliminary of Cohen Structure Theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
290/0 |
Mathlib.lean,Mathlib/RingTheory/Smooth/Quotient.lean,Mathlib/RingTheory/TensorProduct/Quotient.lean |
3 |
29 |
['Thmoas-Guan', 'github-actions', 'jcommelin', 'riccardobrasca'] |
erdOne, mattrobball, riccardobrasca assignee:riccardobrasca assignee:erdOne assignee:mattrobball |
1-4844 1 day ago |
1-84861 1 day ago |
36-76543 36 days |
| 36421 |
ROTARTSI82 author:ROTARTSI82 |
feat(RingTheory/IsAdjoinRoot): add mkOfAdjoinEqTop' |
Alternative hypothesis to existing theorem: prove the result from a `Module.Free `hypothesis instead of `IsIntegrallyClosed`. If `α` generates `S` as an algebra, then `S` is given by adjoining a root of `minpoly R α`.
---
Hello, we are the Algebraic Geometry group from the UW Math AI lab, and this is our first PR! This definition of `mkOfAdjoinEqTop'` generalizes the existing `mkOfAdjoinEqTop` and shows the result from `Module.Free` instead of `IsIntegrallyClosed`. It is used in future results that we would like to upstream at https://github.com/uw-math-ai/monogenic-extensions, which is a project to formalize lemmas 3.1 and 3.2 from https://arxiv.org/abs/2503.07846.
Co-authored-by: George Peykanu
Co-authored-by: Bryan Boehnke
Co-authored-by: Bianca Viray <67076332+b-viray@users.noreply.github.com>
-->
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-ring-theory
|
47/0 |
Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/RingTheory/IsAdjoinRoot.lean |
2 |
5 |
['ROTARTSI82', 'artie2000', 'b-viray', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
1-4765 1 day ago |
25-48966 25 days ago |
25-48959 25 days |
| 37067 |
kbuzzard author:kbuzzard |
feat: add_group tactic |
Written by Claude Code, additivising the `group` tactic, although there were some problems which needed human input.
---
[](https://gitpod.io/from-referrer/)
This is me burning Claude credits as a result of this comment [#mathlib4 > MulAut and to_additive @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/MulAut.20and.20to_additive/near/581059625) .
To my amusement, naively additivising the `group` tactic to make an `add_group` tactic does not work. The problem is that the algorithm run by `group` involves adding `← zpow_neg_one` to the simp set, which rewrites `x⁻¹` to `x ^ (-1)` for `x` in any group. Amusingly, when additivised, this becomes `-x -> -1 • x` which then immediately becomes `(-1 • 1) • x` which then becomes `((-1 • 1) • 1) • x` etc etc, as the integers are themselves an additive group. Instead, Claude found the following trick: drop `← neg_one_zsmul` and `neg_one_zsmul_add`, and use `neg_add_rev` and `neg_zero` to reduce `-(a+b)` and `-0`, use `zsmul_neg` to reduce `n • (-a)` to `(-n) • a` and then use things like `add_neg_cancel_right` and `neg_add_cancel_right` to do `-b + b` and `b + -b` together with some new `zsmul_neg_trick` lemmas to deal with `(n • b) + -b` etc. The idea is to ensure that any consecutive chains of `b`'s and `-b`'s and `z • b`'s will all get amalgamated, but we cannot change `-b` to `-1 • b` so have to try harder than in the multiplicative case.
Here is a detailed (human-written!) explanation of the difference between `Tactic/AddGroup.lean` and the additivisation of `Tactic/Group.Lean`.
1) Note that the `zpow_trick` lemmas in `Tactic/Group.lean` are additivised, so we import `Group.lean` in `AddGroup.lean` to access these additivised lemmas.
2) `Mathlib.Algebra.Group.Commutator` has no additive version (and it's not clear that it should have one), so we don't use an additive version of `commutatorElement_def` (which expands `⁅g₁, g₂⁆` to `g₁ * g₂ * g₁⁻¹ * g₂⁻¹`). Note: that means that we cannot additivise a test.
3) Line 67 of the additive file uses `neg_add_rev, neg_zero, zsmul_neg, ← neg_zsmul,` as a workaround for the looping ` ← zpow_neg_one`.
4) `Int.mul_neg, Int.neg_mul` are dropped (they don't seem to be needed, all tests are passing, ring_nf is probably doing this.)
5) `sub_eq_add_neg` is added: people use subtraction in additive groups; division doesn't seem to be covered for multiplicative groups? So `add_group` can solve `a + b - b = a` but `group` cannot solve `a * b / b = a`.
***
There is also one fewer test in the `add_group` tests, as I had to remove the commutator test.
I don't know much at all about tactic-writing, the PR is all Claude code, but a lot of it is to_additive copypasta. The review of the code above is my own. |
t-meta
LLM-generated
|
183/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/AddGroup.lean,MathlibTest/AddGroup.lean |
4 |
3 |
['github-actions', 'kbuzzard'] |
JovanGerb assignee:JovanGerb |
1-2584 1 day ago |
11-48764 11 days ago |
11-50000 11 days |
| 37571 |
harahu author:harahu |
doc(NumberTheory): 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-number-theory |
24/11 |
Mathlib/NumberTheory/EllipticDivisibilitySequence.lean,Mathlib/NumberTheory/Height/MvPolynomial.lean,Mathlib/NumberTheory/KummerDedekind.lean,Mathlib/NumberTheory/ModularForms/Discriminant.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/Transform.lean,Mathlib/NumberTheory/NumberField/FractionalIdeal.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/Inertia.lean,Mathlib/NumberTheory/RamificationInertia/Ramification.lean |
9 |
1 |
['Multramate', 'github-actions'] |
tb65536 assignee:tb65536 |
1-2376 1 day ago |
1-66413 1 day ago |
1-66406 1 day |
| 37566 |
harahu author:harahu |
doc(Order): 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-order |
15/7 |
Mathlib/Order/Circular.lean,Mathlib/Order/CompleteBooleanAlgebra.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Filter/Defs.lean,Mathlib/Order/Filter/Map.lean,Mathlib/Order/Filter/Partial.lean,Mathlib/Order/Interval/Finset/Defs.lean |
7 |
1 |
['Multramate', 'github-actions'] |
nobody |
1-2262 1 day ago |
1-69400 1 day ago |
1-69393 1 day |
| 37569 |
j-loreaux author:j-loreaux |
feat: the Fuglede–Putnam–Rosenblum theorem for C⋆-algebras |
Let `A` be a C⋆-algebra, and let `a b x : A`. The Fuglede–Putnam–Rosenblum theorem states that if `a` and `b` are normal and `x` intertwines `a` and `b` (i.e., `SemiconjBy x a b`). Then `x` also intertwines `star a` and `star b`. Fuglede's original result was for `a = b` (i.e., if `x` commutes with `a`, then `x` also commutes with `star a`), and Putnam extended it to intertwining elements. Rosenblum later gave the elementary proof formalized here using Liouville's theorem.
A version of the Fuglede–Putnam theorem also holds for unbounded operators, but it necessitates a different proof technique and holds in different generality than the one given here.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
245/12 |
Mathlib.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Units.lean,Mathlib/Analysis/CStarAlgebra/Fuglede.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/SpecialFunctions/Exponential.lean,Mathlib/Topology/Algebra/InfiniteSum/Ring.lean |
7 |
1 |
['github-actions'] |
loefflerd assignee:loefflerd |
1-2017 1 day ago |
1-65214 1 day ago |
1-67749 1 day |
| 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 |
1-1989 1 day ago |
8-51922 8 days ago |
8-57612 8 days |
| 36220 |
harahu author:harahu |
doc(misc): update two theorem names |
- https://www.wikidata.org/wiki/Q1543149 carries the name "Sokhotski–Plemelj theorem"
- While https://www.wikidata.org/wiki/Q2226807 does carry the name "Vantieghems theorem", I assume the s is intended to be possessive, since the mathematician credited with the result is called Emmanuel Vantieghem.
---
[](https://gitpod.io/from-referrer/)
|
documentation |
2/2 |
docs/1000.yaml |
1 |
7 |
['dwrensha', 'github-actions', 'harahu'] |
nobody |
1-1880 1 day ago |
29-63439 29 days ago |
29-63432 29 days |
| 37550 |
pitmonticone author:pitmonticone |
feat(Topology/Order): add `nonempty_nhds_inter_Ioi` |
Add `nonempty_nhds_inter_Ioi`: a neighborhood of `x` has nonempty intersection with `Ioi x` when `x` is not a maximum.
Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project.
Co-authored-by: Leo Diedering <129694072+ldiedering@users.noreply.github.com>
Co-authored-by: Michael Rothgang
--- |
carleson
t-topology
|
8/0 |
Mathlib/Topology/Order/DenselyOrdered.lean |
1 |
3 |
['ADedecker', 'github-actions', 'pitmonticone'] |
urkud assignee:urkud |
1-896 1 day ago |
1-951 1 day ago |
1-66053 1 day |
| 37495 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Sum): add homomorphism, embedding and isomorphism of sums |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
58/2 |
Mathlib/Combinatorics/SimpleGraph/Sum.lean |
1 |
15 |
['IvanRenison', 'YaelDillies', 'github-actions', 'mkaratarakis'] |
nobody |
1-839 1 day ago |
1-1990 1 day ago |
2-33996 2 days |
| 37393 |
SnirBroshi author:SnirBroshi |
refactor(Algebra/Order/Monoid/Unbundled/Defs): upgrade `*ReflectLE` from `abbrev`s to `class`es |
... to mitigate performance regression caused by #36629.
Currently these classes are an `abbrev` for `ContravariantClass` so when TC-search tries to synthesize them it ends up looking through all the `ContravariantClass` instances and not just the relevant ones.
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/116290-rss/topic/Significant.20commits.20to.20mathlib4/near/582661644)
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
60/56 |
Mathlib/Algebra/Order/Group/Multiset.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/OrderDual.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean |
7 |
8 |
['JovanGerb', 'SnirBroshi', 'github-actions', 'leanprover-radar', 'vihdzp'] |
nobody |
1-674 1 day ago |
1-27881 1 day ago |
4-28094 4 days |
| 37597 |
pitmonticone author:pitmonticone |
feat(Analysis/SumIntegralComparisons): add sum-integral estimates for `x^k * exp(-cx)` |
Add bounds for sums and integrals of `x^k * exp(-cx)`:
- `intervalIntegral_pow_mul_exp_neg_le`
- `sum_Ico_pow_mul_exp_neg_le`
- `sum_Iic_pow_mul_exp_neg_le`
- `sum_Iic_pow_mul_two_pow_neg_le`
Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project.
Co-authored-by: Sébastien Gouëzel
--- |
carleson
t-analysis
large-import
|
67/0 |
Mathlib/Analysis/SumIntegralComparisons.lean |
1 |
2 |
['b-mehta', 'github-actions'] |
nobody |
0-84903 23 hours ago |
1-586 1 day ago |
1-579 1 day |
| 37115 |
tb65536 author:tb65536 |
feat(RingTheory/Flat/Basic): `Submodule.toBaseChange` as a `LinearEquiv` |
If the extensions of rings is flat, then `Submodule.toBaseChange` becomes a `LinearEquiv`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
20/0 |
Mathlib/RingTheory/Flat/Basic.lean |
1 |
5 |
['github-actions', 'robin-carlier', 'tb65536'] |
nobody |
0-83914 23 hours ago |
4-72505 4 days ago |
7-67558 7 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 |
15/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
2 |
['Rida-Hamadani', 'github-actions'] |
nobody |
0-82206 22 hours ago |
4-41487 4 days ago |
4-41480 4 days |
| 34227 |
stepan2698-cpu author:stepan2698-cpu |
feat(Combinatorics/Schnirelmann): if sum of densities is at least one, the sumset covers the naturals |
Proves an outstanding TODO item from Mathlib.Combinatorics.Schnirelmann : shows that if the sum of two densities is at least one, the sumset covers the positive naturals.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
46/1 |
Mathlib/Combinatorics/Schnirelmann.lean |
1 |
15 |
['FLDutchmann', 'YaelDillies', 'YanYablonovskiy', 'github-actions', 'grunweg', 'kbuzzard', 'stepan2698-cpu'] |
b-mehta assignee:b-mehta |
0-81919 22 hours ago |
1-39730 1 day ago |
72-66493 72 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/0 |
Mathlib/Probability/Distributions/SetBernoulli.lean |
1 |
5 |
['DavidLedvinka', 'github-actions', 'kex-y'] |
kex-y assignee:kex-y |
0-81423 22 hours ago |
2-262 2 days ago |
2-255 2 days |
| 33313 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Coloring/EdgeColoring): create a basic edge-coloring API |
---
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 ⊤ = ⊤`
- [x] depends on: #33292
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
285/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/EdgeColoring.lean |
2 |
15 |
['SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'ooovi'] |
nobody |
0-79989 22 hours ago |
1-84386 1 day ago |
12-67476 12 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
|
329/195 |
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 |
24 |
['CBirkbeck', 'SmwYin', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-79288 22 hours ago |
2-86229 2 days ago |
2-86256 2 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'] |
nobody |
0-77024 21 hours ago |
1-83524 1 day ago |
1-83517 1 day |
| 34759 |
Hagb author:Hagb |
feat(RingTheory/MvPolynomial/MonomialOrder): add degree with `⊥` as degree of `0` |
`withBotDegree` is to distinguish the degree of zero polynomial from the degree of non-zero constant polynomial. `MonomialOrder.degree` of both are 0, while `withBotDegree` is `⊥` for zero polynomial and 0 for non-zero constant polynomial.
`MonomialOrder.withBotDegree` is to [`MonomialOrder.degree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=MonomialOrder.degree#doc) as [`Polynomial.degree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Polynomial.degree#doc) is to [`Polynomial.natDegree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Polynomial.natDegree#doc).
It's upstreamized from https://github.com/WuProver/groebner_proj.
---
It's upstream from [`Groebner/MonomialOrder.lean` in the repo `WuProver/groebner_proj`](https://github.com/WuProver/groebner_proj/blob/main/Groebner/MonomialOrder.lean).
- [x] ~~depends on: #34755~~
- [x] depends on: #34756
- [x] depends on: #34758
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
245/2 |
Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
2 |
5 |
['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-75643 21 hours ago |
0-77081 21 hours ago |
0-79171 21 hours |
| 34851 |
dennj author:dennj |
feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations |
This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization:
- `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i`
- `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x`
- `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i`
These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). |
t-data
new-contributor
|
22/0 |
Mathlib/Data/Matrix/Mul.lean |
1 |
7 |
['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] |
TwoFX assignee:TwoFX |
0-74122 20 hours ago |
58-63128 58 days ago |
58-63121 58 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 |
0-73756 20 hours ago |
0-76421 21 hours ago |
43-61231 43 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 |
0-73458 20 hours ago |
0-73502 20 hours ago |
1-55020 1 day |
| 37592 |
erdOne author:erdOne |
feat: set up API for `ConvexSpace` |
We introduce `sConvexCombo` and the indexed version `iConvexCombo` as the main API for `ConvexSpace` and prove lemmas around the new definitions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
maintainer-merge
label:t-algebra$ |
452/133 |
Mathlib/Analysis/Convex/MetricSpace.lean,Mathlib/LinearAlgebra/ConvexSpace.lean,Mathlib/LinearAlgebra/ConvexSpace/AffineSpace.lean |
3 |
15 |
['YaelDillies', 'erdOne', 'github-actions'] |
nobody |
0-72108 20 hours ago |
1-1636 1 day ago |
1-2896 1 day |
| 35879 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): Add graph deletion operations |
This PR adds definitions and basic lemmas for deleting edges and vertices from a graph in Mathlib/Combinatorics/Graph/Delete.lean.
It introduces the following operations:
- `G ↾ F` (edgeRestrict): The subgraph of G restricted to the edges in F (vertices are preserved).
- `G \ F` (edgeDelete): The subgraph of G with the edges in F deleted.
- `G[X]` (induce): The subgraph of G induced by the set of vertices X.
- `G - X` (vertexDelete): The graph obtained from G by deleting the set of vertices X.
These definitions are accompanied by simp lemmas describing their edge sets, incidence relations, and basic properties such as monotonicity.
Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com)
---
- [x] depends on: #26770
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
208/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Delete.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-70335 19 hours ago |
13-56435 13 days ago |
13-62613 13 days |
| 37614 |
ADedecker author:ADedecker |
feat: notation for `UniformConvergenceCLM` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
72/52 |
Mathlib/Topology/Algebra/Module/Spaces/UniformConvergenceCLM.lean |
1 |
1 |
['github-actions'] |
nobody |
0-69060 19 hours ago |
0-69131 19 hours ago |
0-69124 19 hours |
| 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 |
0-68816 19 hours ago |
4-39927 4 days ago |
4-40064 4 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 |
0-68815 19 hours ago |
0-75076 20 hours ago |
73-43861 73 days |
| 37383 |
vihdzp author:vihdzp |
chore(SetTheory/Ordinal/FixedPointApproximants): simpler definition for `lfpApprox` |
We simplify the definition of `Ordinal.lfpApprox` - the old definition wasn't even simp-normal. We then golf the entire API using it.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
|
67/117 |
Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean |
1 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-68348 18 hours ago |
0-68371 18 hours ago |
4-3740 4 days |
| 37610 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): add `OrderBot` instance for `Graph` |
This PR adds an `OrderBot` instance for `Graph α β`, where the bottom element `⊥` is the empty graph (no vertices, no edges).
Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
90/8 |
Mathlib/Combinatorics/Graph/Subgraph.lean |
1 |
1 |
['github-actions'] |
nobody |
0-67747 18 hours ago |
0-70436 19 hours ago |
0-70935 19 hours |
| 37327 |
ldct author:ldct |
feat: `Complex.tan, Complex.tanh` are meromorphic |
From `AlexKontorovich/PrimeNumberTheoremAnd` project
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
39/0 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Meromorphic.lean |
2 |
8 |
['github-actions', 'j-loreaux', 'ldct', 'themathqueen'] |
j-loreaux assignee:j-loreaux |
0-67248 18 hours ago |
0-67301 18 hours ago |
2-68415 2 days |
| 37601 |
loefflerd author:loefflerd |
feat(Topology/Algebra/Group/Matrix): refactor; continuity of maps on GL(n) and SL(n) |
Show that the map `GL n R → GL n S` induced by a ring morphism `f : R → S` is continuous if `f` is (and similarly if `f` is inducing, embedding, or closed embedding). Also refactor and clean up `Topology/Algebra/Group/Matrix.lean`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
130/34 |
Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean,Mathlib/Topology/Algebra/Constructions.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Group/Matrix.lean,Mathlib/Topology/Constructions/SumProd.lean,Mathlib/Topology/Maps/Basic.lean |
7 |
1 |
['github-actions'] |
nobody |
0-65884 18 hours ago |
0-65937 18 hours ago |
0-67256 18 hours |
| 37617 |
harahu author:harahu |
doc(FieldTheory): avoid lazy continuation lines |
We resolve the ambiguity inherent in lazy (un-indented) list item continuation lines by either indenting them or separating them by inserting a newline in the cases where the item continuation was a mistake.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
33/31 |
Mathlib/FieldTheory/CardinalEmb.lean,Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/FieldTheory/PolynomialGaloisGroup.lean,Mathlib/FieldTheory/RatFunc/Basic.lean |
7 |
1 |
['github-actions'] |
nobody |
0-65444 18 hours ago |
0-65515 18 hours ago |
0-65508 18 hours |
| 35250 |
vlad902 author:vlad902 |
feat(SimpleGraph): redefine `cycleGraph` independent of `circulantGraph` |
Right now the `cycleGraph` definition relies on `circulantGraph` which requires importing Group definitions from the algebra hierarchy. This causes large-imports for me in later PRs where I try to make more widespread use of cycleGraphs, so here I redefine it to be its own independent object, and leave moving it from `Circulant.lean` to another PR (this is parallel to #35084.)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
10/10 |
Mathlib/Combinatorics/SimpleGraph/Circulant.lean |
1 |
5 |
['SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
0-63341 17 hours ago |
50-3565 50 days ago |
50-3558 50 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'] |
joneugster assignee:joneugster |
0-63122 17 hours ago |
19-85102 19 days ago |
19-85095 19 days |
| 36571 |
harahu author:harahu |
doc(Combinatorics): fix typos |
Found by `PyCharm`'s code inspection tool. Fixes were made by Codex.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
23/23 |
Mathlib/Combinatorics/Colex.lean,Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean,Mathlib/Combinatorics/Matroid/Basic.lean,Mathlib/Combinatorics/Matroid/Circuit.lean,Mathlib/Combinatorics/Matroid/Map.lean,Mathlib/Combinatorics/Matroid/Minor/Contract.lean,Mathlib/Combinatorics/Matroid/Rank/ENat.lean,Mathlib/Combinatorics/Nullstellensatz.lean,Mathlib/Combinatorics/SetFamily/FourFunctions.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,docs/references.bib |
14 |
4 |
['IvanRenison', 'github-actions', 'harahu'] |
nobody |
0-63010 17 hours ago |
22-53088 22 days ago |
22-53081 22 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.WeakDual` into `WeakDual` and `WeakSpace`:
The `WeakSpace` type, its instances, and `toWeakSpace`/`toWeakSpaceCLM` move to a new
`Topology.Algebra.Module.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.WeakSpace
- toWeakSpace -> Mathlib.Topology.Algebra.Module.WeakSpace
- toWeakSpaceCLM -> Mathlib.Topology.Algebra.Module.WeakSpace
CC @j-loreaux
---
- [ ] depends on: #37314 |
new-contributor
file-removed
|
192/114 |
Mathlib.lean,Mathlib/Analysis/LocallyConvex/WeakBilin.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/WeakSpace.lean |
6 |
5 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-62963 17 hours ago |
0-62966 17 hours ago |
9-21586 9 days |
| 33463 |
khwilson author:khwilson |
feat(Mathlib/Analysis/Polynomial/MahlerMeasure): Mahler Measure for other rings |
Define `mahlerMeasure'` which allows you specify a norm preserving map `v` from any `NormedRing A` (or more general) to `ℂ`. Also provide wrappers around the main `mahlerMeasure` lemmas that are used for estimation.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
maintainer-merge
|
98/5 |
Mathlib/Analysis/Polynomial/MahlerMeasure.lean,Mathlib/NumberTheory/MahlerMeasure.lean |
2 |
40 |
['github-actions', 'j-loreaux', 'khwilson', 'kim-em', 'plp127', 'vlad902'] |
nobody |
0-62241 17 hours ago |
1-2323 1 day ago |
1-7378 1 day |
| 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 |
264/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Iterate.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean |
7 |
36 |
['SnirBroshi', 'github-actions', 'jessealama', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-61947 17 hours ago |
0-61949 17 hours ago |
12-17804 12 days |
| 37380 |
tb65536 author:tb65536 |
feat(RingTheory/Localization/BaseChange): tensor product commutes with localizations |
This PR adds a few isomorphisms for tensor products commuting with localizations.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
53/0 |
Mathlib/RingTheory/Localization/BaseChange.lean |
1 |
5 |
['github-actions', 'robin-carlier'] |
nobody |
0-59784 16 hours ago |
0-59784 16 hours ago |
4-43364 4 days |
| 37104 |
tb65536 author:tb65536 |
feat(RingTheory/Flat/FaithfullyFlat/Basic): prove `IsNoetherian` and `IsArtinian` from faithfully flat base change |
This PR proves that if the base change of a module `M` along a faithfully flat ring homomorphism is Noetherian or Artinian, then so is `M`.
The file `Artinian/Module` has become rather heavy, so I split off a `Artinian/Defs` file to avoid the large import.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
121/39 |
Mathlib.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Artinian/Defs.lean,Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Flat/FaithfullyFlat/Basic.lean |
5 |
2 |
['github-actions', 'robin-carlier'] |
nobody |
0-59049 16 hours ago |
0-59049 16 hours ago |
10-36218 10 days |
| 37312 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): Outer regular measures are determined by values on bounded open sets |
We proved that
- Every open set in a metric space is a countable union of bounded open sets.
- Outer regular measures are determined by values on bounded open sets.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
19/0 |
Mathlib/MeasureTheory/Measure/Regular.lean,Mathlib/Topology/MetricSpace/Bounded.lean |
2 |
2 |
['github-actions', 'kex-y'] |
kex-y assignee:kex-y |
0-58573 16 hours ago |
0-58387 16 hours ago |
7-7182 7 days |
| 37621 |
vasnesterov author:vasnesterov |
feat(Analysis/Asymptotics): if `u` is eventually positive and `u ~ v` then `v` is eventually positive |
Prove that if `u` is eventually positive and `u ~ v` then `v` is eventually positive.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
8/0 |
Mathlib/Analysis/Asymptotics/AsymptoticEquivalent.lean |
1 |
2 |
['github-actions', 'vihdzp'] |
nobody |
0-58496 16 hours ago |
0-59121 16 hours ago |
0-59258 16 hours |
| 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 |
145/13 |
Mathlib/Topology/Compactness/CountablyCompact.lean,Mathlib/Topology/Inseparable.lean,docs/references.bib |
3 |
26 |
['ADedecker', 'CoolRmal', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
0-58157 16 hours ago |
0-58183 16 hours ago |
5-56260 5 days |
| 37598 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Coloring): add lemmas about coloring and maps |
---
Idea from this Zulip thread: [graph theory>Second Order Monadic Logic for Graph](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Second.20Order.20Monadic.20Logic.20for.20Graph/with/583013775)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
35/12 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
15 |
['IvanRenison', 'SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-bors'] |
b-mehta assignee:b-mehta |
0-57746 16 hours ago |
0-82217 22 hours ago |
0-82531 22 hours |
| 36657 |
BryceT233 author:BryceT233 |
feat(RingTheory): adds two lemmas on `Module.length` |
This PR adds two lemmas regarding the length of modules:
* `Submodule.length_le_restrictScalar` shows that the length of an $R$-submodule is less than or equal to its length as an $A$-submodule under scalar restriction.
* `Submodule.length_quotient_lt` shows that for a module of finite length, the length of a quotient module $M \big/ p$ is strictly less than the length of $M$ when the submodule $p$ is non-trivial.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
21/0 |
Mathlib/Data/ENat/Basic.lean,Mathlib/RingTheory/Length.lean |
2 |
11 |
['BryceT233', 'Raph-DG', 'WenrongZou', 'github-actions', 'robin-carlier'] |
chrisflav assignee:chrisflav |
0-56834 15 hours ago |
0-56834 15 hours ago |
20-6595 20 days |
| 37347 |
JovanGerb author:JovanGerb |
feat: implementation of `@[use_set_notation]` |
This PR is the implementation part of #32983, without using the feature yet.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
261/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SetNotation.lean,MathlibTest/Delab/Subset.lean |
4 |
16 |
['github-actions', 'thorimur'] |
alexjbest and thorimur assignee:alexjbest assignee:thorimur |
0-55437 15 hours ago |
5-53168 5 days ago |
5-53161 5 days |
| 37526 |
SabrinaJewson author:SabrinaJewson |
feat(Order/ConditionallyCompleteLattice): Generalize and add cbiSup/cbiInf theorems |
Generalize some theorems concerning cbiSup (`⨆ i, ⨆ h : p i, f i h`) by removing superfluous `Nonempty` typeclasses and parameters. It would be nice to also remove the `BoundedAbove` typeclass, but this can only be done with linear orders because junk values of lattices are not currently specified[0].
[0]: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Moving.20.60csSup.60.20junk.20into.20.60ConditionallyCompleteLattice.60/near/583143345
In the absence of that, we provide the theorem `cbiSup_of_not_bddAbove` defining the junk values of `cbiSup` in the linear order case.
Add theorem `cbiSup_id`, showing that `⨆ i ∈ s, i = sSup s`.
Add theorem `cbiSup_eq_of_forall_not` as a counterpart to `cbiSup_eq_of_forall` when the condition is never true, and a corollary `cbiSup_empty` for the obvious empty set case.
Use the new theorems to shorten the proof of `cbiSup_eq_of_not_forall`.
Give proper names to the prime versions of `ciSup_subtype` and `ciInf_subtype`.
Moves:
- `ciSup_subtype'` -> `cbiSup_eq_ciSup_subtype`
- `ciInf_subtype'` -> `cbiInf_eq_ciInf_subtype`
- `ciSup_subtype''` -> `ciSup_subtype_fun`
- `ciInf_subtype''` -> `ciInf_subtype_fun`
---
Spun off from the theorems I needed in #37470. Let me know if I should split it up further.
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
maintainer-merge
|
73/60 |
Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/ConditionallyCompletePartialOrder/Indexed.lean,scripts/nolints_prime_decls.txt |
3 |
9 |
['SabrinaJewson', 'SnirBroshi', 'YaelDillies', 'github-actions', 'vihdzp'] |
nobody |
0-54126 15 hours ago |
0-53935 14 hours ago |
2-51699 2 days |
| 37620 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): Add `Graph` intersection operations |
Adds `Mathlib/Combinatorics/Graph/InterUnion.lean`, which defines intersections of Graph α β values and proves the lattice structure induced by binary intersection. Following PR will add the union operations to this file.
## Main additions
- **`Graph.iInter`**: intersection of a nonempty indexed family of graphs. Vertices are the intersection of vertex sets; an edge is kept iff it is a link in every graph with a common pair of endpoints (pairwise compatibility is assumed where needed).
- **`Graph.sInter`**: Infimum of a nonempty `Set (Graph α β)`, defined via `iInter` on the subtype.
- **`Graph.inter`**: Binary intersection. Vertices are `V(G) ∩ V(H)`. Edges are those in both edge sets on which `G` and `H` agree on `IsLink` for all endpoint pairs; `IsLink` on the intersection is conjunction of the two `IsLink` predicates.
- Proof of `SemilatticeInf (Graph α β)`
Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
149/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/InterUnion.lean |
2 |
5 |
['Jun2M', 'github-actions', 'vihdzp'] |
nobody |
0-53734 14 hours ago |
0-61091 16 hours ago |
0-61185 16 hours |
| 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 |
0-53686 14 hours ago |
0-53760 14 hours ago |
0-53753 14 hours |
| 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 |
0-50106 13 hours ago |
1-72602 1 day ago |
1-72595 1 day |
| 37471 |
NoahW314 author:NoahW314 |
feat(RingTheory/MvPolynomial/MonomialOrder): add `leadingTerm_mul` lemma |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
7/0 |
Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
1 |
7 |
['Hagb', 'Maldooor', 'NoahW314', 'WilliamCoram', 'github-actions'] |
nobody |
0-49672 13 hours ago |
3-36449 3 days ago |
3-36442 3 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.
---
The proof of the main result `stalk_dim_eq_coheight` is currently a bit long for my (and I suspect the broader community's) tastes. That said, I'm not quite sure the best way to break it into pieces, any comments would be very much appreciated!
- [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 |
148/0 |
Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Topology/Continuous.lean,Mathlib/Topology/KrullDimension.lean,Mathlib/Topology/Sets/Closeds.lean |
6 |
62 |
['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 |
0-47639 13 hours ago |
9-79013 9 days ago |
55-52908 55 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 |
0-47633 13 hours ago |
8-47766 8 days ago |
8-47759 8 days |
| 37279 |
imalinowskip author:imalinowskip |
feat(Probability): multivariate CLT (and Cramèr-Wold) |
Depends on #36208
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
672/0 |
Mathlib.lean,Mathlib/Probability/CramerWold.lean,Mathlib/Probability/MultivariateCentralLimitTheorem.lean |
3 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
RemyDegenne assignee:RemyDegenne |
0-47632 13 hours ago |
0-68870 19 hours ago |
0-68863 19 hours |
| 37313 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): Fatou's lemma for countably generated filters |
---
- [ ] depends on: #37296
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
37/4 |
Mathlib/MeasureTheory/Integral/Lebesgue/Add.lean,Mathlib/Order/LiminfLimsup.lean |
2 |
6 |
['ADedecker', 'CoolRmal', 'github-actions', 'mathlib-dependent-issues'] |
kex-y assignee:kex-y |
0-47631 13 hours ago |
0-60908 16 hours ago |
0-61122 16 hours |
| 37478 |
YaelDillies author:YaelDillies |
chore(Order): make `CompleteDistribLattice.MinimalAxioms.of` semireducible |
This is part of the greater discussion about whether we should make all `def`s appearing in instances `implicit_reducible`. I believe the answer in this case is pretty clearly yes sinced the sole purpose of `CompleteLattice.MinimalAxioms` is to build instances.
From APAP
---
[](https://gitpod.io/from-referrer/)
|
t-order |
2/0 |
Mathlib/Order/CompleteBooleanAlgebra.lean |
1 |
1 |
['github-actions'] |
Vierkantor assignee:Vierkantor |
0-47628 13 hours ago |
1-12486 1 day ago |
1-14054 1 day |
| 37537 |
grunweg author:grunweg |
feat: continuousLinearMapAt_apply_of_mem |
Also mark `(Pre)Trivialization.coe_linearMapAt_of_mem` simp. From #36036, i.e. the path towards Ehresmann connections.
Co-authored by: Patrick Massot
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-topology
|
18/21 |
Mathlib/Geometry/Manifold/Riemannian/Basic.lean,Mathlib/Geometry/Manifold/VectorBundle/Riemannian.lean,Mathlib/Topology/VectorBundle/Basic.lean,Mathlib/Topology/VectorBundle/Riemannian.lean |
4 |
4 |
['github-actions', 'grunweg', 'leanprover-radar'] |
ocfnash assignee:ocfnash |
0-47628 13 hours ago |
2-1426 2 days ago |
2-1463 2 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 |
0-47627 13 hours ago |
2-7078 2 days ago |
2-7071 2 days |
| 37552 |
pitmonticone author:pitmonticone |
feat(MeasureTheory/BorelSpace): add `measurable_iSup_of_lowerSemicontinuous` |
Add `measurable_biSup_of_continuousOn`: the supremum of a family of measurable functions parameterized by a separable pseudometric space is measurable, provided the family is continuous on the parameter set.
Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project.
Co-authored-by: Jeremy Tan Jie Rui
--- |
carleson
t-measure-probability
|
25/0 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean |
1 |
9 |
['CoolRmal', 'github-actions', 'grunweg', 'pitmonticone'] |
kex-y assignee:kex-y |
0-47626 13 hours ago |
1-7229 1 day ago |
1-75979 1 day |
| 37583 |
huaizhangchu author:huaizhangchu |
feat(Probability): add mean and variance of Poisson distribution |
This PR adds the mean and variance of the Poisson distribution over ℕ.
### Main results
- `poissonMeasure_mean`: the mean of `poissonMeasure r` equals `r`
- `poissonMeasure_moment_two`: the second moment equals `r² + r`
- `poissonMeasure_variance`: the variance equals `r`
### Implementation notes
The moments are computed via descending factorial moments. We first prove `hasSum` lemmas for `E[X]` and `E[X(X-1)]`, then obtain `E[X²] = E[X(X-1)] + E[X] = r² + r`, from which the variance follows.
### Related lemmas
- `hasSum_poissonMeasure_nat`: weighted sum for the mean
- `hasSum_poissonMeasure_descFactorial_two`: weighted sum for the second descending factorial moment
- `hasSum_poissonMeasure_sq`: weighted sum for the second moment
- `memLp_two_nat_poissonMeasure`: integrability condition for variance |
t-measure-probability
large-import
new-contributor
|
100/0 |
Mathlib/Probability/Distributions/Poisson/Basic.lean |
1 |
2 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
0-47625 13 hours ago |
1-41418 1 day ago |
1-41411 1 day |
| 37587 |
joelriou author:joelriou |
feat(CategoryTheory/Monoidal): use to_additive for the Yoneda embedding of group objects |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
74/27 |
Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean |
1 |
1 |
['github-actions'] |
robin-carlier assignee:robin-carlier |
0-47623 13 hours ago |
1-17633 1 day ago |
1-17626 1 day |
| 37615 |
harahu author:harahu |
fix(GroupTheory): avoid unintentional list item continuation lines |
Currently, all of the sentence fragments that we're separating with a newline are rendering as part of the preceding list item. The addition of these newlines renders the sentence fragments as a separate paragraph following the list.
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
5/0 |
Mathlib/GroupTheory/Descent.lean |
1 |
1 |
['github-actions'] |
tb65536 assignee:tb65536 |
0-47621 13 hours ago |
0-66446 18 hours ago |
0-66439 18 hours |
| 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 |
148/0 |
Mathlib.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Fib/Lame.lean,docs/1000.yaml |
5 |
20 |
['github-actions', 'kennethgoodman', 'vihdzp'] |
nobody |
0-42027 11 hours ago |
0-41782 11 hours ago |
0-47609 13 hours |
| 35813 |
joelriou author:joelriou |
feat(Algebra/Homology): a factorization lemma |
In this PR, we show that if `f : K ⟶ L` is a morphism between bounded below cochain complexes in an abelian category with enough injectives, then there exists a factorization `ι ≫ π = f` with `ι : K ⟶ K'` a monomorphism that is also a quasi-isomorphism and `π : K' ⟶ L` a morphism which degreewise is an epimorphism with an injective kernel, while `K'` is also bounded below (with precise bounds depending on the available bounds for `K` and `L`).
This will be an essential result towards the construction of the Quillen model category structure on bounded below cochain complexes in an abelian category with enough injectives, and it will be used in order to construct the total right derived functor of a (right exact) functor.
---
(This is an attempt at cleaning up the code in https://github.com/joelriou/mathlib4/blob/jriou_localization/Mathlib/Algebra/Homology/Factorizations/CM5a.lean)
- [x] depends on: #36931
- [x] depends on: #36593
- [x] depends on: #35931
- [x] depends on: #35939
- [x] depends on: #35929
- [x] depends on: #35930
- [x] depends on: #35932
- [x] depends on: #35934
- [x] depends on: #35935
- [x] depends on: #35936
- [x] depends on: #35937
- [x] depends on: #35938
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
237/15 |
Mathlib/Algebra/Homology/Factorizations/CM5a.lean |
1 |
9 |
['dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
robin-carlier assignee:robin-carlier |
0-41842 11 hours ago |
5-84385 5 days ago |
5-84379 5 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$ |
121/1 |
Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean |
1 |
4 |
['eric-wieser', 'github-actions'] |
nobody |
0-41586 11 hours ago |
0-41641 11 hours ago |
0-51714 14 hours |
| 36320 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics): add Schreier graph definition and covering property |
Defines Schreier graphs as quivers with labeled edges.
`SchreierGraph V ι`: type alias for vertices with quiver structure
`schreierGraphLabelling`: prefunctor extracting edge labels
`schreierGraphLabelling_isCovering`: the labelling is a covering for group actions
`schreierGraph_action_commute`: label-preserving maps commute with the action
Ported from [Lean 3 PR #18693](https://github.com/leanprover-community/mathlib3/pull/18693).
This PR was written with AI assistance (Claude). The code has been reviewed by the author and their advisor.
---
This is the first in a series of PRs splitting #35467 into smaller pieces, as suggested by reviewers. Upcoming PRs will add word evaluation, paths, connectivity, automorphisms, examples, and Cayley sum graphs.
|
t-combinatorics
new-contributor
LLM-generated
|
180/0 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/Schreier.lean,docs/references.bib |
3 |
33 |
['AntoineChambert-Loir', 'YaelDillies', 'ZRTMRH', 'github-actions'] |
nobody |
0-39002 10 hours ago |
0-84872 23 hours ago |
19-58612 19 days |
| 34093 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas |
---
- [x] depends on: #33941
- [x] depends on: #37258
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
297/0 |
Mathlib.lean,Mathlib/Data/Option/Order.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean |
4 |
5 |
['YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
Komyyy assignee:Komyyy |
0-38412 10 hours ago |
1-69871 1 day ago |
56-65151 56 days |
| 37593 |
IlPreteRosso author:IlPreteRosso |
refactor(Data.Finset.*Antidiagonal): rename set-based defs to `set*Antidiagonal` |
Renames set-based `Finset.mulAntidiagonal` → `setMulAntidiagonal` (and SMul/VAdd variants) to free the `mulAntidiagonal` name for the planned `HasMulAntidiagonal` typeclass. Deprecation aliases added.
Supersedes #34551 |
t-ring-theory
new-contributor
|
178/96 |
Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Data/Finset/MulAntidiagonal.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Summable.lean |
6 |
2 |
['github-actions'] |
nobody |
0-37030 10 hours ago |
1-276 1 day ago |
1-2043 1 day |
| 37351 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra/ModuleCat): lemma for projective dimension eq zero |
Projective dimension of nontrivial projective module is zero.
And fix namespace for related lemmas.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
35/5 |
Mathlib/Algebra/Category/ModuleCat/ProjectiveDimension.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean |
2 |
5 |
['Thmoas-Guan', 'github-actions', 'joelriou'] |
joelriou assignee:joelriou |
0-35577 9 hours ago |
0-39512 10 hours ago |
4-59851 4 days |
| 37612 |
dupuisf author:dupuisf |
feat(ContinuousFunctionalCalculus): add integral representation for `x ↦ x ^ p` for `p ∈ (1, 2)` |
This PR adds an integral representation for the function `x ↦ x ^ p` for `p ∈ (1, 2)`. We already have an analogous representation for `p ∈ (0, 1)`. This will later be used to show that this function is operator convex in that range.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
159/9 |
Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean |
1 |
2 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
0-29526 8 hours ago |
0-71338 19 hours ago |
0-71331 19 hours |
| 37500 |
Thmoas-Guan author:Thmoas-Guan |
refactor(RingTheory/Ideal/Heoght): minimize usages of `Ideal.primeHeight` and add lemma for `minimalPrimes` |
1: `minimalPrimes` is prime
2: deprecate and private almost all `primeHeight` APIs
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
171/154 |
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 |
6 |
['Thmoas-Guan', 'erdOne', 'github-actions'] |
nobody |
0-25945 7 hours ago |
1-5786 1 day ago |
2-85323 2 days |
| 37475 |
euprunin author:euprunin |
chore: golf proofs |
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):
* `✅️ LinearMap.IsSymmetric.orthogonalComplement_iSup_eigenspaces_eq_bot`: unchanged 🎉
* `✅️ LinearOrder.strong_induction_of_finite`: unchanged 🎉
* `✅️ ProbabilityTheory.poissonPMFRealSum`: 140 ms before, <30 ms after 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
6/29 |
Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Data/Finset/Sort.lean,Mathlib/Probability/Distributions/Poisson/Basic.lean |
3 |
12 |
['euprunin', 'felixpernegger', 'github-actions', 'grunweg'] |
nobody |
0-23382 6 hours ago |
0-23382 6 hours ago |
0-30814 8 hours |
| 37605 |
Parcly-Taxel author:Parcly-Taxel |
feat: pushing `Lattice` and predecessors through `Equiv` |
|
maintainer-merge |
91/0 |
Mathlib/Logic/Equiv/Defs.lean,Mathlib/Order/Lattice.lean |
2 |
4 |
['Parcly-Taxel', 'YaelDillies', 'github-actions', 'vihdzp'] |
nobody |
0-22435 6 hours ago |
0-77007 21 hours ago |
0-77000 21 hours |
| 31425 |
robertmaxton42 author:robertmaxton42 |
feat(Topology): implement delaborators for non-standard topology notation |
Add delaborators for unary and binary notation related to non-standard topologies in the TopologicalSpace namespace.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
265/5 |
Mathlib.lean,Mathlib/Topology/Defs/Basic.lean,Mathlib/Util/DelabNonCanonical.lean,MathlibTest/Delab/TopologicalSpace.lean |
4 |
49 |
['eric-wieser', 'github-actions', 'j-loreaux', 'jcommelin', 'kckennylau', 'robertmaxton42'] |
alreadydone assignee:alreadydone |
0-22425 6 hours ago |
0-85086 23 hours ago |
114-31517 114 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'] |
kim-em assignee:kim-em |
0-21172 5 hours ago |
15-13329 15 days ago |
15-13322 15 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.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
47/3 |
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 |
20 |
['eric-wieser', 'github-actions', 'loefflerd', 'themathqueen', 'wwylele'] |
loefflerd assignee:loefflerd |
0-20119 5 hours ago |
0-59372 16 hours ago |
2-50401 2 days |
| 37533 |
TJHeeringa author:TJHeeringa |
feat(Analysis/InnerProductSpace/Reproducing): Lemmata for reproducing kernels |
---
These are several lemmata regarding pointwise properties of reproducing kernels.
`norm_le_sq_norm_mul_diag` and `norm_sq_le_norm_mul_diag` follow from Cauchy-Schwartz on `kerFun` but are expressed in terms of the kernel. The names contain `diag` because a kernel is an infinite dimension matrix and thus `kernel H x x` and `kernel H y y` are diagonal elements.
`zero_row_iff_zero_diag` and `zero_col_iff_zero_diag` have the same proof. One implies the other due to the kernel being Hermitian.
AI:
I wrote the proofs myself, and then asked Claude to compact them because they were too long and I could see that they could be shortened. It gave some good suggestions but mostly broke the proofs, so fixed and compacted it myself (taking into account its useful suggestions).
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
21/0 |
Mathlib/Analysis/InnerProductSpace/Reproducing.lean |
1 |
13 |
['TJHeeringa', 'github-actions', 'themathqueen'] |
j-loreaux assignee:j-loreaux |
0-19782 5 hours ago |
2-1775 2 days ago |
2-15039 2 days |
| 32807 |
WilliamCoram author:WilliamCoram |
feat: Define the Gauss norm for MvPowerSeries |
We adjust the current definition for Gauss norm on power series to work for multivariate power series.
If this seems acceptable I can refactor the single variable case.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
124/0 |
Mathlib.lean,Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean |
2 |
28 |
['Multramate', 'WilliamCoram', 'erdOne', 'fbarroero', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] |
erdOne assignee:erdOne |
0-19024 5 hours ago |
0-33202 9 hours ago |
63-5990 63 days |
| 37046 |
justus-springer author:justus-springer |
feat(CategoryTheory/Triangulated): Generators in triangulated categories |
Define strong and classical generators in triangulated categories. See also the [zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Generators.20in.20triangulated.20categories/with/573268390).
---
- [x] depends on: #37080
- [x] depends on: #37081
- [x] depends on: #37083
- [x] depends on: #37085
- [x] depends on: #37090
- [x] depends on: #37442
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
259/0 |
Mathlib.lean,Mathlib/CategoryTheory/ObjectProperty/ClosureShift.lean,Mathlib/CategoryTheory/Triangulated/Generators.lean,docs/references.bib |
4 |
18 |
['github-actions', 'joelriou', 'justus-springer', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
0-17432 4 hours ago |
0-17327 4 hours ago |
3-83700 3 days |
| 37586 |
sgouezel author:sgouezel |
chore: remove a `backward.inferInstanceAs.wrap false` |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
maintainer-merge
|
2/3 |
Mathlib/NumberTheory/LucasLehmer.lean |
1 |
3 |
['MichaelStollBayreuth', 'github-actions'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-17303 4 hours ago |
1-24785 1 day ago |
1-24778 1 day |
| 37599 |
sgouezel author:sgouezel |
chore: use `inferInstanceAs` to define the distance on padic integers |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
maintainer-merge
|
1/2 |
Mathlib/NumberTheory/Padics/PadicIntegers.lean |
1 |
3 |
['MichaelStollBayreuth', 'github-actions'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-17249 4 hours ago |
0-82671 22 hours ago |
0-82664 22 hours |
| 35912 |
WenrongZou author:WenrongZou |
feat(RingTheory/FormalGroup): definition and examples of formal group |
---
Definition of one dimensional formal group law over commutative ring and some examples of formal group law.
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
241/0 |
Mathlib.lean,Mathlib/RingTheory/FormalGroup/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Ring/NamePowerVars.lean,docs/references.bib |
6 |
36 |
['Multramate', 'WenrongZou', 'artie2000', 'erdOne', 'github-actions', 'jcommelin', 'wwylele'] |
erdOne, jcommelin, mattrobball assignee:jcommelin assignee:erdOne assignee:mattrobball |
0-16912 4 hours ago |
0-16694 4 hours ago |
21-15755 21 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 |
357/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/CartesianMonoidal.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Basic.lean |
3 |
34 |
['FernandoChu', 'dagurtomas', 'edegeltje', 'github-actions', 'joelriou', 'robin-carlier'] |
joelriou assignee:joelriou |
0-16775 4 hours ago |
0-16775 4 hours ago |
9-62978 9 days |
| 37480 |
erdOne author:erdOne |
feat(AlgebraicTopology): homology of contractible spaces |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
62/4 |
Mathlib/AlgebraicTopology/SingularHomology/HomotopyInvarianceTopCat.lean,Mathlib/Topology/Category/TopCat/Limits/Basic.lean |
2 |
16 |
['FernandoChu', 'dagurtomas', 'erdOne', 'github-actions', 'joelriou'] |
dagurtomas assignee:dagurtomas |
0-16214 4 hours ago |
1-15218 1 day ago |
2-21530 2 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.
New definitions (in BasicSequence.lean)
- `BasicSequence`: a bundled ℕ-indexed sequence forming a Schauder basis for its algebraic span, with finite projection bound.
- `SatisfiesGrunblumCondition`: partial sums over initial segments are bounded by a constant times the full sum.
Main results
- `SatisfiesGrunblumCondition.basicSequence`: a nonzero sequence satisfying the Grünblum condition is a basic sequence.
- `SatisfiesGrunblumCondition.linearIndependent`: nonzero sequences satisfying that condition are linearly independent.
---
- 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
|
253/1 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/Basic.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/BasicSequence.lean |
3 |
2 |
['github-actions'] |
sgouezel assignee:sgouezel |
0-15403 4 hours ago |
7-60922 7 days ago |
16-10657 16 days |
| 37391 |
grunweg author:grunweg |
fix(create_deprecated_modules): fix the build again |
The code needed updating to the new String API; it failed to build before this PR.
This also removes uses of deprecated String API.
A future PR will add CI to ensure this script builds fine.
(Future future: can we test that we tested all .lean scripts? Or have a test which builds all .lean files in scripts?)
---
We need to annotate a type as `Char` now, perhaps because the default instances (from a `Char` to a `Slice.Pattern`) don't work out as well any more.
[](https://gitpod.io/from-referrer/)
|
tech debt
CI
|
22/21 |
scripts/create_deprecated_modules.lean |
1 |
19 |
['adomani', 'github-actions', 'grunweg'] |
nobody |
0-15160 4 hours ago |
1-62147 1 day ago |
2-39186 2 days |
| 36677 |
AlexeyMilovanov author:AlexeyMilovanov |
feat(Computability.Partrec): add computability of Nat.find |
This PR bridges `Partrec.rfind` with total unbounded search (`Nat.find`).
It adds: `Computable.find`: Proves that `x ↦ Nat.find (h_ex x)` is computable for a computable decidable predicate `P`. |
t-computability
new-contributor
maintainer-merge
|
15/0 |
Mathlib/Computability/Halting.lean |
1 |
16 |
['AlexeyMilovanov', 'Komyyy', 'bryangingechen', 'github-actions', 'vlad902'] |
nobody |
0-13772 3 hours ago |
1-78326 1 day ago |
19-51743 19 days |
| 37386 |
gasparattila author:gasparattila |
chore: call `dsimp` in the default tactic of `ContinuousLinearMap` |
---
This will also reduce the breakage in https://github.com/leanprover-community/mathlib4/pull/35548.
[](https://gitpod.io/from-referrer/)
|
t-topology |
33/76 |
Mathlib/Algebra/Category/ContinuousCohomology/Basic.lean,Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Distribution/DerivNotation.lean,Mathlib/Analysis/Distribution/TestFunction.lean,Mathlib/Analysis/Fourier/Notation.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/ConjSqrt.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/MeasureTheory/Measure/FiniteMeasure.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean,Mathlib/Probability/Distributions/Fernique.lean,Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Basic.lean,Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Independence.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/LinearMapCompletion.lean,Mathlib/Topology/Algebra/Module/Alternating/Topology.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean,Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean,Mathlib/Topology/Algebra/Module/Multilinear/Topology.lean,Mathlib/Topology/Algebra/Module/Star.lean,Mathlib/Topology/Algebra/Star/LinearMap.lean,Mathlib/Topology/CompactOpen.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/ContinuousMap/Algebra.lean,Mathlib/Topology/ContinuousMap/Ideals.lean,Mathlib/Topology/Instances/TrivSqZeroExt.lean |
36 |
5 |
['gasparattila', 'github-actions', 'themathqueen'] |
j-loreaux assignee:j-loreaux |
0-13345 3 hours ago |
2-76226 2 days ago |
2-80036 2 days |
| 37628 |
JadAbouHawili author:JadAbouHawili |
doc: Rename Xor' to Xor |
Rename `Xor'` to `Xor` per the comment which recommended doing so after `v4.25.0-rc1`
Moves:
- Xor' --> Xor
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
50/56 |
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/Separation/Basic.lean,MathlibTest/itauto.lean |
16 |
3 |
['JadAbouHawili', 'github-actions'] |
nobody |
0-13101 3 hours ago |
0-12857 3 hours ago |
0-14019 3 hours |
| 36388 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/AdjMatrix): submatrices and homomorphisms |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
72/3 |
Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean |
1 |
13 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] |
nobody |
0-12805 3 hours ago |
3-35427 3 days ago |
21-43544 21 days |
| 37622 |
jano-wol author:jano-wol |
feat: trace-nilpotency criterion |
Trace-nilpotency criterion
---
This PR proves that over an algebraically closed field of characteristic zero, given subspaces `A ≤ B` of `Module.End K V` and the set `M A B = {x | ∀ b ∈ B, ⁅x, b⁆ ∈ A}`, any `x ∈ M A B` satisfying `tr (x * y) = 0` for all `y ∈ M A B` is nilpotent.
Cartan's criterion proof overview following Humphreys, Ch. 4, pp. 31–32. We plan to deliver the proof in 3 steps:
1. This PR: Prove the trace-nilpotency criterion over algebraically closed fields. Uses Jordan–Chevalley decomposition, Lagrange interpolation.
2. Remove the algebraic closure assumption by scalar extension.
3. Prove Cartan's criterion by Engel's theorem + PR 2. This is the easiest out of the three steps.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
279/0 |
Mathlib.lean,Mathlib/Algebra/Lie/AdjointAction/JordanChevalley.lean,Mathlib/Algebra/Lie/NilpotentOfTrace.lean |
3 |
1 |
['github-actions'] |
nobody |
0-11932 3 hours ago |
0-58174 16 hours ago |
0-58167 16 hours |
| 36399 |
chrisflav author:chrisflav |
feat(RingTheory/Flat): finite flat algebra is trivial if rank is equal to `1` |
From Pi1.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
maintainer-merge
|
168/3 |
Mathlib.lean,Mathlib/LinearAlgebra/Trace.lean,Mathlib/RingTheory/Flat/Rank.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean,Mathlib/RingTheory/TensorProduct/Maps.lean |
6 |
11 |
['chrisflav', 'github-actions', 'riccardobrasca', 'robin-carlier'] |
alreadydone assignee:alreadydone |
0-8281 2 hours ago |
1-4037 1 day ago |
25-77007 25 days |
| 37609 |
sgouezel author:sgouezel |
feat: use a constructor for NNReal |
Currently, many elements of NNReal are constructed as pair (x, hx), i.e., as elements of the subtype of nonnegative real numbers. The two types are defeq, but not reducibly, so this creates many defeq abuses. This PR introduces a constructor `NNReal.mk` and uses it instead of the bare constructor, to avoid these defeq abuses.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
98/91 |
Mathlib/Analysis/Calculus/ContDiff/RCLike.lean,Mathlib/Analysis/Complex/CauchyIntegral.lean,Mathlib/Analysis/Complex/Norm.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Measure.lean,Mathlib/Analysis/Convex/SpecificFunctions/Pow.lean,Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Group/Real.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/IntegralRepresentation.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Orthogonality.lean,Mathlib/Data/ENNReal/Basic.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Real.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Measure/Haar/Unique.lean,Mathlib/MeasureTheory/Measure/Tight.lean,Mathlib/MeasureTheory/Measure/Tilted.lean,Mathlib/MeasureTheory/VectorMeasure/Basic.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/Basic.lean,Mathlib/Probability/Distributions/Gaussian/Real.lean,Mathlib/Probability/Moments/SubGaussian.lean,Mathlib/RingTheory/Valuation/RankOne.lean,Mathlib/Topology/Algebra/MetricSpace/Lipschitz.lean,Mathlib/Topology/ContinuousMap/CompactlySupported.lean,Mathlib/Topology/Instances/NNReal/Lemmas.lean,Mathlib/Topology/MetricSpace/Holder.lean,Mathlib/Topology/MetricSpace/Pseudo/Constructions.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean,Mathlib/Topology/UniformSpace/Real.lean |
38 |
3 |
['github-actions', 'leanprover-radar', 'sgouezel'] |
nobody |
0-7303 2 hours ago |
0-14912 4 hours ago |
0-19750 5 hours |
| 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.
---
- [ ] depends on: #36980
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
131/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Exact.lean |
3 |
23 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
0-5119 1 hour ago |
0-5122 1 hour ago |
13-17437 13 days |
| 35906 |
scp020 author:scp020 |
feat(Combinatorics/SimpleGraph/Walk): chords of walks |
Define `Walk.IsChord` and `Walk.IsChordless` predicates in a new file `SimpleGraph/Walks/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
|
66/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Chord.lean |
2 |
55 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'scp020'] |
YaelDillies assignee:YaelDillies |
0-5042 1 hour ago |
0-7917 2 hours ago |
24-37341 24 days |
| 37613 |
ADedecker author:ADedecker |
chore: move files to new `Topology.Algebra.Module.Spaces` subfolder |
- `PointwiseConvergence` -> `Spaces.PointwiseConvergenceCLM`
- `WeakBilin` -> `Spaces.WeakBilin`
- `WeakDual` -> `Spaces.WeakDual`
- `CharacterSpace` -> `Spaces.CharacterSpace`
I don't yet know if the same should be done for the topologies on spaces of multilinear/alternating maps, which are in their own subfolders for now.
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-topology
|
17/17 |
Mathlib.lean,Mathlib/Analysis/Distribution/TemperedDistribution.lean,Mathlib/Analysis/LocallyConvex/PointwiseConvergence.lean,Mathlib/Analysis/LocallyConvex/Polar.lean,Mathlib/Analysis/LocallyConvex/WeakDual.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Algebra/Basic.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/MeasureTheory/Measure/FiniteMeasure.lean,Mathlib/Topology/Algebra/Module/Spaces/CharacterSpace.lean,Mathlib/Topology/Algebra/Module/Spaces/PointwiseConvergenceCLM.lean,Mathlib/Topology/Algebra/Module/Spaces/WeakBilin.lean,Mathlib/Topology/Algebra/Module/Spaces/WeakDual.lean,Mathlib/Topology/ContinuousMap/Ideals.lean |
15 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-3492 58 minutes ago |
0-3515 58 minutes ago |
0-19021 5 hours |
| 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 |
3 |
['SnirBroshi', 'github-actions'] |
nobody |
0-3356 55 minutes ago |
0-54082 15 hours ago |
0-54075 15 hours |
| 36638 |
CoolRmal author:CoolRmal |
feat: if `f` lies in a closed convex set `s` almost everywhere, then its conditional expectation also lies in `s` almost everywhere |
---
- [x] depends on: #27953
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
maintainer-merge
|
64/14 |
Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean |
1 |
10 |
['CoolRmal', 'EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
EtienneC30 assignee:EtienneC30 |
0-2343 39 minutes ago |
2-51477 2 days ago |
14-73531 14 days |
| 37557 |
vihdzp author:vihdzp |
feat: `Iic 2 = {0, 1, 2}` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
20/4 |
Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/SuccPred.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
3 |
2 |
['artie2000', 'github-actions'] |
nobody |
0-2296 38 minutes ago |
1-78086 1 day ago |
1-78079 1 day |
| 36743 |
Jun2M author:Jun2M |
feat(Combinatorics/GraphLike): introduce `GraphLike` typeclass |
Per discussion at ([#graph theory > HasAdj](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445)), This PR introduces the `GraphLike` typeclass to capture the notions like `dart` and `walk` across various graph objects, such as `SimpleGraph`, `Graph`, and `Digraph`.
The goal is that by abstracting these core components into a typeclass, we can prove these results once for all graph-like structures rather than duplicating them across different graph types.
This PR generalises #35776 to also unify `Graph`.
### Main definitions
* `GraphLike α β Gr`: A typeclass parameterized by a vertex type `α`, dart type `β` and a graph type `Gr` (with `α` as an `outParam`).
* `GraphLike.verts : Set α`: The set of vertices of the graph.
* `GraphLike.darts : Set β`: The set of darts of the graph.
* `GraphLike.Adj : α → α → Prop`: The adjacency relation, defined by default as `Nonempty (darts G u v)`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
281/0 |
Mathlib.lean,Mathlib/Combinatorics/Digraph/GraphLike.lean,Mathlib/Combinatorics/GraphLike/Basic.lean,Mathlib/Combinatorics/SimpleGraph/GraphLike.lean |
4 |
42 |
['IvanRenison', 'Jun2M', 'SnirBroshi', 'github-actions', 'lauramonk', 'mathlib-merge-conflicts'] |
nobody |
0-1581 26 minutes ago |
13-56289 13 days ago |
18-26108 18 days |
| 37560 |
pitmonticone author:pitmonticone |
feat(MeasureTheory/LpSpace): add `ContinuousMap.memLp` |
Add `ContinuousMap.memLp`: a continuous function on a compact space is in L^p.
Upstreamed from the [Carleson](https://github.com/fpvandoorn/carleson) project.
Co-authored-by: Leo Diedering <129694072+ldiedering@users.noreply.github.com>
--- |
carleson
easy
t-measure-probability
maintainer-merge
|
6/0 |
Mathlib/MeasureTheory/Function/LpSpace/ContinuousFunctions.lean |
1 |
4 |
['EtienneC30', 'github-actions'] |
EtienneC30 assignee:EtienneC30 |
0-984 16 minutes ago |
1-72699 1 day ago |
1-72692 1 day |
| 36462 |
wwylele author:wwylele |
feat(Geometry/Euclidean): integration formula for μHE |
A step towards #34826.
---
The location of `MeasureTheory.volume_eq_of_finrank_eq_one` feels a bit random. I'd like to put it in some early files, but it uses measure preserving of isometry in Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean, which is why it ended up there
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
t-euclidean-geometry
|
137/5 |
Mathlib/Geometry/Euclidean/Volume/Measure.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean,Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean |
3 |
34 |
['EtienneC30', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
EtienneC30 assignee:EtienneC30 |
0-966 16 minutes ago |
3-65263 3 days ago |
24-52839 24 days |
| 37540 |
quantumsnow author:quantumsnow |
feat(CategoryTheory/MorphismProperty/Comma): add MorphismProperty.Arrow |
This is needed for the category of topological pairs (#36621).
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
|
104/6 |
Mathlib/CategoryTheory/MorphismProperty/Comma.lean |
1 |
14 |
['chrisflav', 'github-actions', 'quantumsnow'] |
nobody |
0-571 9 minutes ago |
0-571 9 minutes ago |
0-2922 48 minutes |
| 37626 |
NoahW314 author:NoahW314 |
feat(Algebra/Algebra/Operations): add `Submodule.mul_eq_bot` |
Generalize `Ideal.mul_eq_bot` to work for submodules as well.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
13/9 |
Mathlib/Algebra/Algebra/Operations.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Spectrum/Prime/Basic.lean |
4 |
3 |
['artie2000', 'github-actions'] |
nobody |
0-432 7 minutes ago |
0-38776 10 hours ago |
0-40760 11 hours |
| 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 |
73/0 |
Mathlib.lean,Mathlib/Topology/SmallInductiveDimension.lean |
2 |
3 |
['FernandoChu', 'github-actions', 'vihdzp'] |
nobody |
0-334 5 minutes ago |
0-390 6 minutes ago |
0-1318 21 minutes |
| 36357 |
yuanyi-350 author:yuanyi-350 |
feat(Analysis/Deriv): add some lemmas for `iteratedDeriv` |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
84/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 |
8 |
['github-actions', 'j-loreaux', 'sgouezel', 'urkud', 'yuanyi-350'] |
sgouezel assignee:sgouezel |
0-99 1 minute ago |
0-99 1 minute ago |
7-84885 7 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 |
| 36443 |
Fieldnote-Echo author:Fieldnote-Echo |
feat(Combinatorics/SimpleGraph): add SimpleGraph.ball (open metric ball) |
Add `SimpleGraph.ball`, the open ball in the graph extended metric.
## Design decisions
- **Open ball** (strict `<`, not `≤`): `ball c ⊤` coincides with the connected
component of `c`, whereas a closed ball would give `closedBall c ⊤ = univ`.
- **Named `SimpleGraph.ball`** (not `eball`): since `dist`-valued balls are less
natural for disconnected graphs, the `e` prefix is unnecessary.
- **Graph-specific** (not via `PseudoEMetricSpace`): avoids importing `ℝ`.
AI assistance: Claude (Opus 4.6) helped draft and iterate on the implementation. I reviewed the code line by line and vouch for the final contents.
Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/SimpleGraph.20metric.20balls/with/577846803).
---
[](https://gitpod.io/from-referrer/) |
t-combinatorics
new-contributor
LLM-generated
|
59/3 |
Mathlib/Combinatorics/SimpleGraph/Metric.lean |
1 |
36 |
['Fieldnote-Echo', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'lauramonk', 'vlad902'] |
nobody |
18-83166 18 days ago |
24-81678 24 days ago |
24-81671 24 days |
| 36786 |
SproutSeeds author:SproutSeeds |
feat(DoubleCounting): parity of odd-degree vertices in bipartite incidence |
Adds `odd_card_filter_odd_bipartiteAbove_iff_odd_card_filter_odd_bipartiteBelow` to
`Mathlib.Combinatorics.Enumerative.DoubleCounting`.
This is the small parity-helper first step for #25231.
Validation:
- `lake build Mathlib.Combinatorics.Enumerative.DoubleCounting`
Supersedes closed #36077 after replaying the helper cleanly on current `master`.
AI usage: used Codex for branch recovery, replay onto current `master`, and draft wording;
final code choices and verification by me.
|
new-contributor
t-combinatorics
large-import
|
17/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean |
1 |
2 |
['github-actions'] |
nobody |
17-42125 17 days ago |
17-42208 17 days ago |
17-42201 17 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'] |
YaelDillies assignee:YaelDillies |
14-79261 14 days ago |
16-788 16 days ago |
29-27371 29 days |
| 36785 |
hommmmm author:hommmmm |
feat(RingTheory/Localization): Nagata's criterion for primality in localization away |
## Summary
- Add `dvd_of_mem_span_singleton_localization`: if `p` is prime and `p ∤ x`, then
membership in the span of the image of `x` in `R[1/p]` implies divisibility by `x`.
- Add `prime_of_prime_in_localization` (Nagata's criterion): if `p` is prime, `x` is
irreducible, and the image of `x` in `R[1/p]` is prime, then `x` is prime.
## References
- [Stacks Project, Tag 0AFU](https://stacks.math.columbia.edu/tag/0afu)
## AI Disclosure
This code is written without AI, then uses Claude Code with cameronfreer's [Lean4-skills](https://github.com/cameronfreer/lean4-skills) (specifically, the `review`, `refactor`, and `golf` workflow) for style changes, refactoring and golfing.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
72/0 |
Mathlib.lean,Mathlib/RingTheory/Localization/Away/Prime.lean |
2 |
4 |
['chrisflav', 'github-actions', 'hommmmm'] |
chrisflav assignee:chrisflav |
12-65428 12 days ago |
12-65428 12 days ago |
17-5642 17 days |
| 34875 |
banrovegrie author:banrovegrie |
feat(LinearAlgebra/Matrix): add Sherman-Morrison formula |
Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap.
- Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}`
- Add `Matrix.inv_sub_vecMulVec`: subtraction variant
- Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses
## Test plan
- [x] `lake build` passes
- [x] Lines within 100 char limit
- [x] All declarations have docstrings |
t-algebra
new-contributor
label:t-algebra$ |
135/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean |
2 |
11 |
['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
eric-wieser assignee:eric-wieser |
12-47593 12 days ago |
57-82360 57 days ago |
57-82353 57 days |
| 36787 |
hommmmm author:hommmmm |
feat(RingTheory/LocalRing): Krull dimension results for maximal ideal of local ring |
## Summary
This PR adds two results connecting the Krull dimension of a local ring to its maximal ideal:
* `IsLocalRing.ringKrullDim_eq_zero_of_maximalIdeal_eq_bot`: A local ring whose maximal ideal is `⊥` has Krull dimension zero.
* `IsLocalRing.exists_mem_maximalIdeal_not_mem_sq`: In a Noetherian local ring of positive Krull dimension, there exists an element in the maximal ideal that is not in its square.
The second result follows from Nakayama's lemma: if every element of the maximal ideal `𝔪` were in `𝔪²`, then `𝔪 = 𝔪²`, and Nakayama gives `𝔪 = ⊥`, contradicting positive dimension.
## New file
* `Mathlib/RingTheory/LocalRing/MaximalIdeal/KrullDimension.lean`
## Acknowledgements
Thanks to Dora Kassabova and Leopold Mayer for edit suggestions.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
57/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/MaximalIdeal/KrullDimension.lean |
2 |
10 |
['NoahW314', 'github-actions', 'hommmmm', 'tb65536', 'wwylele'] |
chrisflav assignee:chrisflav |
12-47577 12 days ago |
16-64901 16 days ago |
17-40669 17 days |
| 36789 |
hommmmm author:hommmmm |
feat(RingTheory/Ideal/Height): prime ideal determined by height among overideals |
## Summary
- Add `Ideal.eq_of_le_of_height_eq`: a prime ideal of finite height is equal to any ideal of the same height that contains it.
## Notes
This is a direct consequence of `Ideal.height_strict_mono_of_is_prime`: if `I` were strictly contained in `J`, their heights would differ.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
10/0 |
Mathlib/RingTheory/Ideal/Height.lean |
1 |
7 |
['github-actions', 'hommmmm', 'tb65536'] |
erdOne assignee:erdOne |
12-47576 12 days ago |
17-39613 17 days ago |
17-39606 17 days |
| 34477 |
spanning-tree author:spanning-tree |
refactor(Order): make CompletePartialOrder extend OrderBot |
Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly.
Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor.
See discussion in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20complete.20partial.20order.20and.20domain.20theory.20formalization).
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
15/1 |
Mathlib/Order/CompletePartialOrder.lean |
1 |
3 |
['Citronhat', 'github-actions', 'mathlib-merge-conflicts'] |
bryangingechen assignee:bryangingechen |
11-47663 11 days ago |
34-562 34 days ago |
54-62112 54 days |
| 36720 |
YanYablonovskiy author:YanYablonovskiy |
feat(Order): `OrderType.lift` and more order type API |
Adding the universe lifting operation to `OrderType` , addresses a 'TODO' .
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
41/2 |
Mathlib/Order/Types/Defs.lean |
1 |
23 |
['YaelDillies', 'YanYablonovskiy', 'github-actions', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
11-47653 11 days ago |
12-17142 12 days ago |
13-67091 13 days |
| 37109 |
zeekmartin author:zeekmartin |
feat(SimpleGraph): card of common neighbors equals card of triangles containing edge |
Adds `SimpleGraph.card_commonNeighbors_eq_card_triangles_containing_edge`
to `Mathlib/Combinatorics/SimpleGraph/Clique.lean`.
For adjacent vertices `u v` in a finite simple graph, establishes the bijection
between common neighbors and 3-cliques containing the edge `{u, v}`:
```lean
theorem card_commonNeighbors_eq_card_triangles_containing_edge
{u v : α} (huv : G.Adj u v) :
(G.commonNeighbors u v).toFinset.card =
((G.cliqueFinset 3).filter fun s => {u, v} ⊆ s).card
```
This connects `commonNeighbors` (defined in `Basic.lean`) with `cliqueFinset` —
a gap not previously covered in `Clique.lean`.
**AI disclosure**: Claude (Anthropic) was used as an assistant during the development of this proof. It helped with the initial proof structure and tactic suggestions. The proof was reviewed and validated step by step by the author, who can vouch for all the content. The mathematical idea originates from the author's prior Lean 4 work on spectral graph theory (github.com/zeekmartin/topostability-lean4).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
LLM-generated
new-contributor
|
61/0 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
7 |
['SnirBroshi', 'github-actions', 'zeekmartin'] |
nobody |
10-73084 10 days ago |
10-80243 10 days ago |
10-80236 10 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'] |
awainverse assignee:awainverse |
10-22179 10 days ago |
20-31879 20 days ago |
20-31872 20 days |
| 32744 |
NoneMore author:NoneMore |
feat(ModelTheory/Definablity): add `DefinableFun` definition and lemmas |
This PR adds two basic shapes of definable sets and `DefinableFun` definition with relevant lemmas.
The main result is `Set.Definable.preimage_of_map` asserting that the preimage of a definable set under a definable map is definable.
There are also some tool lemmas derived by the preimage lemma.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
147/0 |
Mathlib/ModelTheory/Definability.lean |
1 |
60 |
['NoneMore', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'staroperator'] |
nobody |
10-20054 10 days ago |
10-20035 10 days ago |
105-64662 105 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 |
9-86225 9 days ago |
14-24813 14 days ago |
16-7662 16 days |
| 35600 |
yisiox author:yisiox |
feat(Computability): add Kleene's algorithm to prove regular languages have regex matching |
This PR adds a proof that every regular language has some regular expression matching it.
This was achieved by the following constructions and proofs of their correctness
- Define `toSingleεNFA` to transform any epsilon-NFA to an equivalent one with only a single start and accept state (and the type is `ExtendedState`)
- Define a bijection between `ExtendedState` and `Fin (FinEnum.card (ExtendedState σ))` to index the states
- Define `pathRegex` which implements Kleene's algorithm
- Define `toRegex` which takes an epsilon-NFA, applies `toSingleεNFA` on it, and computes the corresponding regex using `pathRegex`
The proofs of correctness chain together to yield `(toRegex M).matches' = M.accepts` which asserts the direction of Kleene's theorem required.
---
As in [#mathlib4 > Regular languages: the review queue @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Regular.20languages.3A.20the.20review.20queue/near/573958148), this overlaps with #15654, which uses GNFA instead but has been inactive.
[](https://gitpod.io/from-referrer/)
|
t-computability
new-contributor
|
492/0 |
Mathlib/Computability/EpsilonNFA.lean |
1 |
15 |
['YaelDillies', 'github-actions', 'yisiox'] |
YaelDillies assignee:YaelDillies |
9-23685 9 days ago |
11-4849 11 days ago |
30-7025 30 days |
| 33520 |
NoneMore author:NoneMore |
feat(ModelTheory/ElementarySubstructures): add a variant of Tarski-Vaught test taking sets as input |
There should exist an `ElementarySubstructure.copy` such that we can directly bundle the set itself instaed of its closure as an elementary substructure.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
91/0 |
Mathlib/ModelTheory/ElementarySubstructures.lean |
1 |
3 |
['Citronhat', 'NoneMore', 'github-actions'] |
fpvandoorn assignee:fpvandoorn |
9-16238 9 days ago |
9-16302 9 days ago |
91-8310 91 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'] |
JovanGerb assignee:JovanGerb |
9-14292 9 days ago |
16-18029 16 days ago |
16-21140 16 days |
| 36955 |
NoneMore author:NoneMore |
chore(ModelTheory/Types): expose `T` in `typesWith` and move it to `Theory` |
Make the `T : L.Theory` argument explicit in `typesWith` and place the definition in `FirstOrder.Language.Theory` to enable dot notation.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
24/19 |
Mathlib/ModelTheory/Topology/Types.lean,Mathlib/ModelTheory/Types.lean |
2 |
2 |
['github-actions'] |
nobody |
9-3468 9 days ago |
13-80233 13 days ago |
13-80226 13 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
|
269/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Order/Floor.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean |
3 |
8 |
['Vilin97', 'copilot-pull-request-reviewer', 'dagurtomas', 'github-actions', 'wwylele'] |
PatrickMassot assignee:PatrickMassot |
6-78543 6 days ago |
7-79409 7 days ago |
16-23083 16 days |
| 35976 |
Phelixh author:Phelixh |
feat: add add Liu's uncertainty theory foundations (core/distribution/process modules) |
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
2374/0 |
Mathlib.lean,Mathlib/Uncertainty/Base.lean,Mathlib/Uncertainty/BaseCore.lean,Mathlib/Uncertainty/BaseDistribution.lean,Mathlib/Uncertainty/BaseProcess.lean,Mathlib/Uncertainty/Uncertainty.lean |
6 |
26 |
['Phelixh', 'copilot-pull-request-reviewer', 'github-actions'] |
nobody |
6-85 6 days ago |
6-152 6 days ago |
6-5442 6 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 |
221/232 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
5-81382 5 days ago |
5-81406 5 days ago |
7-27215 7 days |
| 35069 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): simple polygons and boundary map |
This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution.
- [x] depends on: #34598
---
|
new-contributor
t-euclidean-geometry
LLM-generated
|
360/0 |
Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean |
4 |
30 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'jsm28', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] |
jsm28 assignee:jsm28 |
5-63953 5 days ago |
37-73516 37 days ago |
40-21395 40 days |
| 37006 |
hakii6 author:hakii6 |
feat(LinearAlgebra/Matrix/Block, Analysis/Normed/Algebra/MatrixExponential): add BlockTriangular.pow and BlockTriangular.exp |
# Summary
Add BlockTriangular.pow and BlockTriangular.exp for proving "det (exp A) = exp (trace A)"
# Which part using LLM
The part I used LLM is for
1. Searching duplicated theorems and lemmas I may missed (I already search them myself first).
2. Help me handle the "variables and signatures", the "letI" part, some of lemmas and theorems trivial but hard to find the true one.
3. After I finished, let them helped me check the structure match the disciplines of mathlib.
4. Check the steps PR match the disciplines of mathlib
Most things above are done by me first, then let them to make sure I'm not missing something.
# More context
More context can be found in a topic in "# new member" in Zulip
[#new members > (Matrix and NormedSpace.exp) | det (exp A) = exp (trace A)](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/.28Matrix.20and.20NormedSpace.2Eexp.29.20.7C.20det.20.28exp.20A.29.20.3D.20exp.20.28trace.20A.29/with/580964688)
|
new-contributor
LLM-generated
|
54/1 |
Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/LinearAlgebra/Matrix/Block.lean,Mathlib/Topology/Instances/Matrix.lean |
3 |
59 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'hakii6', 'wwylele'] |
nobody |
5-53482 5 days ago |
7-56450 7 days ago |
12-47668 12 days |
| 37299 |
XC0R author:XC0R |
feat(NumberTheory): Chebyshev's lower bound on primorial |
## Summary
Prove `primorial(n) ≥ 2^(n/2)` for all `n ≥ 2` (Chebyshev's 1852 lower bound). This is the lower bound complement to `primorial_le_four_pow`. Addresses the TODO at `Chebyshev.lean` line 50: "Prove Chebyshev's lower bound."
### New file: `Mathlib/NumberTheory/PrimorialLowerBound.lean`
**Main theorems:**
- `two_pow_le_primorial`: `2 ^ n ≤ primorial (2 * n)` for `n ≥ 29`
- `two_pow_div_two_le_primorial`: `2 ^ (n / 2) ≤ primorial n` for `n ≥ 2`
**Key intermediates:**
- `centralBinom_le_pow_mul_primorial`: `C(2n,n) ≤ (2n)^{π(√(2n)+1)} * primorial(2n)`
- `eight_mul_sq_add_le_two_pow`: `8u² + 16u + 8 ≤ 2^u` for `u ≥ 10`
### Proof technique
Central binomial decomposition: from `four_pow_lt_mul_centralBinom` and `factorization_choose_le_log`, bound `C(2n,n)` above by `(2n)^{π(√(2n)+1)} * primorial(2n)`. Rearranging gives `primorial(2n) ≥ 2^n` for `n ≥ 29`. Base cases by `norm_num` + `decide`, large `n` analytically via `√n` factoring.
### AI disclosure
Claude (Anthropic) was used as a coding assistant for Lean tactic exploration, file structuring, and CI debugging. All proof strategy, mathematical content, and final code have been reviewed and are understood by the author. |
t-number-theory
new-contributor
|
234/0 |
Mathlib.lean,Mathlib/NumberTheory/PrimorialLowerBound.lean,Mathlib/NumberTheory/SmoothNumbers.lean |
3 |
21 |
['MichaelStollBayreuth', 'Parcly-Taxel', 'XC0R', 'github-actions', 'wwylele'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
5-43093 5 days ago |
7-44990 7 days ago |
7-45098 7 days |
| 35316 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 4/5) |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
85/0 |
Mathlib.lean,Mathlib/NumberTheory/Transcendental/AnalyticPart.lean |
2 |
12 |
['MichaelStollBayreuth', 'SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'mkaratarakis'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
4-1650 4 days ago |
4-1705 4 days ago |
8-20155 8 days |
| 35402 |
samueloettl author:samueloettl |
feat(Dynamics/BirkhoffSum): birkhoffAverage const |
---
I think this is useful and one of these should be a simp lemma.
I'm not really sure if I got the naming of the theorems correct.
When generalizing to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
|
22/0 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
6 |
['Maldooor', 'github-actions'] |
ADedecker assignee:ADedecker |
3-85890 3 days ago |
40-57322 40 days ago |
47-4203 47 days |
| 37138 |
dtumad author:dtumad |
feat(Data/FinEnum): instances for standard signed and unsigned integer types |
Adds `FinEnum` instances for `UIntN`/`IntN` for various `N`, and for platform sized integers.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
45/0 |
Mathlib/Data/FinEnum.lean |
1 |
8 |
['dtumad', 'github-actions', 'joneugster', 'linesthatinterlace'] |
joneugster assignee:joneugster |
3-81752 3 days ago |
3-81752 3 days ago |
8-31578 8 days |
| 35653 |
pepamontero author:pepamontero |
feat: add ChartedSpace structure on orbit space |
Add topological preliminaries for properly discontinuous group actions, and use them to equip the orbit space `orbitRel.Quotient G M` with a `ChartedSpace` structure.
In particular:
- Show that the quotient map `Quotient.mk _ : M → orbitRel.Quotient G M` is a covering map and hence a local homeomorphism.
- Construct chosen local inverses of the quotient map and establish properties over them.
- Define a `ChartedSpace` instance on the quotient by composing these local inverses with charts of M.
This started as an ItaLean2025 project; here is the [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Quotient.20Manifolds/with/575121158) dedicated to it.
---
|
new-contributor
t-differential-geometry
|
186/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Instances/OrbitSpace.lean,Mathlib/Topology/Algebra/OrbitSpace.lean |
3 |
13 |
['Rida-Hamadani', 'github-actions'] |
PatrickMassot, grunweg, ocfnash, sgouezel assignee:ocfnash assignee:grunweg assignee:sgouezel assignee:PatrickMassot |
3-79965 3 days ago |
40-66691 40 days ago |
40-67359 40 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 |
3-79956 3 days ago |
3-82110 3 days ago |
4-49117 4 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.
(1/2) 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 |
66 |
['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] |
urkud assignee:urkud |
3-79863 3 days ago |
28-2400 28 days ago |
34-55110 34 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 |
3-58047 3 days ago |
3-59067 3 days ago |
17-39797 17 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 |
3-47188 3 days ago |
12-65429 12 days ago |
17-14629 17 days |
| 36968 |
NoahW314 author:NoahW314 |
feat: add missing IndiscreteTopology instances |
Add several instances for the IndiscreteTopology. These instances are chosen as they have short proofs and imply many of the more common instances like `NormalSpace` and `LocPathConnectedSpace`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-topology
|
21/0 |
Mathlib/Topology/AlexandrovDiscrete.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Irreducible.lean,Mathlib/Topology/Metrizable/Basic.lean |
4 |
3 |
['felixpernegger', 'github-actions'] |
PatrickMassot assignee:PatrickMassot |
3-39550 3 days ago |
3-39604 3 days ago |
13-19734 13 days |
| 37193 |
JJYYY-JJY author:JJYYY-JJY |
doc(metric): add main results sections for metric spaces |
Add Main results sections to metric-space definition modules
This PR improves discoverability in the metric-space definition modules by adding curated Main results sections and by fixing a stale internal file reference.
Add a Main results section to the pseudo-metric definitions module, highlighting key constructions and foundational lemmas.
Add a Main results section to the metric-space definitions module, highlighting core constructions and distance-based characterization lemmas.
Update the implementation note to point to the current pseudo-metric definitions path, clarifying where elementary pseudometric facts live.
This is a docstring-only change:
No declarations, theorem names, imports, instances, or proofs are changed;
only module docstrings in the two metric-space definition files are edited.
---
[](https://gitpod.io/from-referrer/) |
t-topology
new-contributor
|
17/3 |
Mathlib/Topology/MetricSpace/Defs.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean |
2 |
6 |
['copilot-pull-request-reviewer', 'felixpernegger', 'github-actions'] |
j-loreaux assignee:j-loreaux |
3-28487 3 days ago |
3-28549 3 days ago |
4-28871 4 days |
| 33662 |
Pjotr5 author:Pjotr5 |
feat(Algebra/Order/BigOperators/Expect): add lemmas and strict variants |
### Summary
- Combine `le_expect_nonempty_of_subadditive` and `le_expect_of_subadditive` into a single lemma `le_expect_of_subadditive`.
The extra assumptions `(hs : s.Nonempty)` and `(h_zero : m 0 = 0)` are unnecessary (since `m 0 = 0` follows from `h_div`).
This requires a small downstream update to `Mathlib/Analysis/RCLike/Basic.lean` (`norm_expect_le`).
- Add strict-inequality variants:
`expect_lt_expect`, `expect_lt`, `lt_expect`.
- Add existence lemmas:
`exists_le_of_expect_le_expect`, `exists_le_of_le_expect`, `exists_le_of_expect_le`,
and `exists_lt_of_expect_lt_expect`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
46/16 |
Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Analysis/RCLike/Basic.lean |
2 |
7 |
['Pjotr5', 'b-mehta', 'felixpernegger', 'github-actions'] |
b-mehta assignee:b-mehta |
3-20095 3 days ago |
12-62703 12 days ago |
88-17836 88 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 |
3-4100 3 days ago |
14-83148 14 days ago |
14-83970 14 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'] |
ADedecker assignee:ADedecker |
2-81955 2 days ago |
2-83129 2 days ago |
3-37117 3 days |
| 37375 |
NoneMore author:NoneMore |
feat(SetTheory/Ordinal/FixedPointApproximants): add zero and limit lemmas for approximants |
Add helper lemmas `lfpApprox_zero`, `lfpApprox_limit`, and the corresponding `gfpApprox` lemmas by duality.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
new-contributor
maintainer-merge
|
50/26 |
Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean |
1 |
20 |
['NoneMore', 'YaelDillies', 'github-actions', 'vihdzp'] |
nobody |
2-81166 2 days ago |
3-80702 3 days ago |
4-50971 4 days |
| 37456 |
Robertboy18 author:Robertboy18 |
feat(LinearAlgebra/AffineSpace): add Desargues's theorem |
This PR adds an affine (parallel) version of Desargues's theorem!
**Main changes**
- New file `Mathlib/LinearAlgebra/AffineSpace/Desargues.lean` with
`parallel_third_side_of_perspective`: if two triangles are in perspective from a point `S` and
two pairs of corresponding sides are parallel, then the third pair of sides is parallel.
- Add the corresponding `public import` to `Mathlib.lean`.
- Update `docs/100.yaml` (entry #87) to point to the new declaration.
**High level Proof idea is from the rocq repository!**
Compare side vectors via `exists_eq_smul_of_parallel` for the two given pairs of parallel sides; the
shared comparison along `SA` forces the same scalar, yielding parallelism of the third sides.
Tests: `lake build Mathlib.LinearAlgebra.AffineSpace.Desargues`! |
t-algebra
new-contributor
label:t-algebra$ |
159/0 |
Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/Desargues.lean,docs/100.yaml |
3 |
8 |
['Robertboy18', 'SnirBroshi', 'copilot-pull-request-reviewer', 'github-actions', 'wwylele'] |
nobody |
2-52522 2 days ago |
3-63043 3 days ago |
3-71276 3 days |
| 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
|
188/2 |
Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/MeanValue.lean,Mathlib/Topology/Algebra/GroupWithZero.lean,Mathlib/Topology/Algebra/Monoid.lean |
4 |
9 |
['CoolRmal', 'Deep0Thinking', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'sgouezel'] |
urkud assignee:urkud |
2-47614 2 days ago |
3-6646 3 days ago |
4-51875 4 days |
| 36917 |
iarnoldy author:iarnoldy |
feat(LinearAlgebra/CliffordAlgebra): bivector Lie subalgebra |
Define the submodule of grade-n elements (n-vectors) in a Clifford algebra
and show that bivectors (n = 2) form a `LieSubalgebra` under the commutator
bracket. This gives the standard construction of so(Q) from Cl(Q).
Main definitions:
* `CliffordAlgebra.nvector` — grade-n submodule, spanned by n-fold products of ι
* `CliffordAlgebra.bivector` — nvector 2 Q, the bivector submodule
* `CliffordAlgebra.bivectorLieSubalgebra` — LieSubalgebra of bivectors
Main results:
* `CliffordAlgebra.lie_ι_mul_ι` — explicit commutator formula for bivector generators
* `CliffordAlgebra.lie_mem_bivector` — bracket closure of the bivector submodule
* `CliffordAlgebra.bivector_le_evenOdd_zero` — bivectors lie in the even part
The `LieModule` instance for `CliffordAlgebra Q` acting on itself is provided
explicitly (`instLieModuleSelf`) because automatic synthesis exceeds the default
heartbeat limit.
AI disclosure: This code was generated with AI assistance (Claude, Anthropic).
The submitter directed the construction and QA but is not a Lean programmer.
The mathematical content is classical (Doran & Lasenby, Ch. 3). Extra review
scrutiny is welcomed.
Co-authored-by: Claude
---
Open design questions for reviewers:
1. **Naming**: Is `nvector` the right name? Eric Wieser suggested generalizing
to n-vectors. Alternatives: `ιProd`, `grade`, or following the `exteriorPower`
pattern via `equivExterior` pullback.
2. **Scalar contamination**: The spanning set `{ι m₁ * ι m₂}` includes
`ι m * ι m = Q(m)` (scalars). Eric suggested pulling back `exteriorPower`
through `equivExterior` for pure grades (requires `Invertible (2 : R)`).
Happy to rework if that's preferred.
3. **instLieModuleSelf**: Should this be an upstream issue rather than a
local workaround? @ocfnash
4. **ι_mul_ι_comm'**: This may duplicate existing API (`ι_mul_ι_comm b a`
plus `polar_comm`). Happy to inline if reviewers prefer.
Discussed on Zulip: https://leanprover.zulipchat.com (Is there code for X? thread) |
new-contributor
t-algebra
LLM-generated
label:t-algebra$ |
338/0 |
Mathlib.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Bivector.lean |
2 |
2 |
['github-actions'] |
eric-wieser assignee:eric-wieser |
2-47601 2 days ago |
14-53969 14 days ago |
14-55187 14 days |
| 35329 |
BryceT233 author:BryceT233 |
feat(Data/Finsupp): add computational lemmas for cons and single |
This PR introduces `cons_injective2`, `cons_eq_single_zero_iff` and `cons_eq_single_succ_iff`, which are helper lemmas designed to facilitate calculations (or simplification) of equalities involving `Finsupp.cons` and `Finsupp.single`.
Co-authored-by: Wenrong Zou <141128015+WenrongZou@users.noreply.github.com>
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
24/8 |
Mathlib/Data/Finsupp/Fin.lean |
1 |
6 |
['BryceT233', 'WenrongZou', 'github-actions'] |
joneugster assignee:joneugster |
2-23931 2 days ago |
2-48162 2 days ago |
48-19570 48 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.
---
According to the docstring, the purpose of `Mathlib.Algebra.Field.Power`
is to define `Field` with minimal imports. But after this PR, Power.lean
does not rely on `Mathlib.Algebra.Field.Defs` any more. Arguably, it
could be deprecated. The two results in the file could be stated in
`Mathlib.Algebra.Ring.Int.Parity` without any extra imports. Should we implement
this in the current or an additional PR?
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$ |
16/10 |
Mathlib/Algebra/Field/Power.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean |
2 |
6 |
['eric-wieser', 'github-actions', 'goliath-klein'] |
nobody |
2-19980 2 days ago |
6-70709 6 days ago |
6-73501 6 days |
| 34854 |
GrigorenkoPV author:GrigorenkoPV |
chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` |
---
Split off from #34853
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
227/194 |
Mathlib.lean,Mathlib/Combinatorics/Enumerative/Catalan.lean,Mathlib/Combinatorics/Enumerative/Catalan/Basic.lean,Mathlib/Combinatorics/Enumerative/Catalan/Tree.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/RingTheory/PowerSeries/Catalan.lean |
6 |
5 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
2-19970 2 days ago |
17-80761 17 days ago |
37-70653 37 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 |
2-18792 2 days ago |
2-18828 2 days ago |
2-47342 2 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
|
41/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Pigeonhole.lean |
2 |
12 |
['IvanRenison', 'cjrl', 'ghseeli', 'github-actions', 'j-loreaux'] |
nobody |
1-46637 1 day ago |
1-46637 1 day ago |
7-49052 7 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 |
1-43785 1 day ago |
1-43843 1 day ago |
15-54164 15 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 |
27 |
['KryptosAI', 'eric-wieser', 'github-actions', 'vihdzp'] |
ocfnash assignee:ocfnash |
1-43785 1 day ago |
1-43843 1 day ago |
12-76910 12 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 |
1-16999 1 day ago |
1-17046 1 day ago |
59-506 59 days |
| 36421 |
ROTARTSI82 author:ROTARTSI82 |
feat(RingTheory/IsAdjoinRoot): add mkOfAdjoinEqTop' |
Alternative hypothesis to existing theorem: prove the result from a `Module.Free `hypothesis instead of `IsIntegrallyClosed`. If `α` generates `S` as an algebra, then `S` is given by adjoining a root of `minpoly R α`.
---
Hello, we are the Algebraic Geometry group from the UW Math AI lab, and this is our first PR! This definition of `mkOfAdjoinEqTop'` generalizes the existing `mkOfAdjoinEqTop` and shows the result from `Module.Free` instead of `IsIntegrallyClosed`. It is used in future results that we would like to upstream at https://github.com/uw-math-ai/monogenic-extensions, which is a project to formalize lemmas 3.1 and 3.2 from https://arxiv.org/abs/2503.07846.
Co-authored-by: George Peykanu
Co-authored-by: Bryan Boehnke
Co-authored-by: Bianca Viray <67076332+b-viray@users.noreply.github.com>
-->
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-ring-theory
|
47/0 |
Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/RingTheory/IsAdjoinRoot.lean |
2 |
5 |
['ROTARTSI82', 'artie2000', 'b-viray', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
1-4765 1 day ago |
25-48966 25 days ago |
25-48959 25 days |
| 34227 |
stepan2698-cpu author:stepan2698-cpu |
feat(Combinatorics/Schnirelmann): if sum of densities is at least one, the sumset covers the naturals |
Proves an outstanding TODO item from Mathlib.Combinatorics.Schnirelmann : shows that if the sum of two densities is at least one, the sumset covers the positive naturals.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
46/1 |
Mathlib/Combinatorics/Schnirelmann.lean |
1 |
15 |
['FLDutchmann', 'YaelDillies', 'YanYablonovskiy', 'github-actions', 'grunweg', 'kbuzzard', 'stepan2698-cpu'] |
b-mehta assignee:b-mehta |
0-81919 22 hours ago |
1-39730 1 day ago |
72-66493 72 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
|
329/195 |
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 |
24 |
['CBirkbeck', 'SmwYin', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-79288 22 hours ago |
2-86229 2 days ago |
2-86256 2 days |
| 34851 |
dennj author:dennj |
feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations |
This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization:
- `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i`
- `dotProduct_transpose_mulVec`: bilinear form symmetry `x ⬝ᵥ Aᵀ *ᵥ y = y ⬝ᵥ A *ᵥ x`
- `mul_diagonal_mulVec`: column-weighted sum `(A * diagonal d) *ᵥ x = ∑ i, (d i * x i) • A.col i`
These are basic linear algebra identities involving diagonal matrices and vector operations that appear frequently in machine learning contexts (weighted inner products, attention mechanisms, feature scaling, diagonal preconditioning). |
t-data
new-contributor
|
22/0 |
Mathlib/Data/Matrix/Mul.lean |
1 |
7 |
['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] |
TwoFX assignee:TwoFX |
0-74122 20 hours ago |
58-63128 58 days ago |
58-63121 58 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 |
0-68815 19 hours ago |
0-75076 20 hours ago |
73-43861 73 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.WeakDual` into `WeakDual` and `WeakSpace`:
The `WeakSpace` type, its instances, and `toWeakSpace`/`toWeakSpaceCLM` move to a new
`Topology.Algebra.Module.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.WeakSpace
- toWeakSpace -> Mathlib.Topology.Algebra.Module.WeakSpace
- toWeakSpaceCLM -> Mathlib.Topology.Algebra.Module.WeakSpace
CC @j-loreaux
---
- [ ] depends on: #37314 |
new-contributor
file-removed
|
192/114 |
Mathlib.lean,Mathlib/Analysis/LocallyConvex/WeakBilin.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/WeakDual.lean,Mathlib/Topology/Algebra/Module/WeakSpace.lean |
6 |
5 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-62963 17 hours ago |
0-62966 17 hours ago |
9-21586 9 days |
| 33463 |
khwilson author:khwilson |
feat(Mathlib/Analysis/Polynomial/MahlerMeasure): Mahler Measure for other rings |
Define `mahlerMeasure'` which allows you specify a norm preserving map `v` from any `NormedRing A` (or more general) to `ℂ`. Also provide wrappers around the main `mahlerMeasure` lemmas that are used for estimation.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
maintainer-merge
|
98/5 |
Mathlib/Analysis/Polynomial/MahlerMeasure.lean,Mathlib/NumberTheory/MahlerMeasure.lean |
2 |
40 |
['github-actions', 'j-loreaux', 'khwilson', 'kim-em', 'plp127', 'vlad902'] |
nobody |
0-62241 17 hours ago |
1-2323 1 day ago |
1-7378 1 day |
| 37526 |
SabrinaJewson author:SabrinaJewson |
feat(Order/ConditionallyCompleteLattice): Generalize and add cbiSup/cbiInf theorems |
Generalize some theorems concerning cbiSup (`⨆ i, ⨆ h : p i, f i h`) by removing superfluous `Nonempty` typeclasses and parameters. It would be nice to also remove the `BoundedAbove` typeclass, but this can only be done with linear orders because junk values of lattices are not currently specified[0].
[0]: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Moving.20.60csSup.60.20junk.20into.20.60ConditionallyCompleteLattice.60/near/583143345
In the absence of that, we provide the theorem `cbiSup_of_not_bddAbove` defining the junk values of `cbiSup` in the linear order case.
Add theorem `cbiSup_id`, showing that `⨆ i ∈ s, i = sSup s`.
Add theorem `cbiSup_eq_of_forall_not` as a counterpart to `cbiSup_eq_of_forall` when the condition is never true, and a corollary `cbiSup_empty` for the obvious empty set case.
Use the new theorems to shorten the proof of `cbiSup_eq_of_not_forall`.
Give proper names to the prime versions of `ciSup_subtype` and `ciInf_subtype`.
Moves:
- `ciSup_subtype'` -> `cbiSup_eq_ciSup_subtype`
- `ciInf_subtype'` -> `cbiInf_eq_ciInf_subtype`
- `ciSup_subtype''` -> `ciSup_subtype_fun`
- `ciInf_subtype''` -> `ciInf_subtype_fun`
---
Spun off from the theorems I needed in #37470. Let me know if I should split it up further.
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
maintainer-merge
|
73/60 |
Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/ConditionallyCompletePartialOrder/Indexed.lean,scripts/nolints_prime_decls.txt |
3 |
9 |
['SabrinaJewson', 'SnirBroshi', 'YaelDillies', 'github-actions', 'vihdzp'] |
nobody |
0-54126 15 hours ago |
0-53935 14 hours ago |
2-51699 2 days |
| 37471 |
NoahW314 author:NoahW314 |
feat(RingTheory/MvPolynomial/MonomialOrder): add `leadingTerm_mul` lemma |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
7/0 |
Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
1 |
7 |
['Hagb', 'Maldooor', 'NoahW314', 'WilliamCoram', 'github-actions'] |
nobody |
0-49672 13 hours ago |
3-36449 3 days ago |
3-36442 3 days |
| 37279 |
imalinowskip author:imalinowskip |
feat(Probability): multivariate CLT (and Cramèr-Wold) |
Depends on #36208
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
672/0 |
Mathlib.lean,Mathlib/Probability/CramerWold.lean,Mathlib/Probability/MultivariateCentralLimitTheorem.lean |
3 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
RemyDegenne assignee:RemyDegenne |
0-47632 13 hours ago |
0-68870 19 hours ago |
0-68863 19 hours |
| 37583 |
huaizhangchu author:huaizhangchu |
feat(Probability): add mean and variance of Poisson distribution |
This PR adds the mean and variance of the Poisson distribution over ℕ.
### Main results
- `poissonMeasure_mean`: the mean of `poissonMeasure r` equals `r`
- `poissonMeasure_moment_two`: the second moment equals `r² + r`
- `poissonMeasure_variance`: the variance equals `r`
### Implementation notes
The moments are computed via descending factorial moments. We first prove `hasSum` lemmas for `E[X]` and `E[X(X-1)]`, then obtain `E[X²] = E[X(X-1)] + E[X] = r² + r`, from which the variance follows.
### Related lemmas
- `hasSum_poissonMeasure_nat`: weighted sum for the mean
- `hasSum_poissonMeasure_descFactorial_two`: weighted sum for the second descending factorial moment
- `hasSum_poissonMeasure_sq`: weighted sum for the second moment
- `memLp_two_nat_poissonMeasure`: integrability condition for variance |
t-measure-probability
large-import
new-contributor
|
100/0 |
Mathlib/Probability/Distributions/Poisson/Basic.lean |
1 |
2 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
0-47625 13 hours ago |
1-41418 1 day ago |
1-41411 1 day |
| 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 |
148/0 |
Mathlib.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Fib/Lame.lean,docs/1000.yaml |
5 |
20 |
['github-actions', 'kennethgoodman', 'vihdzp'] |
nobody |
0-42027 11 hours ago |
0-41782 11 hours ago |
0-47609 13 hours |
| 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$ |
121/1 |
Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean |
1 |
4 |
['eric-wieser', 'github-actions'] |
nobody |
0-41586 11 hours ago |
0-41641 11 hours ago |
0-51714 14 hours |
| 36320 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics): add Schreier graph definition and covering property |
Defines Schreier graphs as quivers with labeled edges.
`SchreierGraph V ι`: type alias for vertices with quiver structure
`schreierGraphLabelling`: prefunctor extracting edge labels
`schreierGraphLabelling_isCovering`: the labelling is a covering for group actions
`schreierGraph_action_commute`: label-preserving maps commute with the action
Ported from [Lean 3 PR #18693](https://github.com/leanprover-community/mathlib3/pull/18693).
This PR was written with AI assistance (Claude). The code has been reviewed by the author and their advisor.
---
This is the first in a series of PRs splitting #35467 into smaller pieces, as suggested by reviewers. Upcoming PRs will add word evaluation, paths, connectivity, automorphisms, examples, and Cayley sum graphs.
|
t-combinatorics
new-contributor
LLM-generated
|
180/0 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/Schreier.lean,docs/references.bib |
3 |
33 |
['AntoineChambert-Loir', 'YaelDillies', 'ZRTMRH', 'github-actions'] |
nobody |
0-39002 10 hours ago |
0-84872 23 hours ago |
19-58612 19 days |
| 34093 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas |
---
- [x] depends on: #33941
- [x] depends on: #37258
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
297/0 |
Mathlib.lean,Mathlib/Data/Option/Order.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean |
4 |
5 |
['YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
Komyyy assignee:Komyyy |
0-38412 10 hours ago |
1-69871 1 day ago |
56-65151 56 days |
| 37593 |
IlPreteRosso author:IlPreteRosso |
refactor(Data.Finset.*Antidiagonal): rename set-based defs to `set*Antidiagonal` |
Renames set-based `Finset.mulAntidiagonal` → `setMulAntidiagonal` (and SMul/VAdd variants) to free the `mulAntidiagonal` name for the planned `HasMulAntidiagonal` typeclass. Deprecation aliases added.
Supersedes #34551 |
t-ring-theory
new-contributor
|
178/96 |
Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Data/Finset/MulAntidiagonal.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Summable.lean |
6 |
2 |
['github-actions'] |
nobody |
0-37030 10 hours ago |
1-276 1 day ago |
1-2043 1 day |
| 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'] |
kim-em assignee:kim-em |
0-21172 5 hours ago |
15-13329 15 days ago |
15-13322 15 days |
| 37533 |
TJHeeringa author:TJHeeringa |
feat(Analysis/InnerProductSpace/Reproducing): Lemmata for reproducing kernels |
---
These are several lemmata regarding pointwise properties of reproducing kernels.
`norm_le_sq_norm_mul_diag` and `norm_sq_le_norm_mul_diag` follow from Cauchy-Schwartz on `kerFun` but are expressed in terms of the kernel. The names contain `diag` because a kernel is an infinite dimension matrix and thus `kernel H x x` and `kernel H y y` are diagonal elements.
`zero_row_iff_zero_diag` and `zero_col_iff_zero_diag` have the same proof. One implies the other due to the kernel being Hermitian.
AI:
I wrote the proofs myself, and then asked Claude to compact them because they were too long and I could see that they could be shortened. It gave some good suggestions but mostly broke the proofs, so fixed and compacted it myself (taking into account its useful suggestions).
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
21/0 |
Mathlib/Analysis/InnerProductSpace/Reproducing.lean |
1 |
13 |
['TJHeeringa', 'github-actions', 'themathqueen'] |
j-loreaux assignee:j-loreaux |
0-19782 5 hours ago |
2-1775 2 days ago |
2-15039 2 days |
| 32807 |
WilliamCoram author:WilliamCoram |
feat: Define the Gauss norm for MvPowerSeries |
We adjust the current definition for Gauss norm on power series to work for multivariate power series.
If this seems acceptable I can refactor the single variable case.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
124/0 |
Mathlib.lean,Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean |
2 |
28 |
['Multramate', 'WilliamCoram', 'erdOne', 'fbarroero', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] |
erdOne assignee:erdOne |
0-19024 5 hours ago |
0-33202 9 hours ago |
63-5990 63 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.
New definitions (in BasicSequence.lean)
- `BasicSequence`: a bundled ℕ-indexed sequence forming a Schauder basis for its algebraic span, with finite projection bound.
- `SatisfiesGrunblumCondition`: partial sums over initial segments are bounded by a constant times the full sum.
Main results
- `SatisfiesGrunblumCondition.basicSequence`: a nonzero sequence satisfying the Grünblum condition is a basic sequence.
- `SatisfiesGrunblumCondition.linearIndependent`: nonzero sequences satisfying that condition are linearly independent.
---
- 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
|
253/1 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/Basic.lean,Mathlib/Analysis/Normed/Module/SchauderBasis/BasicSequence.lean |
3 |
2 |
['github-actions'] |
sgouezel assignee:sgouezel |
0-15403 4 hours ago |
7-60922 7 days ago |
16-10657 16 days |
| 36677 |
AlexeyMilovanov author:AlexeyMilovanov |
feat(Computability.Partrec): add computability of Nat.find |
This PR bridges `Partrec.rfind` with total unbounded search (`Nat.find`).
It adds: `Computable.find`: Proves that `x ↦ Nat.find (h_ex x)` is computable for a computable decidable predicate `P`. |
t-computability
new-contributor
maintainer-merge
|
15/0 |
Mathlib/Computability/Halting.lean |
1 |
16 |
['AlexeyMilovanov', 'Komyyy', 'bryangingechen', 'github-actions', 'vlad902'] |
nobody |
0-13772 3 hours ago |
1-78326 1 day ago |
19-51743 19 days |
| 37628 |
JadAbouHawili author:JadAbouHawili |
doc: Rename Xor' to Xor |
Rename `Xor'` to `Xor` per the comment which recommended doing so after `v4.25.0-rc1`
Moves:
- Xor' --> Xor
---
[](https://gitpod.io/from-referrer/)
|
new-contributor |
50/56 |
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/Separation/Basic.lean,MathlibTest/itauto.lean |
16 |
3 |
['JadAbouHawili', 'github-actions'] |
nobody |
0-13101 3 hours ago |
0-12857 3 hours ago |
0-14019 3 hours |
| 35906 |
scp020 author:scp020 |
feat(Combinatorics/SimpleGraph/Walk): chords of walks |
Define `Walk.IsChord` and `Walk.IsChordless` predicates in a new file `SimpleGraph/Walks/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
|
66/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Chord.lean |
2 |
55 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'scp020'] |
YaelDillies assignee:YaelDillies |
0-5042 1 hour ago |
0-7917 2 hours ago |
24-37341 24 days |
| 37540 |
quantumsnow author:quantumsnow |
feat(CategoryTheory/MorphismProperty/Comma): add MorphismProperty.Arrow |
This is needed for the category of topological pairs (#36621).
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
|
104/6 |
Mathlib/CategoryTheory/MorphismProperty/Comma.lean |
1 |
14 |
['chrisflav', 'github-actions', 'quantumsnow'] |
nobody |
0-571 9 minutes ago |
0-571 9 minutes ago |
0-2922 48 minutes |
| 37626 |
NoahW314 author:NoahW314 |
feat(Algebra/Algebra/Operations): add `Submodule.mul_eq_bot` |
Generalize `Ideal.mul_eq_bot` to work for submodules as well.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
13/9 |
Mathlib/Algebra/Algebra/Operations.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Spectrum/Prime/Basic.lean |
4 |
3 |
['artie2000', 'github-actions'] |
nobody |
0-432 7 minutes ago |
0-38776 10 hours ago |
0-40760 11 hours |