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 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 |
| 33372 |
kex-y author:kex-y |
feat(Probability): Countable infimum of stopping times is a stopping time |
---
- [x] depends on: #33371
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
brownian
|
83/0 |
Mathlib/Probability/Process/Stopping.lean |
1 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
RemyDegenne assignee:RemyDegenne |
41-5340 1 month ago |
44-43501 44 days ago |
44-43279 44 days |
| 27599 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): define `CompleteEquipartiteSubgraph` |
Define the complete equipartite subgraphs in `r` parts each of size `t` in `G` as the `r` subsets of vertices each of size `t` such that vertices in distinct subsets are adjacent.
In this case `Nonempty (G.CompleteEquipartiteSubgraph r t)` is equivalent to `completeEquipartiteGraph r t ⊑ G`, that is, finding `r` subsets of vertices each of size `t` in `G` such that vertices in distinct subsets are adjacent is equivalent to finding an injective homomorphism from `completeEquipartiteGraph r t` to `G`.
---
- [x] depends on: #27597
- [x] depends on: #30287
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
173/7 |
Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean |
1 |
34 |
['YaelDillies', 'b-mehta', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mitchell-horner'] |
YaelDillies assignee:YaelDillies |
40-56311 1 month ago |
40-55438 40 days ago |
112-24895 112 days |
| 31891 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Sphere/OrthRadius): lemmas for setting up and using polars |
Add further lemmas about `orthRadius` that are of use in setting up and using poles and polars. In particular,
`ncard_inter_orthRadius_eq_two_of_dist_lt_radius` is the key part of showing that, in two dimensions, there are exactly two tangents to a circle from a point outside that circle (where the points of tangency lie on the polar of the point from which the two tangents are drawn).
---
Feel free to golf the proof of `ncard_inter_orthRadius_eq_two_of_dist_lt_radius`, it could probably be rather shorter.
---
- [ ] depends on: #32296
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
261/7 |
Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean |
2 |
27 |
['eric-wieser', 'github-actions', 'jsm28', 'mathlib4-dependent-issues-bot'] |
JovanGerb assignee:JovanGerb |
37-9540 1 month ago |
37-8745 37 days ago |
87-82578 87 days |
| 30112 |
gaetanserre author:gaetanserre |
feat(Probability.Kernel): add representation of kernel as a map of a uniform measure |
Add results about isolation of kernels randomness. In particular, it shows that one
can write a Markov kernel as the map by a deterministic of a uniform measure on `[0, 1]`.
It corresponds to Lemma 4.22 in "[Foundations of Modern Probability](https://link.springer.com/book/10.1007/978-3-030-61871-1)" by Olav Kallenberg, 2021.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
189/0 |
Mathlib.lean,Mathlib/MeasureTheory/Constructions/UnitInterval.lean,Mathlib/Probability/Kernel/Representation.lean |
3 |
10 |
['DavidLedvinka', 'RemyDegenne', 'gaetanserre', 'github-actions', 'mathlib4-merge-conflict-bot'] |
RemyDegenne assignee:RemyDegenne |
34-44829 1 month ago |
34-43118 34 days ago |
71-37289 71 days |
| 34298 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): Integral over Ioi tends to zero |
This PR proves that if `f` is integrable on `Ioi a`, then `∫ x in Ioi (b i), f x ∂μ` tends to zero as `b i` tends to infinity. This is an easy corollary of `intervalIntegral_tendsto_integral_Ioi`.
---
- [x] depends on #34197
- [x] depends on #34289
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
20/0 |
Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean |
1 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
22-5319 22 days ago |
22-18312 22 days ago |
25-72575 25 days |
| 33458 |
NoneMore author:NoneMore |
feat(ModelTheory): add lifting for embeddings to languages with constants |
Prepare for a generalized Tarski-Vaught test with a set as input instead of a substructure.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
35/0 |
Mathlib/ModelTheory/ElementaryMaps.lean,Mathlib/ModelTheory/LanguageMap.lean |
2 |
3 |
['Citronhat', 'github-actions'] |
fpvandoorn assignee:fpvandoorn |
20-63781 20 days ago |
20-62920 20 days ago |
46-55231 46 days |
| 33963 |
gasparattila author:gasparattila |
feat(Topology/UniformSpace/Closeds): completeness of `(Nonempty)Compacts` |
This PR generalizes the completeness result of `NonemptyCompacts` from metric spaces to uniform spaces.
---
- [x] depends on: #34036
[](https://gitpod.io/from-referrer/)
|
t-topology |
71/8 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/UniformSpace/Closeds.lean |
2 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
20-51533 20 days ago |
20-50686 20 days ago |
31-33726 31 days |
| 34268 |
gasparattila author:gasparattila |
feat(Topology/Sets): continuity of operations on `(Nonempty)Compacts` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
144/17 |
Mathlib/Topology/Sets/Compacts.lean,Mathlib/Topology/Sets/VietorisTopology.lean,Mathlib/Topology/UniformSpace/Closeds.lean |
3 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
20-50874 20 days ago |
20-49335 20 days ago |
26-19190 26 days |
| 34270 |
gasparattila author:gasparattila |
feat(Topology/UniformSpace/Closeds): `(Nonempty)Compacts.toCloseds` is a closed embedding |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
36/35 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/UniformSpace/Closeds.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
20-50382 20 days ago |
20-49528 20 days ago |
26-19442 26 days |
| 34192 |
bwangpj author:bwangpj |
feat(MeasureTheory): mulEquivHaarChar_eq_one_of_compactSpace |
From FLT.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
16/0 |
Mathlib/MeasureTheory/Measure/Haar/MulEquivHaarChar.lean |
1 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
RemyDegenne assignee:RemyDegenne |
20-15647 20 days ago |
20-14973 20 days ago |
25-42938 25 days |
| 34123 |
staroperator author:staroperator |
feat(Data/Set/Finite): finite distributivity for complete distributive lattices |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
52/0 |
Mathlib/Data/Set/Finite/Lattice.lean |
1 |
11 |
['github-actions', 'plp127', 'staroperator'] |
bryangingechen assignee:bryangingechen |
20-5297 20 days ago |
29-24193 29 days ago |
29-46812 29 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'] |
alreadydone assignee:alreadydone |
19-27271 19 days ago |
19-26349 19 days ago |
30-58627 30 days |
| 34138 |
pfaffelh author:pfaffelh |
feat(MeasureTheory): Introduce `MassFunction α` giving rise to a `Measure α ⊤` |
Define `MassFunction α := α → ℝ≥0∞`
Define `toMeasure (w : MassFunction α) : @Measure α ⊤` as a sum of diracs
Show properties of the resulting objects
This PR intends to start a more userfriendly interaction with probability mass functions (`PMF`). There are two main differences between `MassFunction` and `PMF`:
* `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `MassFunction`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.)
* The `toMeasure` function of `MassFunction` directly defines the measure as a sum of diracs, which immediately makes computations possible.
Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change)
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
224/0 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/MassFunction.lean |
4 |
10 |
['DavidLedvinka', 'github-actions', 'metakunt', 'pfaffelh'] |
EtienneC30 assignee:EtienneC30 |
19-23766 19 days ago |
19-20688 19 days ago |
29-12969 29 days |
| 33817 |
FlAmmmmING author:FlAmmmmING |
fix(Combinatorics/Enumerative/Schroder.lean): Fix the definition and theorem of smallSchroder. |
In the previous definition, the small Schröder numbers were defined as
```LaTeX
s_0 = 1, s_1 = 1, s_2 = 1, s_3 = 3...
```
, which does not match the sequence listed in OEIS A006318. Moreover, this definition makes it difficult to correctly write the generating function for the small Schröder numbers. This PR fixes this issue.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
large-import
|
61/39 |
Mathlib/Combinatorics/Enumerative/Schroder.lean |
1 |
19 |
['FlAmmmmING', 'github-actions', 'vihdzp'] |
awainverse assignee:awainverse |
19-5313 19 days ago |
27-70713 27 days ago |
38-21297 38 days |
| 34227 |
stepan2698-cpu author:stepan2698-cpu |
feat: 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
|
51/1 |
Mathlib/Combinatorics/Schnirelmann.lean |
1 |
3 |
['github-actions', 'grunweg', 'kbuzzard'] |
awainverse assignee:awainverse |
19-5310 19 days ago |
27-7289 27 days ago |
27-22082 27 days |
| 34029 |
lua-vr author:lua-vr |
feat(Order/PartialSups): add exists_partialSups_eq |
In a linear order, there exists an index `j ≤ i` for which `partialSups f i = f j`.
---
Adapted from a proof generated by Aristotle.
[](https://gitpod.io/from-referrer/)
|
t-order |
20/0 |
Mathlib/Order/PartialSups.lean |
1 |
1 |
['github-actions', 'plp127'] |
bryangingechen assignee:bryangingechen |
18-45688 18 days ago |
32-81754 32 days ago |
32-81532 32 days |
| 34028 |
floor-licker author:floor-licker |
feat(SimpleGraph): add max-flow/min-cut weak duality |
This PR introduces a basic s–t flow setup for undirected SimpleGraphs and proves the standard weak-duality
inequality: for any feasible flow f and any s–t cut S, value f ≤ cutCapacity S.
This is a small, self-contained lemma I extracted while working on larger graph-theoretic formalizations, in particular, results that will ultimately rely on a full max-flow/min-cut theorem. The full MFMC equality/existence statement is not included here. This is the weak-duality direction (∀ f S, value f ≤ cutCapacity S).
|
t-combinatorics
new-contributor
|
169/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/MaxFlowMinCut.lean |
2 |
13 |
['SnirBroshi', 'floor-licker', 'github-actions'] |
kmill assignee:kmill |
18-5320 18 days ago |
22-44078 22 days ago |
31-19156 31 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$ |
331/1 |
Mathlib.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml |
4 |
18 |
['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib4-dependent-issues-bot', 'vihdzp', 'wwylele'] |
kex-y assignee:kex-y |
17-17463 17 days ago |
19-18963 19 days ago |
52-72216 52 days |
| 34364 |
YuvalFilmus author:YuvalFilmus |
feat(Chebyshev/RootsExtrema): bound iterated derivatives of Chebyshev T on [-1, 1] |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
72/4 |
Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean,Mathlib/RingTheory/Polynomial/Chebyshev.lean |
2 |
12 |
['YuvalFilmus', 'eric-wieser', 'github-actions'] |
eric-wieser assignee:eric-wieser |
17-17134 17 days ago |
20-60705 20 days ago |
24-45588 24 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.
The other direction depends on #33458.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
55/0 |
Mathlib/ModelTheory/ElementarySubstructures.lean |
1 |
3 |
['Citronhat', 'NoneMore', 'github-actions'] |
awainverse assignee:awainverse |
17-5271 17 days ago |
20-68733 20 days ago |
45-52794 45 days |
| 34521 |
huaizhangchu author:huaizhangchu |
feat(MeasureTheory): add measurableEmbedding_natCast |
This PR adds a lemma stating that the coercion from `ℕ` to `ℝ` is a measurable embedding.
```lean
lemma measurableEmbedding_natCast : MeasurableEmbedding (Nat.cast : ℕ → ℝ) :=
Nat.isClosedEmbedding_coe_real.measurableEmbedding
```
This is useful for proving properties about discrete probability distributions on `ℕ` by lifting them to `ℝ` and will be used in #34435. |
t-measure-probability
new-contributor
|
3/0 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean |
1 |
1 |
['github-actions'] |
kex-y assignee:kex-y |
17-5263 17 days ago |
20-42942 20 days ago |
20-46218 20 days |
| 33791 |
PhoenixIra author:PhoenixIra |
feat: Generalization of FixedPointApproximants to CompletePartialOrder |
---
This PR provides a generalization of FixedPointApproximants to CompletePartialOrder. Not every theorem can be generalized, as sometimes we require additional conditions (namely `x ≤ f x`) in order to guarantee that the set is directed and thus the supremum is well-defined. This is not necessary in a CompleteLattice.
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
223/100 |
Mathlib/Order/CompletePartialOrder.lean,Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean |
2 |
20 |
['PhoenixIra', 'github-actions', 'vihdzp'] |
PhoenixIra and vihdzp assignee:PhoenixIra assignee:vihdzp |
16-56094 16 days ago |
28-30448 28 days ago |
28-30226 28 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 |
22 |
['b-mehta', 'eric-wieser', 'github-actions', 'jsm28', 'vihdzp'] |
kmill assignee:kmill |
16-34610 16 days ago |
16-33859 16 days ago |
35-10538 35 days |
| 34230 |
smmercuri author:smmercuri |
refactor: use 1-field structure to define the `WithAbs` type synonym |
Following the Zulip threads [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithLp.60/near/526234806) and [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithAbs.60.2F.60WithVal.60/with/569663323) and using `WithLp` as a template, we refactor the `WithAbs` type synonym as a 1-field structure. The main benefit being that it prevents defeq abuse.
---
- [x] depends on: #34313
[](https://gitpod.io/from-referrer/)
|
large-import |
314/114 |
Mathlib/Analysis/AbsoluteValue/Equivalence.lean,Mathlib/Analysis/Normed/Field/WithAbs.lean,Mathlib/Analysis/Normed/Ring/WithAbs.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean |
5 |
7 |
['github-actions', 'leanprover-radar', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'smmercuri'] |
dupuisf assignee:dupuisf |
16-5297 16 days ago |
19-39849 19 days ago |
21-19292 21 days |
| 34171 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Hasse): Define the Eulerian path of a path graph |
---
Such statements are left for a future PR, since they add imports so we probably want to split them into a separate file:
```lean
theorem IsEulerian.ofPathGraph : ofPathGraph n |>.IsEulerian := by sorry
theorem IsHamiltonian.ofPathGraph : ofPathGraph n |>.IsHamiltonian := by sorry
theorem exists_path_iff_isContained_pathGraph :
(∃ (u v : V) (w : G.Path u v), w.val.support.length = n) ↔ pathGraph n ⊑ G := by
sorry
```
(the last statement also requires #33121, this PR gives the right-to-left implication and that PR gives the left-to-right)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
37/1 |
Mathlib/Combinatorics/SimpleGraph/Hasse.lean |
1 |
9 |
['SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
kmill assignee:kmill |
15-73169 15 days ago |
27-10267 27 days ago |
28-41255 28 days |
| 34664 |
GrigorenkoPV author:GrigorenkoPV |
feat(SetTheory/Ordinal/Arithmetic): prove isSuccPrelimit_iff_omega0_dvd |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
new-contributor
|
36/15 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean,Mathlib/SetTheory/Ordinal/Notation.lean |
3 |
8 |
['GrigorenkoPV', 'github-actions', 'vihdzp'] |
vihdzp assignee:vihdzp |
14-40631 14 days ago |
15-43995 15 days ago |
17-519 17 days |
| 34375 |
jvanwinden author:jvanwinden |
feat(MeasureTheory/Function/AEEqOfLIntegral): introduce lemmas for rewriting a.e. inequalities |
Introduce the following lemmas:
- ae_le_const_iff_forall_gt_imp_ae_lt,
- ae_const_le_iff_forall_lt_imp_ae_gt,
- ae_le_const_iff_forall_gt_imp_ae_le,
- ae_const_le_iff_forall_lt_imp_ae_ge,
which can be used get an epsilon of room in a.e. inequalities, with the epsilon being outside the a.e. quantifier. The 'le/ge' variants require a dense ordering.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
24/0 |
Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean |
1 |
4 |
['github-actions', 'jvanwinden', 'urkud'] |
kex-y assignee:kex-y |
14-39112 14 days ago |
24-40530 24 days ago |
24-40308 24 days |
| 34779 |
tb65536 author:tb65536 |
refactor(Computability/TMComputable): generalize from `FinEncoding` |
Much of `TMComputable.lean` is stated in terms of `FinEncoding` when only the `encode` function is used. This PR generalizes statements in `TMComputable.lean` to take in just the `encode` function, making them easier to use (since one does not have to additionally provide a `decode` function and a proof of `decode_encode`).
---
[](https://gitpod.io/from-referrer/)
|
t-computability |
39/38 |
Mathlib/Computability/TMComputable.lean |
1 |
1 |
['github-actions'] |
nobody |
14-35466 14 days ago |
14-35466 14 days ago |
14-35244 14 days |
| 32570 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph): bipartite subgraphs and vertex-disjoint graphs for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
22/0 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
2 |
19 |
['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono', 'vlad902'] |
kmill assignee:kmill |
14-15080 14 days ago |
14-15080 14 days ago |
66-45862 66 days |
| 32555 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
127/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean |
2 |
24 |
['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono'] |
awainverse assignee:awainverse |
14-13907 14 days ago |
14-13907 14 days ago |
66-69110 66 days |
| 34636 |
CoolRmal author:CoolRmal |
feat(MeasureTheory/Analysis): the Fourier coefficients of a function can be computed by integrating over a box |
The main result proved in this PR is `integral_preimage`, which is the analogue of the one-dimensional result: [UnitAddCircle.integral_preimage](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.html#UnitAddCircle.integral_preimage). This theorem allows us to compute an integral over UnitAddTorus as an integral over a box in the Euclidean space. As an application, I prove that the Fourier coefficients of a function can be computed by integrating over a box.
The main motivation for this PR is the higher dimensional Poisson summation formula, which is needed in the [Sphere Packing project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean).
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
80/0 |
Mathlib/Analysis/Fourier/AddCircleMulti.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean |
2 |
1 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
14-5296 14 days ago |
17-26285 17 days ago |
17-27348 17 days |
| 31449 |
kim-em author:kim-em |
feat(SemilocallySimplyConnected): definition and alternative formulation |
Note: Proofs in this PR were developed with assistance from Claude. |
t-topology |
266/0 |
Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/FundamentalGroup.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SemilocallySimplyConnected.lean,Mathlib/Topology/Path.lean |
5 |
15 |
['ADedecker', 'alreadydone', 'github-actions', 'jcommelin', 'kim-em', 'mathlib4-merge-conflict-bot'] |
jcommelin assignee:jcommelin |
13-82180 13 days ago |
13-80695 13 days ago |
64-46632 64 days |
| 29235 |
yoh-tanimoto author:yoh-tanimoto |
feat(Topology/Algebra/Module/ClosedSubmodule): add `mapEquiv`, a variation of `ClosedSubmodule.map` for CLE |
add `ClosedSubmodule.mapEquiv` for continuous linear equivalence. In this case, a closed submodule is mapped to a closed submodule, so the definitions are easier and behave nicely with `closure` and `⊔`.
motivation: needed to define standard subspaces in a Hilbert space (scalar multiplication by `Complex.I`) #29251
https://ems.press/content/serial-article-files/48171
- [x] depends on: #29230 for `Lattice` `CompleteLattice` |
t-topology |
69/1 |
Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean |
1 |
8 |
['github-actions', 'j-loreaux', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'yoh-tanimoto'] |
fpvandoorn assignee:fpvandoorn |
13-69616 13 days ago |
13-68405 13 days ago |
110-63747 110 days |
| 34191 |
IlPreteRosso author:IlPreteRosso |
feat(Topology/Algebra/InfiniteSum): Discrete Convolution API 1st PR |
Defines the very basics of the discrete convolution API. In analogy with [MeasureTheory.Convolution](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Convolution.html#MeasureTheory.convolution).
Main definitions include
- `mulFiber`, `convolution`, `ConvolutionExists`, `ConvolutionExists.add_distrib`, `ConvolutionExistsAt.smul_convolution`, `mulFiber_swapEquiv`, `convolution_comm`
RM:
- The main docstring is *as is*
- Next step is triple sum intrastrcutre + `assoc` theorems for convolution (long)
Continues the work from #33411 and #33410 (splitting into shorter PRs, carries over the modifications from previous reviews) |
t-topology
new-contributor
|
277/0 |
Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/DiscreteConvolution.lean |
2 |
18 |
['IlPreteRosso', 'github-actions', 'j-loreaux'] |
PatrickMassot assignee:PatrickMassot |
13-34186 13 days ago |
13-33564 13 days ago |
22-34101 22 days |
| 34402 |
loefflerd author:loefflerd |
feat(Analysis/Complex/UpperHalfPlane): invariant measure |
Add the invariant measure on the upper half-plane (& prove that it is indeed invariant).
Also includes various minor improvements to upper half-plane & related code:
* improve documentation of `GeneralLinearGroup/FinTwo.lean`
* remove no-longer-needed coercion notation
---
- [x] depends on: #34597
[](https://gitpod.io/from-referrer/)
|
large-import
t-analysis
|
276/47 |
Mathlib.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Measure.lean,Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/FinTwo.lean,Mathlib/NumberTheory/ModularForms/Basic.lean |
7 |
6 |
['github-actions', 'loefflerd', 'mathlib-dependent-issues', 'urkud'] |
ADedecker assignee:ADedecker |
13-21711 13 days ago |
13-20840 13 days ago |
18-18842 18 days |
| 34557 |
kim-em author:kim-em |
feat(Topology/Homotopy): add Path.subpathOn for restricting paths to subintervals |
This PR adds `Path.subpathOn`, which extracts a subpath from a path γ on an interval [a, b] ⊆ [0, 1] by reparametrizing via the affine map t ↦ a + t(b - a).
### Main results
- `Path.subpathOn`: definition of the restricted path
- `Path.subpathOn_trans`: composing subpaths is homotopic to the combined subpath
- `Path.subpathOn_self`: the trivial subpath [a,a] is homotopic to the constant path
- `Path.subpathOn_zero_one`: the full subpath [0,1] is homotopic to the original path
- Quotient-level versions of these theorems
This material is split out from https://github.com/leanprover-community/mathlib4/pull/31576 to allow independent review. PR #31576 will depend on this PR once merged.
🤖 Prepared with Claude Code |
t-topology |
216/0 |
Mathlib.lean,Mathlib/Topology/Homotopy/Path.lean,Mathlib/Topology/UnitInterval.lean,Mathlib/Topology/UnitInterval/ConvexSpace.lean |
4 |
3 |
['github-actions', 'jcommelin'] |
jcommelin assignee:jcommelin |
13-253 13 days ago |
16-72642 16 days ago |
17-14770 17 days |
| 34558 |
kim-em author:kim-em |
feat(Topology): add StrictMono finite partition lemmas and path partitioning |
This PR adds:
**In `UnitInterval.lean`:**
- `exists_strictMono_Icc_subset_open_cover_Icc`: finite partition with strictly monotone points indexed by `Fin (n + 1)` for general closed intervals
- `exists_strictMono_Icc_subset_open_cover_unitInterval`: the unit interval version
- `continuous_convexCombo`: continuity of convex combinations
**In `Path.lean`:**
- `Path.exists_partition_in_cover`: Lebesgue partition lemma for paths - any open cover of a path's range can be refined to a finite partition
- `Path.exists_partition_with_property`: neighborhood version - if every point on a path has a neighborhood with property P, get a partition with each segment in such a neighborhood
These are useful for path homotopy arguments where a finite, strict partition is needed.
This is split out from https://github.com/leanprover-community/mathlib4/pull/31576 to allow independent review.
🤖 Prepared with Claude Code |
t-topology |
174/0 |
Mathlib/Topology/Path.lean,Mathlib/Topology/UnitInterval.lean |
2 |
12 |
['botbaki-review', 'github-actions', 'kim-em'] |
jcommelin assignee:jcommelin |
13-252 13 days ago |
17-60483 17 days ago |
19-68383 19 days |
| 34632 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): add `BipartiteDoubleCover` |
`bipartiteDoubleCover G` has two vertices `inl v` and `inr v` for each vertex `v` in `G` such that `inl v` (`inr v`) is adjacent to `inr w` (`inl w`) iff `v` is adjacent to `w` in `G`.
---
This comes from splitting up #25841 into smaller PRs.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
87/0 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean |
1 |
10 |
['github-actions', 'mitchell-horner', 'vihdzp', 'vlad902'] |
kmill assignee:kmill |
13-250 13 days ago |
16-83044 16 days ago |
17-84381 17 days |
| 34427 |
CoolRmal author:CoolRmal |
feat(MeasureTheory): Strong measurability is preserved under division in a group with zero |
I proved that if `f,g` are two strongly measurable functions taking values in a group with zero, then `f/g` is still strongly measurable.
As mentioned over here [#Is there code for X? > StronglyMeaurable.div₀](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/StronglyMeaurable.2Ediv.E2.82.80/with/569988425), I probably should also change the name of [MeasureTheory.StronglyMeasurable.div](https://leanprover-community.github.io/mathlib4_docs/Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.html#MeasureTheory.StronglyMeasurable.div) into `StronglyMeasurable.div'` according to the docstring of [ContinuousDiv](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Algebra/Group/Defs.html#ContinuousDiv). If I do this, then @to_additive will generate a theorem named `StronglyMeasurable.sub'`, which is a bit weird, so I am unsure whether I should change these names.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
37/8 |
Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/Probability/Process/Adapted.lean |
3 |
3 |
['CoolRmal', 'EtienneC30', 'github-actions'] |
kex-y assignee:kex-y |
12-62929 12 days ago |
12-61935 12 days ago |
21-17650 21 days |
| 34709 |
dennj author:dennj |
feat(Analysis/ODE): add discrete Grönwall inequality |
## Summary
Add discrete Grönwall inequality to `Mathlib/Analysis/ODE/DiscreteGronwall.lean`
Provides bounds for recurrence inequalities of the form `u(n+1) ≤ c(n) * u(n) + b(n)`
### Main results
- `discrete_gronwall_prod_general`: Product form working over any linearly ordered commutative ring
- `prod_one_add_Ico_mono`: Auxiliary lemma for product comparisons over subintervals
- `discrete_gronwall`: Classical exponential bound `u(n) ≤ (u(n₀) + ∑ b(k)) * exp(∑ c(i))` (ℝ-specific)
- `discrete_gronwall_Ico`: Uniform bound over a finite interval (ℝ-specific)
## Related work
Complements the continuous Grönwall inequality in `Mathlib.Analysis.ODE.Gronwall`
## References
* Grönwall, T. H. (1919). "Note on the derivatives with respect to a parameter of the solutions of a system of differential equations". *Annals of Mathematics*, 20(4), 292–296.
|
t-analysis
new-contributor
|
174/0 |
Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean |
2 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
12-5404 12 days ago |
15-80339 15 days ago |
15-80117 15 days |
| 34729 |
vihdzp author:vihdzp |
chore: `no_expose` various `Ordinal` definitions |
These all have convoluted definitions that are better characterized by their API, or (in the case of `Ordinal.ToType`) are defined through choice and have no useful definitional equalities.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
13/11 |
Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean |
2 |
3 |
['github-actions', 'leanprover-radar', 'vihdzp'] |
b-mehta assignee:b-mehta |
12-5403 12 days ago |
15-35189 15 days ago |
15-34967 15 days |
| 34821 |
kim-em author:kim-em |
chore: add GitHub Apps validation script and config |
This PR adds tooling to validate the GitHub Apps configuration after the recent bot account migration.
**New files:**
- `.github/github-apps.yml` - Documents all 8 GitHub Apps with their IDs, secrets, and workflow usage
- `scripts/validate-github-apps.sh` - Validates apps exist, secrets are present, and workflows reference correct secrets
- `.github/workflows/validate-github-apps.yml` - Weekly CI to run validation
**Validation checks:**
- App exists with expected ID via GitHub API
- App is installed and not suspended
- Required secrets exist in each repository
- Workflow files reference the correct secrets
- Warns about undocumented `MATHLIB_*` secrets
**Issue found:** The validation script discovered that `MATHLIB_AUTO_MERGE_APP_ID` and `MATHLIB_AUTO_MERGE_PRIVATE_KEY` secrets are missing. These need to be added for the `mathlib-auto-merge` app (ID: 2784285).
**Requirements:** `gh`, `yq`, and `jq` must be installed to run the script locally.
🤖 Prepared with Claude Code |
CI |
642/0 |
.github/github-apps.yml,.github/workflows/validate-github-apps.yml,scripts/README.md,scripts/validate-github-apps.sh |
4 |
2 |
['bryangingechen', 'github-actions'] |
bryangingechen assignee:bryangingechen |
11-42288 11 days ago |
13-78318 13 days ago |
13-82972 13 days |
| 34182 |
IlPreteRosso author:IlPreteRosso |
feat(Data/Finsupp/Single, Data/Finsupp/Indicator): Add set_indicator_singleton, indicator_singleton; golfed single_eq_set_indicator, single_eq_indicator |
[Mathlib.Data.Finsupp.Single](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Single.html#Finsupp.single)
- Add `set_indicator_singleton`, golfed `single_eq_set_indicator`
[Mathlib.Data.Finsupp.Indicator](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Indicator.html#Finsupp.indicator_apply)
- Add `indicator_singleton`, golfed `single_eq_indicator`
Continues the work from #34095 |
large-import
t-data
new-contributor
|
17/17 |
Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean |
2 |
29 |
['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] |
eric-wieser and urkud assignee:urkud assignee:eric-wieser |
11-35097 11 days ago |
27-74001 27 days ago |
27-80607 27 days |
| 34151 |
gasparattila author:gasparattila |
feat(Topology/Sets): product of `Closeds` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
30/0 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sets/Closeds.lean,Mathlib/Topology/Sets/Compacts.lean |
3 |
1 |
['github-actions'] |
PatrickMassot assignee:PatrickMassot |
11-29307 11 days ago |
11-28159 11 days ago |
29-22633 29 days |
| 33252 |
SnirBroshi author:SnirBroshi |
chore(Combinatorics/SimpleGraph/Coloring): use `IsIndepSet` instead of `IsAntichain` to spell "a color class is an independent set" |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
6/2 |
Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Partition.lean |
2 |
1 |
['github-actions'] |
nobody |
11-9187 11 days ago |
43-12689 43 days ago |
12-38825 12 days |
| 34099 |
mcdoll author:mcdoll |
feat(Analysis/Distribution): Fourier multiplier |
We define Fourier multiplier with temperate growth functions acting on Schwartz functions as well as tempered distributions.
We prove that the directional derivative and the Laplacian can be represented as Fourier multiplier.
---
- [x] depends on: #34100
- [x] depends on: #34285
- [x] depends on: #34294
[](https://gitpod.io/from-referrer/)
|
t-analysis |
217/0 |
Mathlib.lean,Mathlib/Analysis/Distribution/FourierMultiplier.lean |
2 |
4 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
ADedecker assignee:ADedecker |
11-5398 11 days ago |
14-69824 14 days ago |
15-72378 15 days |
| 34788 |
justus-springer author:justus-springer |
feat(Algebra/Polynomial/AlgebraMap): add Polynomial.aeval_eq_aeval_map |
This lemma is a special case of `Polynomial.map_aeval_eq_aeval_map` when `U = T` and `ψ` the identity.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
6/0 |
Mathlib/Algebra/Polynomial/AlgebraMap.lean |
1 |
2 |
['github-actions'] |
eric-wieser assignee:eric-wieser |
11-5378 11 days ago |
14-29872 14 days ago |
14-29650 14 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
|
815/0 |
Mathlib.lean,Mathlib/RingTheory/Coalgebra/CoassocSimps.lean,Mathlib/Tactic/Attr/Register.lean,MathlibTest/RingTheory/CoassocSimps.lean |
4 |
3 |
['erdOne', 'github-actions', 'riccardobrasca'] |
mattrobball assignee:mattrobball |
10-47669 10 days ago |
16-59021 16 days ago |
16-58799 16 days |
| 34622 |
vihdzp author:vihdzp |
feat: Nat/Int casts on char two rings |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
49/7 |
Mathlib/Algebra/CharP/Two.lean,Mathlib/Data/Set/Insert.lean |
2 |
10 |
['erdOne', 'eric-wieser', 'github-actions', 'vihdzp'] |
erdOne assignee:erdOne |
10-33764 10 days ago |
10-32366 10 days ago |
17-69309 17 days |
| 34954 |
brianrabern author:brianrabern |
feat(Combinatorics/SimpleGraph/Acyclic): add colorable and chromaticN… |
…umber bridges for acyclic and tree graphs
Add thin bridge lemmas expressing that acyclic graphs (forests) and trees
are 2-colorable, and that their chromatic number is at most 2, directly
in terms of `Colorable` and `chromaticNumber`.
The existing `IsAcyclic.isBipartite` already proves this via the
definitional equality `IsBipartite = Colorable 2`, but these bridges
improve discoverability for users who reason about `Colorable` or
`chromaticNumber` without passing through `IsBipartite`.
This is a first step toward building out the graph coloring API.
New declarations:
- `IsAcyclic.colorable_two`
- `IsTree.colorable_two`
- `IsAcyclic.chromaticNumber_le_two`
- `IsTree.chromaticNumber_le_two`
All are one-line proofs reusing existing results; no new imports needed.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
16/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
1 |
['github-actions'] |
nobody |
10-29280 10 days ago |
unknown |
unknown |
| 34054 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): OmegaCompletePartialOrder instance for `Sigma` with basic `ωScottContinuous` lemmas |
This PR adds an `OmegaCompletePartialOrder` instance for `Sigma` along with `ωScottContinuous` lemmas for basic operations (`mk`, `fst`, `snd`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sigma`s.
---
- [x] depends on: #33941
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
please-merge-master
|
168/0 |
Mathlib/Data/Sigma/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
Vierkantor assignee:Vierkantor |
10-4908 10 days ago |
13-78604 13 days ago |
13-78382 13 days |
| 33257 |
NickAdfor author:NickAdfor |
feat(Combinatorics/SimpleGraph/Bipartite): Odd Cycle Theorem (A Solution to TODO) |
Prove bipartite iff all cycles are even
This PR formalizes the classical graph theory theorem: a graph is bipartite if and only if all its cycles have even length.
Co-authored-by: Nick Adfor
Co-authored-by: Yue Sun
Co-authored-by: Aristotle AI
---
## Main results
- `SimpleGraph.bipartite_iff_all_cycles_even` : the main equivalence theorem
## Key supporting lemmas
- `SimpleGraph.even_length_iff_same_color` : parity lemma for 2-colorings
- `SimpleGraph.even_length_iff_even_bypass_length` : bypass length parity
- `SimpleGraph.even_cycle_length_of_path` : cycle construction lemma
- `SimpleGraph.bypass_eq_nil_of_closed` : closed path properties
## Proof outline
1. For bipartite graphs: use the 2-coloring to show that in a 2-coloring, a walk has even length iff its endpoints have the same color.
2. For cycles (start = end), this forces even length.
3. For the converse: if all cycles are even, construct a 2-coloring using the `two_colorable_iff_forall_loop_even` characterization.
4. Show this coloring is valid using bypass operations and path properties.
## Technical notes
- Uses `SimpleGraph.Walk` for path/cycle representation
- Handles both `IsPath` and `IsCycle` predicates
- Uses bypass operations (`takeUntil`, `dropUntil`, `bypass`) to analyze walks
- Requires `DecidableEq V` for some lemmas
- Uses classical logic for case analysis
## Reviewer notes
- The proof uses induction on walks and case analysis on colorings
- Some lemmas (like `even_length_iff_same_color`) could be extracted to more general locations
- All theorems are in the `SimpleGraph` namespace
- The `bipartite_iff_all_cycles_even` theorem provides the complete characterization |
t-combinatorics
new-contributor
|
164/8 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean |
2 |
70 |
['IvanRenison', 'NickAdfor', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'kmill', 'mitchell-horner', 'vihdzp', 'vlad902'] |
nobody |
10-3483 10 days ago |
10-3891 10 days ago |
18-4468 18 days |
| 33668 |
Citronhat author:Citronhat |
feat(PMF): add lintegral formulas for PMF |
This PR introduces two lemmas describing the `lintegral` of a function with respect to the measure induced by a probability mass function:
- `PMF.lintegral_eq_tsum`
- `PMF.lintegral_eq_sum`
These are the `ℝ≥0∞` analogues of the existing Bochner `integral` formulas `integral_eq_tsum` and `integral_eq_sum`. They could be useful for reasoning about expectations and integrability.
In addition, the proof of `integral_eq_sum` is simplified by deriving it directly from `integral_eq_tsum` using `tsum_fintype`. |
t-measure-probability
new-contributor
|
14/5 |
Mathlib/Probability/ProbabilityMassFunction/Integrals.lean |
1 |
2 |
['DavidLedvinka', 'github-actions'] |
kex-y assignee:kex-y |
10-3371 10 days ago |
42-9643 42 days ago |
42-41099 42 days |
| 33688 |
Citronhat author:Citronhat |
feat(PMF): add expectation lemmas for Poisson PMF |
This PR adds some basic results about the Poisson distribution, its `PMF`, and its expectation.
**New lemmas:**
* `poissonPMF_apply` — an unfolding lemma for `poissonPMF`.
* `poissonPMFReal_mul_eq_succ_mul` — the standard recursion identity for the Poisson mass function.
* `poissonPMFReal_hasSum_nmul` — shows that `fun n ↦ poissonPMFReal r n * n` has sum `r`.
* `poissonPMF_tsum_nmul` — the corresponding identity at the level of the `PMF`.
* `poissonPMF_coe_tsum_nmul` — the same result after coercion to `ℝ`.
Both `ℝ`-valued and `ℝ≥0∞`-valued formulations are included so that these results can be used conveniently in both Lebesgue and Bochner integration contexts. |
new-contributor
t-measure-probability
|
21/0 |
Mathlib/Probability/Distributions/Poisson.lean |
1 |
6 |
['Citronhat', 'DavidLedvinka', 'github-actions'] |
urkud assignee:urkud |
10-1615 10 days ago |
41-15648 41 days ago |
42-10915 42 days |
| 34093 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas |
---
- [x] depends on: #33941
[](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'] |
pechersky assignee:pechersky |
9-5390 9 days ago |
13-73159 13 days ago |
13-72937 13 days |
| 34266 |
gasparattila author:gasparattila |
feat(Topology/Sets): basis of `(Nonempty)Compacts` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
147/0 |
Mathlib/Topology/Bases.lean,Mathlib/Topology/Sets/VietorisTopology.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
9-5388 9 days ago |
20-49191 20 days ago |
26-22434 26 days |
| 34435 |
huaizhangchu author:huaizhangchu |
feat(Probability): convolution of Poisson distributions |
This PR proves that the convolution of two Poisson distributions is again a Poisson distribution:
`Poisson(r₁) ∗ Poisson(r₂) = Poisson(r₁ + r₂)`
## Main results
- `poissonMeasureReal_charFun`: characteristic function of Poisson distribution is `exp(r(exp(it) - 1))`
- `poissonMeasureReal_conv_poissonMeasureReal`: convolution of Poisson distributions on ℝ
- `poissonMeasure_conv_poissonMeasure`: convolution of Poisson distributions on ℕ
- `poissonMeasure_add_poissonMeasure_of_indepFun`: sum of independent Poisson random variables
## Proof strategy
Uses characteristic functions: `φ(t) = exp(r(eⁱᵗ - 1))`, then pulls back from ℝ to ℕ. |
t-measure-probability
large-import
new-contributor
|
110/1 |
Mathlib/Probability/Distributions/Poisson.lean |
1 |
14 |
['CoolRmal', 'DavidLedvinka', 'github-actions', 'huaizhangchu'] |
RemyDegenne assignee:RemyDegenne |
9-5385 9 days ago |
12-55591 12 days ago |
13-83624 13 days |
| 34784 |
tb65536 author:tb65536 |
refactor(GroupTheory/Commutator/Basic): to_additivize commutators |
This PR makes some progress on to_additivizing more of the group theory library.
I had to make the bracket instance scoped to avoid clashing with the Lie bracket.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
167/30 |
Mathlib/Algebra/Group/Commutator.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/GroupTheory/GroupAction/Quotient.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/OfStabilizer.lean,Mathlib/GroupTheory/Solvable.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/Group/TopologicalAbelianization.lean,MathlibTest/Group.lean,MathlibTest/toAdditiveIrredDef.lean |
11 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
9-5380 9 days ago |
14-20688 14 days ago |
14-20466 14 days |
| 34859 |
wwylele author:wwylele |
feat(MeasureTheory): WithLp 2 (U × V) → U × V is measure preserving |
Intermediate lemmas towards #34826, and analogue to three existing lemma in the same file:
```
theorem EuclideanSpace.volume_preserving_symm_measurableEquiv_toLp :
MeasurePreserving (MeasurableEquiv.toLp 2 (ι → ℝ)).symm := by
theorem PiLp.volume_preserving_ofLp : MeasurePreserving (@ofLp 2 (ι → ℝ)) :=
theorem PiLp.volume_preserving_toLp : MeasurePreserving (@toLp 2 (ι → ℝ)) :=
```
---
I am not very good at working with measure theory directly, so this implementation just reduces the problem to known lemmas, but it is pretty cumbersome. Golfing is welcome!
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
58/0 |
Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean |
1 |
6 |
['b-mehta', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
RemyDegenne assignee:RemyDegenne |
9-5377 9 days ago |
13-2748 13 days ago |
13-2526 13 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 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
8-49671 8 days ago |
8-48332 8 days ago |
42-55561 42 days |
| 26973 |
peabrainiac author:peabrainiac |
feat(Geometry/Diffeology): diffeologies generated from sets of plots |
Introduces diffeologies generated from sets of plots, shows that this defines a Galois insertion, and concludes that the diffeologies on a type form a complete lattice.
---
This PR continues the work from #22724.
- [x] depends on: #26484 |
t-differential-geometry |
162/0 |
Mathlib/Geometry/Diffeology/Basic.lean |
1 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'ocfnash', 'peabrainiac'] |
ocfnash assignee:ocfnash |
8-42724 8 days ago |
12-29470 12 days ago |
12-29248 12 days |
| 34249 |
xyzw12345 author:xyzw12345 |
feat(GroupTheory/GroupAction/Hom): Add `MulDistribMulActionHom` corresponding to `DistribMulActionHom` |
In this PR, we defined `MulDistribMulActionHom` corresponding to `DistribMulActionHom`, which will be used in the multiplicative version of non-Abelian group cohomology.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
174/69 |
Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/GroupTheory/GroupAction/Hom.lean |
2 |
2 |
['github-actions', 'ocfnash'] |
ocfnash assignee:ocfnash |
8-42274 8 days ago |
26-61750 26 days ago |
26-61528 26 days |
| 32367 |
BoltonBailey author:BoltonBailey |
feat(Computability): add FinEncodings for List Bool and pairs of types |
This PR contains `finEncoding`s relevant to developing complexity theory in downstream libraries. It is adapted from [this](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalise.20the.20proposition.20P.20.E2.89.A0NP/near/451765788)[#maths > Formalise the proposition P ≠NP @ 💬](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Formalise.20the.20proposition.20P.20.E2.89.A0NP/near/451765788) comment.
Co-authored-by: Daniel Weber
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
t-computability
|
54/21 |
Mathlib/Computability/Encoding.lean,Mathlib/Data/List/Basic.lean |
2 |
15 |
['BoltonBailey', 'MichaelStollBayreuth', 'Vierkantor', 'YaelDillies', 'github-actions'] |
Vierkantor and YaelDillies assignee:Vierkantor assignee:YaelDillies |
8-30869 8 days ago |
12-22634 12 days ago |
75-77940 75 days |
| 35041 |
b-mehta author:b-mehta |
feat(Combinatorics): prove the Rado selection lemma |
This PR should supercede #29030
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
132/0 |
Mathlib.lean,Mathlib/Combinatorics/Compactness.lean |
2 |
3 |
['b-mehta', 'github-actions'] |
nobody |
8-28012 8 days ago |
8-28420 8 days ago |
8-28198 8 days |
| 34551 |
IlPreteRosso author:IlPreteRosso |
refactor(Data.Finset.*Antidiagonal): rename defs to `set*Antidiagonal` and deprecate old names in namespace Finset |
Main file is [Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html). Adds `Finset.HasMulAntidiagonal`, the multiplicative counterpart to `HasAntidiagonal`, linked via `@[to_additive existing]`.
Split PR (current changes):
This PR renames the set-based antidiagonal definitions to have a `set` prefix, distinguishing them from the typeclass-based API in `Prod.lean`.
**Only definitions are renamed in this PR.** Theorem/lemma renames will follow in a subsequent PR.
[MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean)
- `mulAntidiagonal` → `setMulAntidiagonal`
- `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`)
[SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean)
- `SMulAntidiagonal` → `setSMulAntidiagonal`
- `VAddAntidiagonal` → `setVAddAntidiagonal` (via `@[to_additive]`)
Propagates to:
- `Mathlib/RingTheory/HahnSeries/Multiplication.lean`
- `Mathlib/RingTheory/HahnSeries/Summable.lean`
---
Added deprecation aliases for the renamed definitions.
[Finset/MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean)
```
@[to_additive (attr := deprecated setAddAntidiagonal (since := "2026-01-31")),
deprecated setMulAntidiagonal (since := "2026-01-31")]
alias mulAntidiagonal := setMulAntidiagonal
```
[Finset/SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean)
```
@[to_additive (attr := deprecated setVAddAntidiagonal (since := "2026-01-31")),
deprecated setSMulAntidiagonal (since := "2026-01-31")]
alias smulAntidiagonal := setSMulAntidiagonal
```
Propagates:
[PointwiseSMul.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finsupp/PointwiseSMul.lean) - updated to use Set.vaddAntidiagonal (the original Set name)
---
Full changes to be made:
For a monoid `M`, `mulAntidiagonal n` returns the finset of pairs `(i, j)` such that `i * j = n`.
[MulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/MulAntidiagonal.html)
- `mulAntidiagonal` → `setMulAntidiagonal`
- `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`)
- All related theorems renamed accordingly:
- `mem_setMulAntidiagonal`
- `setMulAntidiagonal_mono_left`/`setMulAntidiagonal_mono_right`
- `swap_mem_setMulAntidiagonal`
- `support_setMulAntidiagonal_subset_mul`
- `isPWO_support_setMulAntidiagonal`
- `setMulAntidiagonal_min_mul_min`
[SMulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/SMulAntidiagonal.html)
- `setSMulAntidiagonal` (lowercase `set` prefix)
- `setVAddAntidiagonal` (via `@[to_additive setVAddAntidiagonal ...]`)
- All related theorems use lowercase `set` prefix:
- `mem_setSMulAntidiagonal` / `mem_setVAddAntidiagonal`
- `setSMulAntidiagonal_mono_left`/`setSMulAntidiagonal_mono_right` / `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right`
- `support_setSMulAntidiagonal_subset_smul` / `support_setVAddAntidiagonal_subset_vadd`
- `isPWO_support_setSMulAntidiagonal` / `isPWO_support_setVAddAntidiagonal`
- `setSMulAntidiagonal_min_smul_min` / `setVAddAntidiagonal_min_vadd_min`
[Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html)
- Added explicit `@[to_additive]` target names:
- `@[to_additive antidiagonal_congr ...]` for `mulAntidiagonal_congr`
- `@[to_additive (attr := ext) antidiagonal_subtype_ext ...]` for `mulAntidiagonal_subtype_ext`
- `@[to_additive antidiagonal_congr' ...]` for `mulAntidiagonal_congr'`
- `@[to_additive (attr := simps) sigmaAntidiagonalEquivProd ...]` for `sigmaMulAntidiagonalEquivProd`
[Multiplication.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Multiplication.html)
- Updated all VAdd antidiagonal references to use lowercase `set` prefix:
- `setVAddAntidiagonal`
- `mem_setVAddAntidiagonal`
- `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right`
- `isPWO_support_setVAddAntidiagonal`
- `support_setVAddAntidiagonal_subset_vadd`
- `setVAddAntidiagonal_min_vadd_min`
- Updated all Add antidiagonal references:
- `mem_setAddAntidiagonal`
- `swap_mem_setAddAntidiagonal`
[Summable.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Summable.html)
- `setVAddAntidiagonal` references updated
- `mem_setAddAntidiagonal` references updated
[PowerSeries.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/PowerSeries.html)
- `mem_addAntidiagonal` → `mem_setAddAntidiagonal`
|
t-algebra
new-contributor
label:t-algebra$ |
67/47 |
Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Data/Finset/MulAntidiagonal.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/Set/MulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/Summable.lean |
6 |
6 |
['IlPreteRosso', 'Ruben-VandeVelde', 'github-actions', 'kim-em', 'mathlib-merge-conflicts'] |
jcommelin assignee:jcommelin |
8-18401 8 days ago |
8-16117 8 days ago |
18-66858 18 days |
| 34026 |
SnkXyx author:SnkXyx |
feat(Algebra/MvPolynomial): add mainVariable |
Add `mainVariable` of `MvPolynomial`, the largest variable index appearing in the polynomial.
Main Theorems:
* `mainVariable_eq_bot_iff_eq_C`
* `mainVariable_sum_le`
* `mainVariable_prod_le`
* `degreeOf_eq_zero_of_mainVariable_lt`
The PR is upstreamized from [github.com/WuProver/lean_characteristic_set](https://github.com/WuProver/lean_characteristic_set)
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
147/0 |
Mathlib.lean,Mathlib/Algebra/MvPolynomial/MainVariable.lean |
2 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
8-5129 8 days ago |
32-76611 32 days ago |
32-76389 32 days |
| 34756 |
Hagb author:Hagb |
feat(Algebra/Order/Monoid/Unbundled/WithTop): `AddEquiv` between `WithBot` |
It is like `Equiv.withBotCongr` but preserving also addition (`AddEquiv`).
---
It is like [`Equiv.withBotCongr`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Equiv.withBotCongr#doc) but preserving also addition ([`AddEquiv`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=AddEquiv#doc)).
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
39/0 |
Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean |
1 |
3 |
['Hagb', 'github-actions', 'plp127'] |
mattrobball assignee:mattrobball |
8-5123 8 days ago |
12-2786 12 days ago |
14-32512 14 days |
| 34808 |
YaelDillies author:YaelDillies |
feat(Combinatorics/SimpleGraph): isolated vertices |
RFC for now. Do you think this is a reasonable definition to have? What should its API be?
From ProofBench
---
[](https://gitpod.io/from-referrer/)
|
RFC
t-combinatorics
|
3/0 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean |
1 |
1 |
['github-actions'] |
kmill assignee:kmill |
8-5118 8 days ago |
14-18339 14 days ago |
14-18117 14 days |
| 34854 |
GrigorenkoPV author:GrigorenkoPV |
chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` |
---
Split off from #34853
[](https://gitpod.io/from-referrer/)
|
new-contributor |
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 |
2 |
['SnirBroshi', 'github-actions'] |
thorimur assignee:thorimur |
8-5117 8 days ago |
11-51100 11 days ago |
13-13207 13 days |
| 26985 |
agjftucker author:agjftucker |
feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfProdDomain |
This PR continues the work from #16743.
Original PR: https://github.com/leanprover-community/mathlib4/pull/16743
---
- [x] depends on: #28352
[](https://gitpod.io/from-referrer/) |
t-analysis
new-contributor
|
269/157 |
Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean |
4 |
27 |
['agjftucker', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'winstonyin'] |
hrmacbeth assignee:hrmacbeth |
7-67249 7 days ago |
7-66362 7 days ago |
70-28512 70 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 |
59 |
['NoneMore', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator'] |
awainverse assignee:awainverse |
7-61285 7 days ago |
39-69460 39 days ago |
60-12533 60 days |
| 35011 |
whocares-abt author:whocares-abt |
feat(Combinatorics/SimpleGraph/Copy): add degree of copy less than original |
add two theorems relating degree of a graph and it's copy |
t-combinatorics
new-contributor
|
17/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
2 |
['github-actions', 'themathqueen'] |
nobody |
7-61006 7 days ago |
7-60337 7 days ago |
8-63976 8 days |
| 33543 |
JovanGerb author:JovanGerb |
feat: use `to_dual` for `HeytingAlgebra` |
This PR adds `to_dual` for `HeytingAlgebra`, `BiheytingAlgebra`, `GeneralizedHeytingAlgebra`.
I am a bit worried about the fact that the complement operation is self-dual in a `BooleanAlgebra`, because that means that, depending on the context, `compl` needs to be translated to `hnot` or `compl`. So if we want to dualize lemmas about `BooleanAlgebra` and `compl`, we will not be able to. But I hope that the number of such lemmas is small and that they aren't often used in places that can get a `to_dual` tag (e.g. when specialized to sets, they don't need a `to_dual` tag).
Aligning the `Heyting` and `Coheyting` API is kind of awkward, because they are unfortunately quite different. One reason is that the arguments of `sup`/`inf` are often swapped in the dual version, which is not compatible with `to_dual`. I've worked around this with extensive use of `to_dual none`.
There are quite some lemmas that in my eyes seem unnecessary, such as `le_sup_sdiff_sup_sdiff`, but I haven't removed any in this PR.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
195/373 |
Mathlib/Combinatorics/SetFamily/Kleitman.lean,Mathlib/Order/Basic.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Heyting/Basic.lean,Mathlib/Order/Notation.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/Tactic/Translate/ToDual.lean |
8 |
12 |
['JovanGerb', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp'] |
bryangingechen and mattrobball assignee:bryangingechen assignee:mattrobball |
7-43886 7 days ago |
11-77680 11 days ago |
13-65972 13 days |
| 26479 |
thefundamentaltheor3m author:thefundamentaltheor3m |
feat(Analysis/Complex/CauchyIntegral): Cauchy–Goursat for Unbounded Rectangles |
In this PR, we prove versions of the Cauchy-Goursat theorem where the contours in question are rectangular and unbounded (ie, where the contours look like the $\bigsqcup$ symbol). I am not sure if I have formalised these in the best way, or if `Analysis.Complex.CauchyIntegral` is the best place for them (it might be prudent to reorganise the file into multiple files at some point), but I believe this is a useful result. Suggestions welcome.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
sphere-packing
|
205/0 |
Mathlib/Analysis/Complex/CauchyIntegral.lean |
1 |
5 |
['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'thefundamentaltheor3m', 'wwylele'] |
urkud assignee:urkud |
7-10477 7 days ago |
27-26502 27 days ago |
27-26280 27 days |
| 33397 |
themathqueen author:themathqueen |
feat(Topology/Algebra/Star/LinearMap): intrinsic star for continuous linear maps |
---
- [x] depends on: #34945
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-topology
label:t-algebra$ |
105/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Star/LinearMap.lean |
2 |
19 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'ocfnash', 'themathqueen'] |
ocfnash assignee:ocfnash |
7-7117 7 days ago |
7-6179 7 days ago |
37-69155 37 days |
| 33631 |
xgenereux author:xgenereux |
feat(ValuationSubring): simp lemmas for idealOfLE/ofPrime in relation to top/bot |
simp lemmas for `idealOfLE`/`ofPrime` in the trivial cases of `⊥`, `⊤` .
This is my second try at this PR (after I bailed on #33618), sorry about this!
---
- [ ] depends on: #33612
- [ ] depends on: #33609
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
19/0 |
Mathlib/RingTheory/Valuation/ValuationSubring.lean |
1 |
4 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
alreadydone assignee:alreadydone |
7-5237 7 days ago |
10-65004 10 days ago |
10-64782 10 days |
| 34481 |
DAE123456 author:DAE123456 |
feat: Ore's Theorem |
Ore Theorem : Let G be a graph of order n ≥ 3 that satisfies the Ore property. Then G has a Hamilton cycle. |
t-combinatorics
new-contributor
|
3372/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Ore.lean |
2 |
25 |
['DAE123456', 'LLaurance', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'kim-em', 'tb65536', 'vlad902'] |
b-mehta assignee:b-mehta |
7-5236 7 days ago |
15-59296 15 days ago |
19-20452 19 days |
| 34722 |
GrigorenkoPV author:GrigorenkoPV |
feat(Data/Finset/RangeDistance): add |
---
Rebase of https://github.com/leanprover-community/mathlib4/pull/26347
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-data
|
34/0 |
Mathlib.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Data/Finset/RangeDistance.lean |
3 |
4 |
['GrigorenkoPV', 'github-actions', 'joneugster', 'plp127'] |
TwoFX assignee:TwoFX |
7-5232 7 days ago |
15-45069 15 days ago |
15-44847 15 days |
| 34805 |
DavidLedvinka author:DavidLedvinka |
feat(Tactic): generalize ofScientific NormNum extension to `DivisionSemiring` |
Co-authored-by: @hrmacbeth |
t-meta |
65/14 |
Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/NormNum/OfScientific.lean,MathlibTest/norm_num.lean |
3 |
1 |
['github-actions'] |
JovanGerb assignee:JovanGerb |
7-5229 7 days ago |
14-14787 14 days ago |
14-14565 14 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'] |
b-mehta assignee:b-mehta |
7-5228 7 days ago |
14-18256 14 days ago |
14-18034 14 days |
| 34871 |
zhuyizheng author:zhuyizheng |
feat(Calculus): Taylor with integral remainder |
This PR proves Taylor's theorem with the integral remainder. It provides two versions:
1. based on $f^{(n)}$ is absolutely continuous
2. based on $f \in C^{(n+1)}$
It also weakens the hypotheses `(hx : x₀ < x)` to `(hx : x₀ ≠ x)` in the following theorems:
- `taylor_mean_remainder`
- `taylor_mean_remainder_lagrange`
- `taylor_mean_remainder_lagrange_iteratedDeriv`
- `taylor_mean_remainder_cauchy`
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-analysis
|
214/71 |
Mathlib/Analysis/Calculus/ContDiff/Deriv.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/Probability/Moments/MGFAnalytic.lean,Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean,docs/undergrad.yaml |
7 |
5 |
['Komyyy', 'b-mehta', 'github-actions', 'joneugster', 'zhuyizheng'] |
sgouezel assignee:sgouezel |
7-5222 7 days ago |
12-3791 12 days ago |
12-42380 12 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 |
10 |
['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions'] |
kim-em assignee:kim-em |
7-5221 7 days ago |
10-69819 10 days ago |
12-35651 12 days |
| 34838 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 2/4) |
---
Required for https://github.com/leanprover-community/mathlib4/pull/33050
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
13/0 |
Mathlib/Analysis/Analytic/Order.lean |
1 |
1 |
['github-actions'] |
sgouezel assignee:sgouezel |
6-46648 6 days ago |
6-45828 6 days ago |
13-44165 13 days |
| 35122 |
Marygold-Dusk author:Marygold-Dusk |
feat: define C^n submersions |
This PR defines submersions between C^n manifolds. In the infinite-dimensional setting, submersions are defined via local normal forms rather than surjectivity of the mfderiv. A map f is a submersion at x if, in suitable charts around x and f x, it has the form (u, v) ↦ u after identifying the model space with a product.
We prove a few basic properties:
- being a submersion is a local property,
- products of submersions are submersions,
- the set of submersed points is open
Future PRs will prove that submersions are C^n and deduce equivalence with the standard definition in finite dimensions. From the path towards the regular value theorem.
This file was developed under the supervision of Michael Rothgang.
Co-authored-by: Michael Rothgang
---
Most of the design is analogues to submersions.
|
t-differential-geometry
new-contributor
|
596/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Submersion.lean |
2 |
2 |
['github-actions'] |
grunweg assignee:grunweg |
6-41652 6 days ago |
6-41029 6 days ago |
6-41799 6 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,Mathlib/Data/Sym/Sym2.lean |
2 |
50 |
['LessnessRandomness', 'SnirBroshi', 'b-mehta', 'github-actions', 'vlad902'] |
awainverse assignee:awainverse |
6-24765 6 days ago |
21-49696 21 days ago |
23-42134 23 days |
| 33795 |
alreadydone author:alreadydone |
feat(Topology/Sheaves): LocalPredicate prerequisite for étalé spaces |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
418/143 |
Mathlib/AlgebraicGeometry/ProjectiveSpectrum/StructureSheaf.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/Topology/Sheaves/LocalPredicate.lean,Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Topology/Sheaves/Stalks.lean |
6 |
11 |
['adamtopaz', 'alreadydone', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts'] |
adamtopaz assignee:adamtopaz |
6-17408 6 days ago |
6-17408 6 days ago |
33-81516 33 days |
| 34922 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): Multiseries definition and structural lemmas |
Define `Multiseries` and `MultiseriesExpansion` and restate some `Seq` API for `Multiseries`.
---
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-data
t-meta
|
399/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean |
3 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
6-6655 6 days ago |
6-6018 6 days ago |
11-24639 11 days |
| 34783 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): add Compatible definition and API |
Preliminary PR for #26770 (subgraph). Adds the `Compatible` predicate and basic API to `Mathlib.Combinatorics.Graph.Basic`.
- **Compatible**: two graphs are compatible if they agree on incidence for every edge in the intersection of their edge sets.
- Includes `Compatible.isLink_iff`, reflexivity/symmetry instances, `IsLink.of_compatible`, `Compatible.of_disjoint_edgeSet`, and the `Inc`/`IsLoopAt`/`IsNonloopAt` variants.
- **copy** API for copying a graph with new vertex/edge sets and `IsLink`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
101/1 |
Mathlib/Combinatorics/Graph/Basic.lean |
1 |
10 |
['Jun2M', 'YaelDillies', 'eric-wieser', 'github-actions'] |
kmill assignee:kmill |
6-5397 6 days ago |
14-22167 14 days ago |
14-26007 14 days |
| 34888 |
stepan2698-cpu author:stepan2698-cpu |
feat: definition of equivalence of representations |
Defines equivalence of representations, and defines an equivalence between $$\mathrm{Hom}(V, W)$$ and $$V^* \otimes W$$ as representations. This is a missing piece to respell all of the results in Character.lean without using category-theoretic notions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
60/0 |
Mathlib/RepresentationTheory/Intertwining.lean |
1 |
2 |
['github-actions', 'plp127'] |
ocfnash assignee:ocfnash |
6-5396 6 days ago |
10-5814 10 days ago |
12-12767 12 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. |
|
610/0 |
Archive.lean,Archive/Robbins.lean |
2 |
1 |
['github-actions'] |
dwrensha assignee:dwrensha |
6-5391 6 days ago |
9-41575 9 days ago |
9-83028 9 days |
| 34990 |
bwangpj author:bwangpj |
feat: `ContinuousSMul (∀ i, N i) (∀ i, γ i)` |
FLT
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
7/0 |
Mathlib/Topology/Algebra/MulAction.lean |
1 |
4 |
['bwangpj', 'github-actions', 'themathqueen'] |
PatrickMassot assignee:PatrickMassot |
6-5387 6 days ago |
9-24731 9 days ago |
9-27504 9 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'] |
eric-wieser assignee:eric-wieser |
5-85031 5 days ago |
5-84329 5 days ago |
9-21708 9 days |
| 33895 |
jessealama author:jessealama |
feat(Computability/Primrec): add list_take, list_drop, list_modify, and list_set |
This PR shows that several list operations from Lean core are primitive recursive:
- `list_drop`: [`List.drop`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean), via iterating `List.tail` using `nat_iterate`
- `list_take`: [`List.take`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean), via `list_drop` on the reversed list
- `list_modifyHead'`: [`List.modifyHead`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) with external data
- `list_modify'`: [`List.modify`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) with external data
- `list_modify`: [`List.modify`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean)
- `list_set`: [`List.set`](https://github.com/leanprover/lean4/blob/master/src/Init/Prelude.lean)
The primed versions (`list_modify'`, `list_modifyHead'`) take a function `g : β → α → α` that depends on external data of type `β`. This generalization enables deriving the other operations:
- `list_modify` specializes `list_modify'` with `β = Unit`
- `list_set` uses `list_modify'` via `List.set_eq_modify`
Also moves `list_length` earlier in the file (before `list_drop` and `list_take`, which depend on it). |
new-contributor
t-computability
|
48/4 |
Mathlib/Computability/Primrec/List.lean |
1 |
1 |
['github-actions'] |
nobody |
5-57282 5 days ago |
5-56557 5 days ago |
33-56657 33 days |
| 30463 |
grunweg author:grunweg |
feat: support products and disjoint unions in the differential geometry elaborators |
Add support for inferring a model with corners on
- products of manifolds
- disjoint unions of manifolds
- an open subset of a manifold
Note that these can be nested (e.g., a product with multiple factors, a disjoint union of four manifolds or combinations of these).
For binary products of normed spaces, we intentionally refuse to infer a model with corners, as there are two different possible options which are propositionally, but not definitionally equal. For now, we emit a warning to this effect instead. A future PR may remove it (and infer one of these variants): see [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Differential.20geometry.20elaborators.20experiment/near/544942546).
This PR completes an important milestone: models with corners are now inferred for *all* instances mathlib knows about! Update the module doc-string accordingly.
A future PR will golf mathlib using these elaborators.
---
- [x] depends on: #30744
- [x] depends on: #30879
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-meta
|
513/76 |
Mathlib/Geometry/Manifold/Notation.lean,MathlibTest/DifferentialGeometry/Notation.lean,MathlibTest/DifferentialGeometry/NotationAdvanced.lean,MathlibTest/DifferentialGeometry/NotationSphere.lean |
4 |
18 |
['github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'thorimur'] |
thorimur assignee:thorimur |
5-55647 5 days ago |
unknown |
unknown |
| 26588 |
faenuccio author:faenuccio |
feat(Algebra/GroupWithZero/WithZero): add the multiplicative embedding with zero from the range |
We extend the embedding of the range of a `MonoidWithZeroHom` to the codomain by enriching it with the structure of an ordered, multiplicative embedding. In passing, we extend some results about the embedding of `WithZero` of the units of a group with zero, to the group itself.
This will be used in the theory on valuation on rings. In particular, it is needed for correcting the definition of `Valuation.IsRankOne` in Mathlib (see #26872).
Co-authored-by: María Inés de Frutos Fernández @mariainesdff
---
- [x] depends on: #29594
- [x] depends on: #29644
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-order
label:t-algebra$ |
129/2 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Range.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean |
3 |
121 |
['YaelDillies', 'erdOne', 'eric-wieser', 'faenuccio', 'github-actions', 'leanprover-community-bot-assistant', 'mariainesdff', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'pechersky'] |
YaelDillies assignee:YaelDillies |
5-46123 5 days ago |
7-42835 7 days ago |
47-24161 47 days |
| 34940 |
michaellee94 author:michaellee94 |
feat: the graph of a continuous function on a $C^n$ manifold is a $C^n$ manifold |
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
227/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Instances/Graph.lean |
2 |
56 |
['botbaki-review', 'github-actions', 'grunweg', 'michaellee94'] |
ocfnash assignee:ocfnash |
5-43316 5 days ago |
5-42594 5 days ago |
10-36269 10 days |
| 34193 |
bwangpj author:bwangpj |
feat(Topology/Algebra/Ring): ContinuousAddEquiv.mulLeft, mulRight |
The additive homeomorphism from a topological ring to itself, induced by left/right multiplication by a unit.
From FLT.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
FLT
maintainer-merge
|
25/0 |
Mathlib/Topology/Algebra/Ring/Basic.lean |
1 |
9 |
['bwangpj', 'dagurtomas', 'eric-wieser', 'github-actions'] |
dagurtomas assignee:dagurtomas |
5-31973 5 days ago |
27-60218 27 days ago |
27-62353 27 days |
| 34674 |
Citronhat author:Citronhat |
feat(Algebra/Order/Ring): replace ENNReal lemmas with WithTop versions |
* Add `WithTop` versions of basic multiplicative order lemmas.
* Use the new `WithTop` lemmas to replace `ENNReal` proofs and address six TODOs.
* Fix a typo in the `pos_of_ne_zero` alias name. |
new-contributor
t-algebra
label:t-algebra$ |
46/15 |
Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Data/ENNReal/Operations.lean |
3 |
4 |
['Citronhat', 'Ruben-VandeVelde', 'github-actions'] |
Ruben-VandeVelde assignee:Ruben-VandeVelde |
5-29102 5 days ago |
14-63321 14 days ago |
16-48891 16 days |
| 34455 |
vihdzp author:vihdzp |
chore(NumberTheory/MahlerMeasure): turn `BoxPoly` notation into a def |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
22/24 |
Mathlib/NumberTheory/MahlerMeasure.lean |
1 |
10 |
['MichaelStollBayreuth', 'fbarroero', 'github-actions', 'jcommelin', 'vihdzp'] |
MichaelStollBayreuth and jcommelin assignee:jcommelin assignee:MichaelStollBayreuth |
5-26611 5 days ago |
15-42161 15 days ago |
22-13724 22 days |
| 28246 |
Sebi-Kumar author:Sebi-Kumar |
feat(AlgebraicTopology/FundamentalGroupoid): the n-sphere is simply connected for n > 1 |
Prove that the `n`-dimensional sphere (i.e., the unit sphere centered at the origin in `(n + 1)`-dimensional real Euclidean space) is a simply connected space for `n > 1`. This proof follows Hatcher's "Algebraic Topology"; we first prove a general lemma about decomposing loops and then exploit the fact that non-surjective loops in the sphere are homotopically trivial.
Note: To get this file to build, I edited `Mathlib/Tactic/Linter/DirectoryDependency.lean` to remove the restrictions on AlgebraicTopology files importing Geometry, NumberTheory, and FieldTheory files. Thank you to those who shared their expertise [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Warning.20that.20AlgebraicTopology.20can't.20import.20SetTheory/with/533833638). As I understand it, this is just a short-term solution, so I would appreciate feedback on what to do about this situation.
Note: I am unsure where exactly the file `SimplyConnectedSphere.lean` should go or whether that is an appropriate name for the file, so feedback there would be appreciated.
---
To provide additional context, this code was written as a part of the Fields Undergraduate Summer Research Program at the University of Western Ontario under the supervision of Chris Kapulkin and Daniel Carranza.
- [x] depends on: #28208
- [x] depends on: #28198
- [x] depends on: #28185
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
new-contributor
|
343/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnectedSphere.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
3 |
5 |
['dagurtomas', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
robin-carlier assignee:robin-carlier |
5-14337 5 days ago |
11-34201 11 days ago |
11-33979 11 days |
| 34969 |
kim-em author:kim-em |
feat(RingTheory/HopfAlgebra): prove antipode is antihomomorphism |
This PR proves that the antipode of a Hopf algebra is an antihomomorphism:
`antipode (a * b) = antipode b * antipode a`.
The proof uses the convolution algebra structure on `(A ⊗ A) →ₗ[R] A` and shows that `S ∘ μ` and `μ ∘ (S ⊗ S) ∘ comm` are both convolution inverses of `μ`, hence they must be equal by uniqueness of inverses.
This resolves a TODO listed in the file header.
🤖 Prepared with Claude Code |
t-ring-theory |
88/2 |
Mathlib/RingTheory/HopfAlgebra/Basic.lean |
1 |
1 |
['github-actions'] |
erdOne assignee:erdOne |
5-5370 5 days ago |
8-81907 8 days ago |
8-81685 8 days |
| 34998 |
bwangpj author:bwangpj |
feat(LinearAlgebra/BilinearForm): remove `BilinForm.IsRefl` hypothesis in some theorems |
Strengthen some theorems in `LinearAlgebra.BilinearForm.Orthogonal` by removing their `BilinForm.IsRefl` hypothesis; they are true verbatim without it.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
24/21 |
Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean |
1 |
1 |
['github-actions'] |
joelriou assignee:joelriou |
5-5369 5 days ago |
8-79538 8 days ago |
9-10002 9 days |
| 35013 |
CoolRmal author:CoolRmal |
feat(Topology/Bornology): a locally bounded function maps a compact set to a bounded set |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
10/0 |
Mathlib/Topology/Compactness/Compact.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
5-5368 5 days ago |
8-56339 8 days ago |
8-56117 8 days |
| 35014 |
RemyDegenne author:RemyDegenne |
feat: Radon-Nikodym derivative of a composition-product |
For finite measures and kernels, under an absolute continuity condition:
```
(μ ⊗ₘ κ).rnDeriv (ν ⊗ₘ η) =ᵐ[ν ⊗ₘ η] (fun p ↦ μ.rnDeriv ν p.1 * (μ ⊗ₘ κ).rnDeriv (μ ⊗ₘ η) p)
```
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
126/0 |
Mathlib.lean,Mathlib/Probability/Kernel/Composition/MeasureCompProd.lean,Mathlib/Probability/Kernel/Composition/RadonNikodym.lean |
3 |
1 |
['github-actions'] |
EtienneC30 assignee:EtienneC30 |
5-5367 5 days ago |
8-56102 8 days ago |
8-55880 8 days |
| 35015 |
RemyDegenne author:RemyDegenne |
feat: `rnDeriv` as ratio of densities wrt a dominating measure |
For a dominating measure `ξ` of two sigma-finite measures `μ` and `ν`,
```
μ.rnDeriv ν =ᵐ[ν] fun x ↦ μ.rnDeriv ξ x / ν.rnDeriv ξ x
```
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
74/0 |
Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean |
1 |
1 |
['github-actions'] |
EtienneC30 assignee:EtienneC30 |
5-5366 5 days ago |
8-55612 8 days ago |
8-55390 8 days |
| 35019 |
JovanGerb author:JovanGerb |
feat(Algebra/Homology/ComplexShape): use `to_dual` |
This PR uses `to_dual` to dualize `ComplexShape` to itself, swapping `next` to `prev` and `up` to `down`.
If we wait for #34863 to be merged first, the we can get rid of one `to_dual existing`.
---
[](https://gitpod.io/from-referrer/)
|
|
29/50 |
Mathlib/Algebra/Homology/ComplexShape.lean,Mathlib/Tactic/Translate/ToDual.lean |
2 |
1 |
['github-actions'] |
robin-carlier assignee:robin-carlier |
5-5365 5 days ago |
8-32699 8 days ago |
8-32477 8 days |
| 35039 |
wwylele author:wwylele |
feat(LinearAlgebra/AffineSpace): small lemmas about lineMap and homothety |
Three lemmas about their interaction with AffineSubspace, and AffineCombination. Building towards #34826
`AffineMap.homothety_mem` is mostly just restating `AffineMap.lineMap_mem`, but since they are affine map with different names, putting it here can give better discovery
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
25/0 |
Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/Combination.lean |
2 |
5 |
['copilot-pull-request-reviewer', 'github-actions'] |
joelriou assignee:joelriou |
5-5363 5 days ago |
8-26146 8 days ago |
8-25924 8 days |
| 34915 |
smmercuri author:smmercuri |
feat(Topology/Algebra/RestrictedProduct): the units of a restricted product are isomorphic to the restricted product of the units |
---
[](https://gitpod.io/from-referrer/)
|
t-topology
FLT
maintainer-merge
|
94/0 |
Mathlib.lean,Mathlib/Topology/Algebra/RestrictedProduct/Units.lean |
2 |
5 |
['dagurtomas', 'github-actions', 'smmercuri'] |
dagurtomas assignee:dagurtomas |
4-56838 4 days ago |
4-56013 4 days ago |
11-38410 11 days |
| 34440 |
grunweg author:grunweg |
feat: linter for name components in uppercase |
Per the naming convention, these are errors (unless they are an abbreviation).
Mathlib has *many* violations at the moment: for this reason, we add this as an environment linter
and automatically add all current exceptions. Once these have been fixed, converting to a syntax linter
is desirable.
Until then, track the number of such exceptions as technical debt.
---
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/naming.20convention.20linter/with/570617527)
Note to self: wait for CI, then do a final nolints update. and try to implement the follow-up soon
[](https://gitpod.io/from-referrer/)
|
t-linter
large-import
maintainer-merge
|
1018/9 |
Mathlib/Tactic/Linter/Style.lean,MathlibTest/DoubleUnderscore.lean,MathlibTest/HashLint.lean,MathlibTest/Lint.lean,MathlibTest/LintStyle.lean,scripts/nolints.json,scripts/technical-debt-metrics.sh |
7 |
21 |
['github-actions', 'grunweg', 'joneugster'] |
joneugster assignee:joneugster |
4-54376 4 days ago |
11-37628 11 days ago |
13-39835 13 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 |
25 |
['WilliamCoram', 'erdOne', 'fbarroero', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] |
alreadydone assignee:alreadydone |
4-45670 4 days ago |
4-45025 4 days ago |
17-45997 17 days |
| 34423 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `LucasLehmer.norm_num_ext.sModNat_eq_sMod`: 950 ms before, 758 ms after 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
1/8 |
Mathlib/NumberTheory/LucasLehmer.lean |
1 |
10 |
['eric-wieser', 'euprunin', 'github-actions', 'leanprover-radar'] |
eric-wieser assignee:eric-wieser |
4-41765 4 days ago |
5-26534 5 days ago |
23-10403 23 days |
| 34154 |
euprunin author:euprunin |
chore: golf using `grind` and add `grind` annotations |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `SimplicialObject.Splitting.IndexSet.eqId_iff_len_eq`: <10 ms before, 41 ms after
* `Orientation.nonneg_inner_and_areaForm_eq_zero_iff_sameRay`: 311 ms before, 284 ms after 🎉
* `UV.compression_self`: 29 ms before, 19 ms after 🎉
* `AkraBazziRecurrence.GrowsPolynomially.eventually_atTop_nonneg_or_nonpos`: 2828 ms before, 1399 ms after 🎉
* `Cycle.chain_iff_pairwise`: <10 ms before, 149 ms after
* `List.dlookup_kunion_left`: 21 ms before, 104 ms after
* `Polynomial.isRoot_of_isRoot_iff_dvd_derivative_mul`: 106 ms before, 183 ms after
* `IsSepClosed.exists_root_C_mul_X_pow_add_C_mul_X_add_C`: 405 ms before, 291 ms after 🎉
* `InnerProductGeometry.norm_add_eq_add_norm_iff_angle_eq_zero`: 425 ms before, 309 ms after 🎉
* `Monoid.CoprodI.Word.mem_equivPair_tail_iff`: 161 ms before, 263 ms after
* `pathComponent_congr`: <10 ms before, 31 ms after
* `preCantorSet_antitone`: 2147 ms before, 683 ms after 🎉
* `tendstoLocallyUniformlyOn_iff_filter`: 11 ms before, 71 ms after
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
21/100 |
Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Degree/Operations.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/AlgebraicTopology/SimplicialObject/Split.lean,Mathlib/Analysis/InnerProductSpace/TwoDim.lean,Mathlib/Combinatorics/SetFamily/Compression/UV.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/List/Sigma.lean,Mathlib/Data/Opposite.lean,Mathlib/FieldTheory/IsAlgClosed/Basic.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean,Mathlib/GroupTheory/CoprodI.lean,Mathlib/Topology/Connected/PathConnected.lean,Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean |
15 |
8 |
['Parcly-Taxel', 'euprunin', 'github-actions', 'leanprover-radar', 'mathlib4-merge-conflict-bot', 'tb65536'] |
kim-em assignee:kim-em |
4-41688 4 days ago |
21-70243 21 days ago |
22-30747 22 days |
| 34112 |
euprunin author:euprunin |
chore: golf using `grind` (and add one supporting `grind` annotation) |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `Quandle.conj_swap`: 63 ms before, 35 ms after 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
2/3 |
Mathlib/Algebra/Quandle.lean |
1 |
5 |
['euprunin', 'github-actions', 'leanprover-radar'] |
robin-carlier assignee:robin-carlier |
4-41682 4 days ago |
5-30156 5 days ago |
30-24946 30 days |
| 33082 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(GroupTheory/SpecificGroups/Alternating/Simple): the alternating group on at least 5 letters is simple. |
This is the conclusion of the story of the proof of simplicity of the alternating group using the
Iwasawa criterion.
* `Equiv.Perm.iwasawaStructure_two`:
the natural `IwasawaStructure` of `Equiv.Perm α` acting on `Nat.Combination α 2`
Its commutative subgroups consist of the permutations with support
in a given element of `Nat.Combination α 2`.
They are cyclic of order 2.
* `alternatingGroup_of_le_of_normal`:
If `α` has at least 5 elements, then a nontrivial normal subgroup
of `Equiv.Perm α` contains the alternating group.
* `alternatingGroup.iwasawaStructure_three`:
the natural `IwasawaStructure` of `alternatingGroup α` acting on `Nat.Combination α 3`
Its commutative subgroups consist of the permutations with support
in a given element of `Nat.Combination α 2`.
They are cyclic of order 3.
* `alternatingGroup.iwasawaStructure_three`:
the natural `IwasawaStructure` of `alternatingGroup α` acting on `Nat.Combination α 4`
Its commutative subgroups consist of the permutations of
cycleType (2, 2) with support in a given element of `Nat.Combination α 2`.
They have order 4 and exponent 2 (`IsKleinFour`).
* `alternatingGroup.normal_subgroup_eq_bot_or_eq_top`:
If `α` has at least 5 elements, then a nontrivial normal subgroup of `alternatingGroup` is `⊤`.
* `alternatingGroup.isSimpleGroup`:
If `α` has at least 5 elements, then `alternatingGroup α`
is a simple group.
---
- [x] depends on: #34307
- [x] depends on: #34308
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
459/5 |
Mathlib.lean,Mathlib/GroupTheory/Perm/ConjAct.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/MaximalSubgroups.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean,Mathlib/GroupTheory/SpecificGroups/KleinFour.lean |
8 |
54 |
['AntoineChambert-Loir', 'Ruben-VandeVelde', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] |
mattrobball assignee:mattrobball |
4-39015 4 days ago |
4-37461 4 days ago |
15-63145 15 days |
| 34872 |
Hagb author:Hagb |
feat(Data/Finsupp/Basic): add `comapDomain_embDomain` and generalize `comapDomain_surjective` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
9/7 |
Mathlib/Data/Finsupp/Basic.lean |
1 |
3 |
['Hagb', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
4-31958 4 days ago |
4-29675 4 days ago |
12-20877 12 days |
| 33672 |
euprunin author:euprunin |
chore: golf using `grind`. add `grind` annotations. |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `Orientation.nonneg_inner_and_areaForm_eq_zero_iff_sameRay`: 287 ms before, 336 ms after
* `PFunctor.liftr_iff`: 49 ms before, 93 ms after
* `IsAdjoinRootMonic.coeff_root_pow`: 119 ms before, 267 ms after
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
9/33 |
Mathlib/Analysis/InnerProductSpace/TwoDim.lean,Mathlib/Data/PFunctor/Univariate/Basic.lean,Mathlib/RingTheory/IsAdjoinRoot.lean |
3 |
4 |
['euprunin', 'github-actions', 'jcommelin', 'leanprover-radar'] |
dwrensha assignee:dwrensha |
4-29469 4 days ago |
4-29469 4 days ago |
38-85709 38 days |
| 34690 |
SnirBroshi author:SnirBroshi |
chore(Data/Set/Inclusion): small golf |
Also added `inclusion_eq_subtype_map` for `inclusion h = Subtype.map id h` which is true by definition.
---
~~I also respelled the def of `Set.inclusion` using `Subtype.map` so that we can use existing `Subtype.map` API with it.
The new spelling is defeq to the previous, but it still surfaced a few defeq abuses that I had to fix.
(If the respelling is controversial I'll revert it, but ideally we wouldn't even `@[expose]` the definition)~~
[](https://gitpod.io/from-referrer/)
|
t-data |
14/16 |
Mathlib/Data/Set/Inclusion.lean |
1 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
4-20398 4 days ago |
4-20743 4 days ago |
13-68712 13 days |
| 35084 |
edegeltje author:edegeltje |
feat(Combinatorics/SimpleGraph): The Cayley graph for structures with `Mul`/`Add` |
This pr:
- adds the definition `SimpleGraph.mulCayley`, defining the simple graph induced by a `Mul` instance,
- proves various lemmas about the above,
- adds/proves the additive versions of all of the above,
- redefines `SimpleGraph.circulantGraph` to use `addCayley`,
- reproves lemmas about `circulantGraph` to use the new `addCayley` lemmas.
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 |
106/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cayley.lean |
2 |
22 |
['SnirBroshi', 'edegeltje', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
4-20371 4 days ago |
4-19652 4 days ago |
7-37767 7 days |
| 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.
However, this result does not seem to be known to Mathlib.
* 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 |
733/0 |
Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Topology/Semicontinuity/Basic.lean,Mathlib/Topology/Sion.lean,docs/references.bib |
5 |
10 |
['AntoineChambert-Loir', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'thorimur'] |
dwrensha and kmill assignee:kmill assignee:dwrensha |
4-18265 4 days ago |
4-18265 4 days ago |
65-51763 65 days |
| 33348 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/Transvection): characterization of transvections among dilatransvections |
WIP.
* `LinearEquiv.fixedReduce`. Pass a linear equivalence to the quotient by a fixed subspace.
* Characterize transvections among dilatransvections by the fact that their reduction is the identity.
---
- [x] depends on: #33347
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
273/3 |
Mathlib/LinearAlgebra/Transvection.lean |
1 |
15 |
['AntoineChambert-Loir', 'dagurtomas', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
4-18239 4 days ago |
4-17504 4 days ago |
12-34826 12 days |
| 34978 |
harahu author:harahu |
doc(CategoryTheory/Bicategory/Functor): clean up docstrings |
Fix doc-only inconsistencies across bicategory functor files.
---
The issues were found and fixed with help from Codex.
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
45/41 |
Mathlib/CategoryTheory/Bicategory/Functor/Cat/ObjectProperty.lean,Mathlib/CategoryTheory/Bicategory/Functor/Lax.lean,Mathlib/CategoryTheory/Bicategory/Functor/LocallyDiscrete.lean,Mathlib/CategoryTheory/Bicategory/Functor/Oplax.lean,Mathlib/CategoryTheory/Bicategory/Functor/Prelax.lean,Mathlib/CategoryTheory/Bicategory/Functor/Pseudofunctor.lean,Mathlib/CategoryTheory/Bicategory/Functor/StrictPseudofunctor.lean,Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean |
8 |
8 |
['dagurtomas', 'github-actions', 'harahu', 'joelriou'] |
erdOne assignee:erdOne |
4-17980 4 days ago |
4-28107 4 days ago |
8-42437 8 days |
| 33944 |
artie2000 author:artie2000 |
feat(Algebra/Ring): formally real rings |
* Define formally real rings
* Prove basic inductive facts about them
Co-authored-by: Violeta Hernández Palacios
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
160/0 |
Mathlib.lean,Mathlib/Algebra/Ring/IsFormallyReal.lean |
2 |
24 |
['artie2000', 'github-actions', 'vihdzp'] |
mariainesdff assignee:mariainesdff |
4-12398 4 days ago |
4-11362 4 days ago |
14-79271 14 days |
| 34069 |
artie2000 author:artie2000 |
feat(Algebra/Order/Algebra): algebra is ordered iff inclusion map is monotone |
* Prove that an extension of ordered semirings forms an ordered algebra iff the inclusion map is injective
* Reorganise section variables for clarity
The typeclass `PartialOrder α` in `IsOrderedModule.of_algebraMap_mono` can be generalised to `Preorder α`. This has no mathematical application and all the other lemmas are proved over a partially ordered type, so this generalisation was not made.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-order
label:t-algebra$ |
18/7 |
Mathlib/Algebra/Order/Algebra.lean |
1 |
1 |
['github-actions'] |
pechersky assignee:pechersky |
4-12381 4 days ago |
4-10669 4 days ago |
30-8833 30 days |
| 35021 |
SnirBroshi author:SnirBroshi |
chore(Data/Bool/Count): golf using grind |
---
The goal was to get rid of the flexible-linter exception, but I ended up golfing more.
[](https://gitpod.io/from-referrer/)
|
t-data |
6/23 |
Mathlib/Data/Bool/Count.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'joneugster', 'leanprover-radar', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
4-6267 4 days ago |
4-32599 4 days ago |
8-40827 8 days |
| 25992 |
Multramate author:Multramate |
feat(RingTheory/Ideal/Span): add pair lemmas |
This PR continues the work from #25323.
Original PR: https://github.com/leanprover-community/mathlib4/pull/25323 |
t-ring-theory |
128/32 |
Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Span.lean |
3 |
41 |
['Multramate', 'Ruben-VandeVelde', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib4-merge-conflict-bot'] |
erdOne assignee:erdOne |
4-5408 4 days ago |
7-41618 7 days ago |
7-41399 7 days |
| 26292 |
RemyDegenne author:RemyDegenne |
feat(MeasureTheory): tightness of the range of a sequence |
* `isTightMeasureSet_range_iff_tendsto_limsup_measure_norm_gt`: in a proper normed group,
the range of a sequence of measures `μ : ℕ → Measure E` is tight if and only if the function
`r : ℝ ↦ limsup (fun n ↦ μ n {x | r < ‖x‖}) atTop` tends to `0` at infinity.
* `isTightMeasureSet_range_iff_tendsto_limsup_inner`: in a finite-dimensional inner product space,
the range of a sequence of measures `μ : ℕ → Measure E` is tight if and only if the function
`r : ℝ ↦ limsup (fun n ↦ μ n {x | r < ‖⟪y, x⟫_𝕜‖}) atTop` tends to `0` at infinity for all `y`.
---
[](https://gitpod.io/from-referrer/)
---
*This PR continues the work from #24838.*
*Original PR: https://github.com/leanprover-community/mathlib4/pull/24838* |
t-measure-probability |
186/2 |
Mathlib/MeasureTheory/Measure/TightNormed.lean |
1 |
5 |
['Komyyy', 'RemyDegenne', 'github-actions', 'mathlib4-merge-conflict-bot'] |
urkud assignee:urkud |
4-5407 4 days ago |
7-43810 7 days ago |
8-62300 8 days |
| 30982 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): angle bisection and the incenter |
Add lemmas relating the incenter and excenters of a simplex to angle bisection, both generally for a simplex and more specifically with oriented angles for a triangle.
More specific lemmas for a simplex (identifying exactly which excenter corresponds to which bisectors) will require various additional API for bisectors of angles betweeen oriented affine subspaces (but for the most common applications to typical plane geometry problems, I expect the triangle lemmas with oriented angles to be more useful).
---
- [ ] depends on: #30474
- [ ] depends on: #30477
- [ ] depends on: #30600
- [ ] depends on: #30703
- [ ] depends on: #30938
- [ ] depends on: #30981
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
278/0 |
Mathlib.lean,Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
2 |
4 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] |
JovanGerb assignee:JovanGerb |
4-5406 4 days ago |
7-45416 7 days ago |
7-45194 7 days |
| 33650 |
vihdzp author:vihdzp |
refactor: deprecate bespoke `Hyperreal` machinery |
Currently, these six definitions are in the `Hyperreal` namespace:
- `IsSt x r`: a predicate for `r` being a standard part of `x`
- `st x`: the standard part of `x`
- `Infinitesimal x`: predicate for infinitesimal elements
- `InfinitePos x`: predicate for infinite and positive elements
- `InfiniteNeg x`: predicate for infinite and negative elements
- `Infinite x`: predicate for infinite (positive or negative) elements.
We deprecate all six of these and all of their API, in favor of reasoning with [`ArchimedeanClass`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Archimedean/Class.html#ArchimedeanClass) and [`ArchimedeanClass.stdPart`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/StandardPart.html#ArchimedeanClass.stdPart). The replacements are as follows:
- `IsSt x r`: `0 ≤ ArchimedeanClass.mk x ∧ stdPart x = r`
- `st x`: `stdPart x`
- `Infinitesimal x`: `0 < ArchimedeanClass.mk x`
- `InfinitePos x`: `0 < x ∧ ArchimedeanClass.mk x < 0`
- `InfiniteNeg x`: `x < 0 ∧ ArchimedeanClass.mk x < 0`
- `Infinite x`: `ArchimedeanClass.mk x < 0`
All of these equivalences are proved within the PR, though these new theorems have also been insta-deprecated.
Most of the existing API on these predicates was largely uninteresting boilerplate, and has been deprecated without replacement. For the few results of mathematical interest (those whose proofs are longer than a few lines), I've golfed their proofs as a stress test to ensure that this new API is capable of easily proving them.
I've kept everything in the same file to minimize the diff. A future PR will move the obsolete material to `Deprecated.Hyperreal`.
---
- [x] depends on: #33644
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
384/96 |
Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Analysis/Real/Hyperreal.lean |
2 |
12 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'ocfnash', 'vihdzp', 'wwylele'] |
dagurtomas assignee:dagurtomas |
4-5405 4 days ago |
7-10882 7 days ago |
12-74933 12 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'] |
pechersky assignee:pechersky |
4-5404 4 days ago |
10-8345 10 days ago |
15-405 15 days |
| 34820 |
staroperator author:staroperator |
feat(Order/Ideal): more results on order ideals |
Some iffs, closure of finite supremum, and that every proper ideal is contained in a maximal ideal.
---
[](https://gitpod.io/from-referrer/)
|
t-order
large-import
|
79/5 |
Mathlib/Order/Ideal.lean |
1 |
5 |
['bryangingechen', 'github-actions', 'leanprover-radar', 'staroperator'] |
pechersky assignee:pechersky |
4-5403 4 days ago |
7-9986 7 days ago |
13-54553 13 days |
| 34966 |
Deep0Thinking author:Deep0Thinking |
feat(MeasureTheory): add `IntegrableOn. tendsto_primitive_` over `Ioi/Iio` and `IntegrableOn.continuousOn_primitive_` over `Ioi/Iio/Ici/Iic` |
This PR mainly proves:
- `IntegrableOn.tendsto_primitive_` over `Ioi/Iio`
- `IntegrableOn.continuousWithinAt_primitive_` over `Ioi/Iio`
- `IntegrableOn.continuousOn_primitive_` over `Ioi/Iio/Ici/Iic`
- `IntegrableOn.tendsto_integral_` over `Ioi/Iio/Ici/Iic`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
204/1 |
Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
3 |
6 |
['CoolRmal', 'Deep0Thinking', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
4-5400 4 days ago |
8-59750 8 days ago |
9-53234 9 days |
| 35067 |
bustercopley author:bustercopley |
style(RingTheory/PowerSeries/Derivative): prove derivative_pow from Derivation.leibniz_pow |
---
Firstly prove `derivative_pow` from the more general `Derivation.leibniz_pow` (because I think this is more illuminating), and secondly generalize `derivative_pow` to `CommSemiring`. The two are independent, in that the texts of the original and modified proofs both work fine, with either hypothesis.
|
t-ring-theory
easy
|
4/10 |
Mathlib/RingTheory/PowerSeries/Derivative.lean |
1 |
3 |
['bustercopley', 'github-actions'] |
erdOne assignee:erdOne |
4-5399 4 days ago |
8-1294 8 days ago |
8-1720 8 days |
| 35081 |
tb65536 author:tb65536 |
feat(Topology/Algebra/Group/Extension): define short exact sequence of topological groups |
This PR defines a short exact sequence of topological groups to be a closed embedding followed by an open quotient map (extracted from #32672).
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
57/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Group/Extension.lean |
2 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
4-5398 4 days ago |
7-27228 7 days ago |
7-49226 7 days |
| 35100 |
stepan2698-cpu author:stepan2698-cpu |
feat: definition of a character of a representation |
This PR begins to transfer definitions and theorems about characters from `FDRep` to `Representation`. Once #34888 is merged, the theorems involving isomorphisms of representations will be appropriately restated.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
57/0 |
Mathlib/RepresentationTheory/Character.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
4-5396 4 days ago |
7-20118 7 days ago |
7-19896 7 days |
| 34757 |
Hagb author:Hagb |
feat(Algebra/MvPolynomial/Rename): some lemmas about `rename` and `killCompl` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
64/1 |
Mathlib/Algebra/MvPolynomial/Rename.lean |
1 |
3 |
['dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
3-83123 3 days ago |
3-81552 3 days ago |
13-71740 13 days |
| 34758 |
Hagb author:Hagb |
feat(RingTheory/MvPolynomial/MonomialOrder): misc lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
51/1 |
Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
1 |
5 |
['Hagb', 'erdOne', 'github-actions'] |
mattrobball assignee:mattrobball |
3-82751 3 days ago |
3-82053 3 days ago |
8-7773 8 days |
| 24065 |
kim-em author:kim-em |
chore: script to give topological sort of modules |
This script is not useful by itself: it just gives a topological sort of Mathlib's import graph. But I've several times found it useful when I want to modify many files systematically with minimal rebuilding: just work backwards through the list.
|
|
102/0 |
scripts/README.md,scripts/topological_sort.py |
2 |
14 |
['SnirBroshi', 'github-actions', 'jcommelin', 'kim-em', 'mathlib4-merge-conflict-bot'] |
jcommelin assignee:jcommelin |
3-73132 3 days ago |
5-74320 5 days ago |
5-74098 5 days |
| 33188 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): introduce rename |
This file establishes the `rename` operation on multivariate power series under a map with finite fibers,
which modifies the set of variables.
This file is patterned after `MvPolynomials/Rename.lean`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
large-import
|
426/1 |
Mathlib.lean,Mathlib/Data/Finsupp/Antidiagonal.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean |
7 |
26 |
['BryceT233', 'Komyyy', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] |
erdOne and riccardobrasca assignee:riccardobrasca assignee:erdOne |
3-72814 3 days ago |
3-71116 3 days ago |
32-39947 32 days |
| 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 |
10/10 |
Mathlib/Combinatorics/SimpleGraph/Circulant.lean |
1 |
4 |
['SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
3-66723 3 days ago |
3-65983 3 days ago |
4-45153 4 days |
| 34870 |
JovanGerb author:JovanGerb |
refactor(gcongr): split `MVarId.gcongr` into multiple functions |
This PR splits `MVarId.gcongr` into multiple functions. Previously, `MVarId.gcongr` was a bit too large of a function for readability/maintainability. We also add a new monad `GCongrM` in order to keep track of the state more conveniently.
This change will make future improvements in `gcongr` easier. This PR doesn't change any behaviour, but does add two TODO comments.
Implementation notes:
- `MVarId.gcongrCore` will now always throw an exception when it doesn't succeed, and it is wrapped in a try-catch block to catch these if that is desired.
- I replaced `saveState` with `getMCtx`, because the former didn't work in the `GCongrM` monad, and the only thing we are interested in saving/reverting is the metavariable context anyways.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
135/98 |
Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Core.lean |
2 |
2 |
['github-actions', 'joneugster'] |
dwrensha and joneugster assignee:dwrensha assignee:joneugster |
3-66648 3 days ago |
3-63244 3 days ago |
10-20304 10 days |
| 35292 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): taking twice from a walk equals taking the minimum |
this is an analogue to `List.take_take`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
5/0 |
Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean |
1 |
2 |
['SnirBroshi', 'github-actions'] |
nobody |
3-42161 3 days ago |
3-41419 3 days ago |
3-54166 3 days |
| 35307 |
samueloettl author:samueloettl |
fix(Dynamics/BirkhoffSum): birkhoffAverage_of_comp_eq only needs AddCommMonoid |
---
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
easy
|
8/8 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
4 |
['github-actions', 'samueloettl'] |
nobody |
3-38481 3 days ago |
3-38593 3 days ago |
3-38371 3 days |
| 33249 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): `take` is path if original walk is path |
Proves that taking or dropping the first `n` consecution darts from a path gives another path.
---
- [x] depends on: #26614
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
16/0 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
7 |
['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
nobody |
3-37557 3 days ago |
3-40888 3 days ago |
10-27162 10 days |
| 35308 |
martinwintermath author:martinwintermath |
feat(Geometry/Convex/Cone): Add coercion from submodule to cone |
Add coercion from submodule to cone and support lemmas. The main feature is
* `PointedCone.ofSubmodule` coercing a submodule to a pointed cone and the corresponding `Coe` instance.
There are further lemmas coercing membership and lattice operations.
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry |
55/4 |
Mathlib/Geometry/Convex/Cone/Pointed.lean,Mathlib/Geometry/Convex/Cone/README.md |
2 |
1 |
['github-actions'] |
nobody |
3-37063 3 days ago |
3-36045 3 days ago |
3-35823 3 days |
| 33129 |
Paul-Lez author:Paul-Lez |
feat(Tactic/Simproc/VecPerm): add simproc for permuting entries of a vector |
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
165/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/VecPerm.lean,MathlibTest/Simproc/VecPerm.lean |
4 |
73 |
['JovanGerb', 'Paul-Lez', 'b-mehta', 'eric-wieser', 'github-actions', 'ocfnash'] |
JovanGerb assignee:JovanGerb |
3-34929 3 days ago |
3-34243 3 days ago |
43-27947 43 days |
| 34697 |
wwylele author:wwylele |
feat(Geometry/Euclidean): the Euclidean volume measure |
This PR starts a series to set up volume measure for Euclidean geometry, so it can be used in formalizing problems involving area and volume.
This PR only introduce the basic definition and properties. Some future PR will also include
- Integral along an affine subspace to calculate the volume of an object
- Define volume of a simplex using the base * height / n formula (not assuming measurability)
- Show that the defined volume matches the measure of the interior (see the draft #34826 for the target lemma)
- More specialized formula for the area of triangles.
---
Zulip thread: [#Is there code for X? > Measure on affine space](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Measure.20on.20affine.20space/with/570193872)
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry
t-measure-probability
|
165/0 |
Mathlib.lean,Mathlib/Geometry/Euclidean/Volume/Measure.lean |
2 |
11 |
['copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
jsm28 assignee:jsm28 |
3-34794 3 days ago |
13-19578 13 days ago |
16-9584 16 days |
| 32440 |
thorimur author:thorimur |
feat: make the `unusedInstancesInType` linters fire when instances are not used outside of proofs in the type |
This PR adjusts the `unusedDecidableInType` to prevent false negatives on declarations that only use `Decidable*` hypotheses in proofs that appear in the type. That is, the linter now fires when the `Decidable*` linter is unused outside of proofs.
This PR also changes the warning message to be more direct, and indicates when the instance appears only in a proof (vs. not appearing at all).
We exempt some deprecated lemmas in `Mathlib.Analysis.Order.Matrix` which the linter now fires on. (Presumably, most prior violations had been cleaned up by #10235, which also detected such lemmas.)
Note that this took some tinkering to achieve sufficient performance. We use the following novel(?) "dolorous telescope" strategy (so named due to introducing `sorry`s) to avoid traversing the whole type:
- when encountering an instance binder of concern, telescope to create an fvar.
- when encountering any other binder, instantiate it with `sorry`.
- as we proceed, collect the free variables from these expressions which do not appear in proofs. Since the instances of concern are the only free variables, free variable collection avoids traversing many subexpressions by checking for `hasFVar`, which is a computed field accessible in constant time.
Perhaps surprisingly, this is (on net) more performant than using `eraseProofs` and then detecting dependence via bvars.
We also implement an `Expr`-level early exit for most types by checking if they bind any instance of concern first. (This adds a very small overhead to types which *do* have an instance of concern, but the check is very fast.)
This also adds a profiler category to this linter.
Note: we still have yet to optimize (pre)-infotree traversal performance, and have yet to avoid proofs that appear in the value of definitions. However, this PR sets us up to do so.
---
- [x] depends on: #35102
---
## Notes on performance
You might be wondering if this *is* actually a faster strategy, seeing as the bench is quite noisy. To determine this, I made a copy of the linter which I could vary without rebuilding mathlib, and profiled the relevant component locally on all imported declarations in Mathlib by linting the `eoi` token:
```lean
module
public meta import Lean
public import Mathlib.Tactic.Linter.UnusedInstancesInTypeCopy
import all Mathlib.Tactic.Linter.UnusedInstancesInTypeCopy
open Lean Meta Elab Term Command Mathlib.Linter.UnusedInstancesInType
meta section
local instance : Insert Name NameSet where
insert := fun n s => s.insert n
def runCopy : Linter where run stx := do
if stx.isOfKind ``Parser.Command.eoi then
let opts := (← getOptions).setBool `profiler true
let consts := (← getEnv).constants.map₁
-- The following expose private decls in their types, so break `MetaM` methods:
let badRecs : NameSet := {`IO.Promise.casesOn, `IO.Promise.recOn, `IO.Promise.rec}
profileitM Exception "control" opts do
for (n,_) in consts do
liftTermElabM do unless n.isInternalDetail || badRecs.contains n do pure ()
profileitM Exception "bench" opts do
for (n,cinfo) in consts do
unless n.isInternalDetail || badRecs.contains n do
cinfo.toConstantVal.onUnusedInstancesInTypeWhere isDecidableVariant
fun _ _ => pure ()
initialize addLinter runCopy
```
(This could have been done in a `run_cmd`, but I wanted to replicate the circumstances of linting as closely as possible, just in case it introduced mysterious async effects.)
Then, in a separate file, I imported `Mathlib` and the above linter, and cycled through reading out the result and editing the underlying component then rebuilding. The control was reliably ~1.07-1.12s. The different strategies came out as follows (the following values are not averaged, but are representative):
| | without early exit | with early exit |
| ---: | :---: | :---: |
| `eraseProofs` | 97.4s | 6.82s |
| dolorous telescope | 20.3s | 3.99s |
As you can see, the early exit cuts the absolute value (and therefore the absolute difference) down dramatically. But seeing as this lays the groundwork for linting defs and will be used for more linters (with wider scopes, and less early exit opportunities), I think we should opt for the more performant version even though there's some extra complexity. :)
[](https://gitpod.io/from-referrer/)
|
t-linter
maintainer-merge
|
233/62 |
Mathlib/Analysis/Matrix/Order.lean,Mathlib/Lean/Expr/Basic.lean,Mathlib/Tactic/Linter/UnusedInstancesInType.lean,MathlibTest/UnusedInstancesInType/Basic.lean,MathlibTest/UnusedInstancesInType/Decidable.lean,MathlibTest/UnusedInstancesInType/Fintype.lean,MathlibTest/UnusedInstancesInType/FintypeNeedingImport.lean,MathlibTest/UnusedInstancesInType/SetOption.lean |
8 |
39 |
['github-actions', 'grunweg', 'joneugster', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'thorimur'] |
joneugster assignee:joneugster |
3-28983 3 days ago |
3-25940 3 days ago |
38-86309 38 days |
| 34598 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): nondegeneracy conditions and interconversion with Affine.Triangle |
This PR implements suggestions provided in [this comment](https://github.com/leanprover-community/mathlib4/pull/34393#issuecomment-3810047384) by @jsm28: interconversion between `Polygon P 3` and `Affine.Triangle` as well as the nondegeneracy conditions `NondegenerateVertices` and `NondegenerateEdges`. I tried to keep typeclass restrictions as minimal as possible.
---
|
new-contributor
t-euclidean-geometry
maintainer-merge
|
117/5 |
Mathlib/Geometry/Polygon/Basic.lean |
1 |
18 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'jcommelin', 'jsm28'] |
jsm28 assignee:jsm28 |
3-24204 3 days ago |
4-27307 4 days ago |
17-32207 17 days |
| 35266 |
j-loreaux author:j-loreaux |
refactor: make `OrderIso.ofHomInv` take actual `OrderHom`s instead of using classes |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
9/22 |
Mathlib/Order/Hom/Basic.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean |
2 |
1 |
['github-actions'] |
nobody |
3-23736 3 days ago |
3-22871 3 days ago |
3-22649 3 days |
| 35289 |
sgouezel author:sgouezel |
chore: remove buggy instances |
For a given `F`, there should be at most one instance `OrderHomClass F α β` (by uniqueness of instances, and since alpha and beta are outparams). The PR removes two instances that violate this uniqueness principle.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
0/10 |
Mathlib/Order/Hom/Basic.lean |
1 |
3 |
['github-actions', 'grunweg', 'leanprover-radar'] |
nobody |
3-23305 3 days ago |
3-59268 3 days ago |
3-59046 3 days |
| 35261 |
j-loreaux author:j-loreaux |
feat: `push` lemmas for `Filter.NeBot` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
6/5 |
Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Filter/Defs.lean,Mathlib/Topology/Algebra/InfiniteSum/Defs.lean,Mathlib/Topology/Algebra/InfiniteSum/SummationFilter.lean |
4 |
1 |
['github-actions'] |
nobody |
3-22584 3 days ago |
3-21007 3 days ago |
3-20785 3 days |
| 34705 |
mpenciak author:mpenciak |
feat(AlgebraicGeometry): Grassmannian functor |
This PR shows that the association `A → A ⊗[R] M` for an `R`-module `M`, and `R`-algebra `A` forms a functor.
(Disclosure: This PR was partially prepared by Claude)
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
109/2 |
Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Grassmannian.lean |
2 |
6 |
['github-actions', 'mpenciak', 'robin-carlier'] |
mariainesdff assignee:mariainesdff |
3-21644 3 days ago |
3-20919 3 days ago |
7-69932 7 days |
| 34914 |
jvanwinden author:jvanwinden |
feat(Analysis/Normed/Module/FiniteDimension): add lemmas on IsTheta and summability |
IsTheta.summable_iff is a natural generalization of IsEquivalent.summable_iff. Some adjacent lemmas now become direct consequences.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
26/7 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean |
1 |
13 |
['github-actions', 'jvanwinden', 'themathqueen', 'vihdzp', 'wwylele'] |
urkud assignee:urkud |
3-20047 3 days ago |
3-18969 3 days ago |
11-40037 11 days |
| 35329 |
BryceT233 author:BryceT233 |
feat(Data/Finsupp): add computational lemmas for cons and single |
This PR introduces `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`.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
25/0 |
Mathlib/Data/Finsupp/Fin.lean |
1 |
2 |
['github-actions'] |
nobody |
3-7699 3 days ago |
3-5931 3 days ago |
3-5709 3 days |
| 34997 |
themathqueen author:themathqueen |
feat(LinearAlgebra/Matrix): convolutive intrinsic star ring on matrices |
Now that we have the type synonym `WithConv`, we can define a star ring structure on `WithConv (Matrix m n R)` given by the Hadamard product and the intrinsic star (intrinsic star here means `x.map star`).
`WithConv (Matrix m n R)` is star-algebraically equivalent to `WithConv ((n → R) →ₗ[R] (m → R))` (will be done in a later PR).
---
- [x] depends on: #34945
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
97/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/WithConv.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'themathqueen'] |
nobody |
3-7243 3 days ago |
7-10925 7 days ago |
7-10703 7 days |
| 30900 |
vihdzp author:vihdzp |
feat: run-length encoding |
---
- [x] depends on: #30898
Moved from #17105.
[](https://gitpod.io/from-referrer/)
|
t-data |
167/0 |
Mathlib.lean,Mathlib/Data/List/RunLength.lean,Mathlib/Data/List/SplitBy.lean |
3 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'plp127'] |
TwoFX assignee:TwoFX |
3-5397 3 days ago |
7-8019 7 days ago |
7-7797 7 days |
| 33757 |
fpvandoorn author:fpvandoorn |
feat: classical "decidability" instances on sets and ideals |
* Add decidable equality instances for `Set X`, `Submodule R M` (which also gives it for `Ideal R`) and `Associates (Ideal R)`.
* This allows one to remove such decidability arguments from lemmas.
* There was one place where we used an explicit decidability argument to compute an explicit fintype-instance to construct the unique element of some type.
This is now replaced by giving the element explicitly.
---
This was motivated by seeing some code from @mariainesdff's repos with such decidability arguments. @mariainesdff, do you think this PR would make your code a bit nicer?
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-data
|
69/33 |
Mathlib/Algebra/Module/DedekindDomain.lean,Mathlib/Algebra/Module/PID.lean,Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/Data/Set/Basic.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Card.lean,Mathlib/Logic/Basic.lean,Mathlib/MeasureTheory/SetSemiring.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Basic.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Lasker.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean |
16 |
13 |
['erdOne', 'fpvandoorn', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] |
erdOne assignee:erdOne |
3-5397 3 days ago |
6-59046 6 days ago |
15-48155 15 days |
| 35058 |
GrigorenkoPV author:GrigorenkoPV |
chore: move tendsto_{floor,ceil}_at{Top,Bot} |
Moves:
- Topology.Algebra.Order.Floor.tendsto_floor_atTop -> Order.Filter.AtTopBot.Floor.tendsto_floor_atTop
- Topology.Algebra.Order.Floor.tendsto_floor_atBot -> Order.Filter.AtTopBot.Floor.tendsto_floor_atBot
- Topology.Algebra.Order.Floor.tendsto_ceil_atTop -> Order.Filter.AtTopBot.Floor.tendsto_ceil_atTop
- Topology.Algebra.Order.Floor.tendsto_ceil_atBot -> Order.Filter.AtTopBot.Floor.tendsto_ceil_atBot
---
Tracked in #7987
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
|
22/25 |
Mathlib/Order/Filter/AtTopBot/Floor.lean,Mathlib/Topology/Algebra/Order/Floor.lean |
2 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
3-5395 3 days ago |
6-59725 6 days ago |
6-59503 6 days |
| 35106 |
tb65536 author:tb65536 |
feat(AlgebraicGeometry/IdealSheaf/IrreducibleComponent): subscheme structure on an irreducible component |
This PR defines the subscheme structure on an irreducible component of a Noetherian scheme. See the module docstring for more details on this.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
87/0 |
Mathlib.lean,Mathlib/AlgebraicGeometry/IdealSheaf/IrreducibleComponent.lean |
2 |
3 |
['erdOne', 'github-actions', 'tb65536'] |
dagurtomas assignee:dagurtomas |
3-5393 3 days ago |
6-46166 6 days ago |
7-2938 7 days |
| 35111 |
kim-em author:kim-em |
chore(Order/Hom/Basic): remove unused OrderDual instances |
This PR removes `OrderHomClass.toOrderHomClassOrderDual` and `OrderIsoClass.toOrderIsoClassOrderDual`. These instances are unused throughout mathlib.
These instances also require hacky local instances to work under https://github.com/leanprover/lean4/pull/12286. If they are both unused and unwanted, it is simpler to delete them on master rather than working around the issue.
🤖 Prepared with Claude Code |
t-order |
0/10 |
Mathlib/Order/Hom/Basic.lean |
1 |
1 |
['github-actions'] |
Vierkantor assignee:Vierkantor |
3-5393 3 days ago |
6-83633 6 days ago |
6-83411 6 days |
| 35132 |
justus-springer author:justus-springer |
feat(Algebra/Polynomial/Lifts): Add `mem_lifts_and_support_eq` |
`mem_lifts_and_degree_eq` was already proving the more general statement, so I extracted the proof. I need this for #34877.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
22/13 |
Mathlib/Algebra/Polynomial/Lifts.lean,Mathlib/RingTheory/Polynomial/Resultant/Basic.lean |
2 |
5 |
['github-actions', 'justus-springer', 'tb65536'] |
jcommelin assignee:jcommelin |
3-5392 3 days ago |
6-37419 6 days ago |
6-42253 6 days |
| 35331 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Subgraph): small things about `spanningCoe` and a small golf |
---
Three unrelated things in the same file, each too small to be its own PR.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
13/4 |
Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
1 |
1 |
['github-actions'] |
nobody |
3-3446 3 days ago |
3-2709 3 days ago |
3-2487 3 days |
| 35216 |
kim-em author:kim-em |
doc(Tactic/Translate/ToDual): add deployment guide for @[to_dual] |
This PR expands the documentation for `@[to_dual]` with practical advice for deploying it to existing code.
**Module docstring** (`Mathlib/Tactic/Translate/ToDual.lean`): adds a "Deploying `@[to_dual]` to existing code" section covering name agreement, attribute propagation, docstring syntax ordering, declaration order dependencies, and known structural mismatches (conjunct reordering, type class gaps, interval argument swapping).
**Attribute docstring**: adds a note that `@[simp]` is not auto-copied (must use `(attr := simp)`), and shows the correct ordering when combining `(attr := ...)` with docstrings.
**Agent skill** (`.claude/skills/to_dual/SKILL.md`): detailed step-by-step instructions for an AI agent deploying `@[to_dual]`, including how to identify candidates, common patterns, and debugging.
🤖 Prepared with Claude Code |
|
241/3 |
.claude/skills/to_dual/SKILL.md,Mathlib/Tactic/Translate/ToDual.lean |
2 |
27 |
['JovanGerb', 'github-actions', 'kim-em', 'vihdzp'] |
nobody |
2-85385 2 days ago |
2-82048 2 days ago |
4-85356 4 days |
| 35297 |
astrainfinita author:astrainfinita |
chore: clean up `sSup` and `sInf` usage |
---
[](https://gitpod.io/from-referrer/)
|
t-order
easy
|
10/12 |
Mathlib/Algebra/Group/Submonoid/Basic.lean,Mathlib/CategoryTheory/Category/Pairwise.lean,Mathlib/CategoryTheory/Limits/Lattice.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Order/Atoms.lean,Mathlib/Topology/Order/HullKernel.lean |
6 |
1 |
['github-actions', 'vihdzp'] |
nobody |
2-75058 2 days ago |
3-7170 3 days ago |
3-40390 3 days |
| 35312 |
Komyyy author:Komyyy |
feat(Order/Filter/Pointwise): `((∀ᶠ|∃ᶠ) x in op f, p x) ↔ ((∀ᶠ|∃ᶠ) x in f, p (op x))` |
This lemma is required when I prove that $z \mapsto \sin^{-1} z^{-1}$ is not meromorphic at $0$:
```lean4
@[simp]
lemma Filter.frequently_inv {α : Type*} [Inv α] {f : Filter α} {p : α → Prop} :
(∃ᶠ a in f⁻¹, p a) ↔ (∃ᶠ a in f, p a⁻¹) :=
frequently_map
example : ¬(∀ᶠ z in 𝓝[≠] (0 : ℂ), sin⁻¹ z⁻¹ = 0) ↔ (∃ᶠ z in cobounded ℂ, sin z ≠ 0) := by
simp [← inv_cobounded₀]
```
So I added the simp lemmas of `(∀ᶠ|∃ᶠ) x in op f, p x` for unary operations `op` (`-f`, `f⁻¹` & `a • f`).
While I was at it, I also added the simp lemmas of `∃ᶠ x in pure a, p x` & `∃ᶠ x in (0|1), p x`, which previously existed only for the `∀ᶠ` versions.
Binary operation versions will be added if necessary.
Appendix: Full proof of that $z \mapsto \sin^{-1} z^{-1}$ is not meromorphic at $0$
```lean4
module
import Mathlib.Analysis.Meromorphic.Basic
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Complex
import Mathlib.Analysis.SpecialFunctions.Trigonometric.Deriv
import Mathlib.Analysis.SpecificLimits.RCLike
open Complex Filter Bornology
open scoped Real Topology Pointwise
@[simp]
lemma Filter.frequently_inv {α : Type*} [Inv α] {f : Filter α} {p : α → Prop} :
(∃ᶠ a in f⁻¹, p a) ↔ (∃ᶠ a in f, p a⁻¹) :=
frequently_map
example : ¬MeromorphicAt (fun z => sin⁻¹ z⁻¹) 0 := by
apply mt MeromorphicAt.eventually_eq_zero_or_eventually_ne_zero
conv => equals (∃ᶠ z in cobounded ℂ, sin z ≠ 0) ∧ (∃ᶠ z in cobounded ℂ, sin z = 0) =>
simp [← inv_cobounded₀]
constructor
case left =>
have ht : Tendsto (fun x : ℝ ↦ ↑x * I) (cobounded ℝ) (cobounded ℂ) := by
have ht₁ : Tendsto ((↑) : ℝ → ℂ) (cobounded ℝ) (cobounded ℂ) :=
RCLike.tendsto_ofReal_cobounded_cobounded ℂ
have ht₂ : Tendsto (fun z : ℂ ↦ z * I) (cobounded ℂ) (cobounded ℂ) :=
tendsto_mul_right_cobounded (by simp)
exact ht₂.comp ht₁
refine ht.frequently_map _ (fun x ↦ mt ?_) (eventually_ne_cobounded 0).frequently
rw [sin_eq_zero_iff]
rintro ⟨n, hn⟩
simpa using congr_arg im hn
case right =>
suffices ht : Tendsto (fun n : ℤ ↦ (↑n * ↑π : ℂ)) atTop (cobounded ℂ) by
apply ht.frequently; simp [sin_int_mul_pi, atTop_neBot]
have ht₁ : Tendsto ((↑) : ℤ → ℝ) atTop (cobounded ℝ) := tendsto_intCast_atTop_cobounded
have ht₂ : Tendsto ((↑) : ℝ → ℂ) (cobounded ℝ) (cobounded ℂ) :=
RCLike.tendsto_ofReal_cobounded_cobounded ℂ
have ht₃ : Tendsto (fun z : ℂ ↦ z * ↑π) (cobounded ℂ) (cobounded ℂ) :=
tendsto_mul_right_cobounded (by simp)
exact ht₃.comp <| ht₂.comp ht₁
```
---
[](https://gitpod.io/from-referrer/)
|
t-order |
24/0 |
Mathlib/Order/Filter/Map.lean,Mathlib/Order/Filter/Pointwise.lean |
2 |
1 |
['github-actions'] |
nobody |
2-74134 2 days ago |
3-34186 3 days ago |
3-33964 3 days |
| 35325 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Acyclic): `ENat.card V ≤ 2 → G.IsAcyclic` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
10/3 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
2 |
['Rida-Hamadani', 'github-actions'] |
nobody |
2-69440 2 days ago |
3-9097 3 days ago |
3-8875 3 days |
| 35244 |
euprunin author:euprunin |
chore: golf proofs |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `LocallyBoundedVariationOn.ae_differentiableWithinAt_of_mem`: 199 ms before, 162 ms after 🎉
* `tendsto_natCast_div_add_atTop`: 247 ms before, 136 ms after 🎉
* `tendsto_div_of_monotone_of_exists_subseq_tendsto_div`: 2757 ms before, 2376 ms after 🎉
* `CategoryTheory.Presieve.isSheaf_iff_preservesFiniteProducts`: 219 ms before, 198 ms after 🎉
* `CategoryTheory.Pretriangulated.Triangle.mor₁_eq_zero_iff_epi₃`: 15 ms before, 13 ms after 🎉
* `CategoryTheory.Pretriangulated.Triangle.mor₃_eq_zero_iff_mono₁`: 23 ms before, 15 ms after 🎉
* `List.IsChain.cons_of_le`: 22 ms before, 17 ms after 🎉
* `List.Perm.inter_append`: 194 ms before, 19 ms after 🎉
* `Equivalence.quot_mk_eq_iff`: <10 ms before, <10 ms after 🎉
* `Stream'.Seq.destruct_eq_none`: <10 ms before, <10 ms after 🎉
* `MulAction.IsBlock.subsingleton_of_ssubset_of_stabilizer_le`: 169 ms before, 105 ms after 🎉
* `IsSimpleGroup.prime_card`: 60 ms before, 48 ms after 🎉
* `RootPairing.coxeterWeightIn_le_four`: 1236 ms before, 1126 ms after 🎉
* `MeasureTheory.Measure.haveLebesgueDecomposition_of_finiteMeasure`: 659 ms before, 584 ms after 🎉
* `IsFundamentalDomain.QuotientMeasureEqMeasurePreimage_smulHaarMeasure`: 85 ms before, 80 ms after 🎉
* `MeasureTheory.Measure.isMulLeftInvariant_eq_smul_of_regular`: 58 ms before, 50 ms after 🎉
* `MeasureTheory.SignedMeasure.exists_subset_restrict_nonpos`: 413 ms before, 325 ms after 🎉
* `FirstOrder.Language.Embedding.coe_injective`: <10 ms before, <10 ms after 🎉
* `ProbabilityTheory.setLIntegral_stieltjesOfMeasurableRat`: 343 ms before, 310 ms after 🎉
* `ProbabilityTheory.IsRatCondKernelCDFAux.tendsto_atBot_zero`: 116 ms before, 75 ms after 🎉
* `ProbabilityTheory.lintegral_toKernel_mem`: 173 ms before, 172 ms after 🎉
* `MeasureTheory.Measure.tendsto_IicSnd_atBot`: 70 ms before, 63 ms after 🎉
* `ProbabilityTheory.eq_condKernel_of_measure_eq_compProd'`: 46 ms before, 30 ms after 🎉
* `MeasureTheory.StronglyMeasurable.integral_kernel_prod_right`: 1298 ms before, 1142 ms after 🎉
* `ProbabilityTheory.Kernel.isSFiniteKernel_withDensity_of_isFiniteKernel`: 433 ms before, 429 ms after 🎉
* `MeasureTheory.progMeasurable_of_tendsto'`: 20 ms before, <10 ms after 🎉
* `MeasureTheory.Measure.infinitePi_map_piCurry_symm`: 1319 ms before, 1291 ms after 🎉
* `HahnModule.add_smul`: 111 ms before, 75 ms after 🎉
* `Module.associatedPrimes.mem_associatedPrimes_of_comap_mem_associatedPrimes_of_isLocalizedModule`: 215 ms before, 198 ms after 🎉
* `Ideal.comap_eq_of_scalar_tower_quotient`: 97 ms before, 56 ms after 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
38/155 |
Mathlib/Analysis/BoundedVariation.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/CategoryTheory/Sites/Coherent/ExtensiveSheaves.lean,Mathlib/CategoryTheory/Triangulated/Pretriangulated.lean,Mathlib/Data/List/Chain.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/Seq/Defs.lean,Mathlib/GroupTheory/Perm/MaximalSubgroups.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Lemmas.lean,Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean,Mathlib/MeasureTheory/Measure/Haar/Quotient.lean,Mathlib/MeasureTheory/Measure/Haar/Unique.lean,Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean,Mathlib/ModelTheory/Basic.lean,Mathlib/NumberTheory/Padics/Complex.lean,Mathlib/Probability/Kernel/Disintegration/CDFToKernel.lean,Mathlib/Probability/Kernel/Disintegration/CondCDF.lean,Mathlib/Probability/Kernel/Disintegration/Unique.lean,Mathlib/Probability/Kernel/MeasurableIntegral.lean,Mathlib/Probability/Kernel/WithDensity.lean,Mathlib/Probability/Process/Adapted.lean,Mathlib/Probability/ProductMeasure.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Ideal/Over.lean |
27 |
4 |
['euprunin', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] |
nobody |
2-64637 2 days ago |
2-62991 2 days ago |
4-17957 4 days |
| 35189 |
euprunin author:euprunin |
chore: golf proofs |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `Complex.orderClosedTopology`: 227 ms before, <10 ms after 🎉
* `CategoryTheory.Functor.map_shiftFunctorComm`: 73 ms before, <10 ms after 🎉
* `CategoryTheory.extensiveTopology.presheafIsLocallySurjective_iff`: 154 ms before, 65 ms after 🎉
* `CategoryTheory.Presieve.functorPushforward_overForget`: 13 ms before, <10 ms after 🎉
* `Equiv.Perm.IsCycle.isCycle_pow_pos_of_lt_prime_order`: 15 ms before, <10 ms after 🎉
* `Equiv.Perm.IsCycle.isConj_iff`: <10 ms before, <10 ms after 🎉
* `Equiv.Perm.zpow_eq_ofSubtype_subtypePerm_iff`: 31 ms before, 32 ms after
* `StieltjesFunction.measure_Ici`: 242 ms before, 102 ms after 🎉
* `le_iff_eq_sup_sdiff`: 54 ms before, 19 ms after 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
12/55 |
Mathlib/Analysis/Complex/Basic.lean,Mathlib/CategoryTheory/Shift/CommShift.lean,Mathlib/CategoryTheory/Sites/Coherent/LocallySurjective.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/MeasureTheory/Measure/Stieltjes.lean,Mathlib/Order/BooleanAlgebra/Basic.lean |
7 |
5 |
['euprunin', 'github-actions', 'leanprover-radar'] |
nobody |
2-64415 2 days ago |
2-63471 2 days ago |
5-29726 5 days |
| 35338 |
WenrongZou author:WenrongZou |
chore(RingTheory/MvPowerSeries): modify docs in expand |
Modify a documentation in `MvPowerSeries.expand`. Easy.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
easy
|
4/3 |
Mathlib/RingTheory/MvPowerSeries/Expand.lean,Mathlib/RingTheory/PowerSeries/Expand.lean |
2 |
2 |
['WenrongZou', 'github-actions'] |
nobody |
2-58460 2 days ago |
2-58790 2 days ago |
2-58568 2 days |
| 35150 |
JovanGerb author:JovanGerb |
chore(Order/OrderDual): move material on `OrderDual` |
This PR moves material about `OrderDual` from `Mathlib.Order.Synonym` to `Mathlib.Order.OrderDual`, so that these two files become independent. This way, `Mathlib.Order.Synonym` will not be on the long pole.
Note: it seems that the file `Mathlib.Order.Synonym` used to define `OrderDual`. Maybe that file should now be renamed to `Order.Lex`?
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-order
|
75/76 |
Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Order/Group/Synonym.lean,Mathlib/Data/Fintype/Defs.lean,Mathlib/Data/Nat/Cast/Synonym.lean,Mathlib/Data/PSigma/Order.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Data/Sigma/Order.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Order/Compare.lean,Mathlib/Order/Max.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/Order/OrderDual.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/Synonym.lean |
14 |
2 |
['MichaelStollBayreuth', 'github-actions'] |
nobody |
2-58329 2 days ago |
6-11603 6 days ago |
6-11381 6 days |
| 35284 |
grunweg author:grunweg |
feat: add (m)differentiableAt_of_(m)fderiv_injective |
and versions for `(m)fderivWithin` versions. This generalises the existing lemmas `(m)differentiableAt_of_isInvertible_(m)fderiv` and friends.
Extracted from #35078; from the path to immersions, embeddings and submanifolds.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-analysis
|
42/20 |
Mathlib/Analysis/Calculus/FDeriv/Const.lean,Mathlib/Geometry/Manifold/MFDeriv/Basic.lean |
2 |
2 |
['github-actions', 'grunweg'] |
nobody |
2-56982 2 days ago |
2-55921 2 days ago |
4-6408 4 days |
| 34806 |
YaelDillies author:YaelDillies |
feat(Data/Nat/SuccPred): `m ⋖ n ↔ m + 1 = n` |
This is a special case of a general lemma which can't be simp. Also turn `Fin.coe_covBy_iff` around to preserve confluence.
From ProofBench
---
[](https://gitpod.io/from-referrer/)
|
t-data |
12/11 |
Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Data/Nat/SuccPred.lean |
3 |
4 |
['YaelDillies', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
2-52719 2 days ago |
2-50394 2 days ago |
2-50172 2 days |
| 35187 |
bilichboris author:bilichboris |
feat(GroupTheory): establish that every finite left cancellative monoid is a group |
This PR closes a todo in the GroupTheory module.
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
maintainer-merge
|
8/1 |
Mathlib/GroupTheory/OrderOfElement.lean |
1 |
8 |
['bilichboris', 'github-actions', 'riccardobrasca', 'robin-carlier'] |
nobody |
2-46277 2 days ago |
4-44245 4 days ago |
5-29057 5 days |
| 35141 |
joelriou author:joelriou |
feat(CategoryTheory/Sites): conservative families of points |
---
- [x] depends on: #35139
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
138/2 |
Mathlib.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Jointly.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean |
4 |
6 |
['chrisflav', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-42859 2 days ago |
2-42129 2 days ago |
4-32767 4 days |
| 35286 |
urkud author:urkud |
chore: reduce defeq abuse |
Cherry-picked from #35182, improved
---
[](https://gitpod.io/from-referrer/)
|
|
20/14 |
Mathlib/Algebra/Module/SnakeLemma.lean,Mathlib/Algebra/MonoidAlgebra/Grading.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Kaehler/Basic.lean,Mathlib/RingTheory/KrullDimension/Polynomial.lean |
5 |
4 |
['github-actions', 'kim-em', 'urkud'] |
nobody |
2-41753 2 days ago |
2-40436 2 days ago |
3-42253 3 days |
| 35351 |
urkud author:urkud |
refactor(Algebra/*): generalize `of_ringEquiv` lemmas |
Some lemmas assumed that two modules over different rings
admit a semilinear equivalence with respect to a `RingEquiv`.
While this is mathematically equivalent
to the definition we use everywhere else
(a pair of `RingHom`s with `RingHomInvPair` assumptions),
it does not directly apply neither to the linear case,
nor to the `starRingEnd` case.
This PR drops `of_ringEquiv` theorems
and generalizes `of_equiv` theorems
to semilinear equivalences instead.
---
[](https://gitpod.io/from-referrer/)
|
|
63/41 |
Mathlib/Algebra/Module/Projective.lean,Mathlib/Algebra/Ring/CompTypeclasses.lean,Mathlib/LinearAlgebra/FreeModule/Basic.lean,Mathlib/RingTheory/LocalProperties/Projective.lean,Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean |
5 |
1 |
['github-actions'] |
nobody |
2-41740 2 days ago |
2-39252 2 days ago |
2-39030 2 days |
| 35323 |
martinwintermath author:martinwintermath |
feat(Geometry/Convex/Cone): Add lemmas for PointedCone.dual |
Add several useful lemmas for `PointedCone.dual` in preparation for duality theory for FG cones.
Some other changes are:
* renamed `dual_le_dual` to `dual_anti` and added partner lemma `dual_antitone`
* removed TODO comment since the stated lemma is not sufficient to prove the claim, an also this has now been proven and will become a PR in the near future.
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry |
29/6 |
Mathlib/Geometry/Convex/Cone/Dual.lean |
1 |
1 |
['github-actions'] |
nobody |
2-41669 2 days ago |
2-41669 2 days ago |
2-41447 2 days |
| 33449 |
yuanyi-350 author:yuanyi-350 |
feat(ProbabilityTheory): Add Poisson limit theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
129/2 |
Mathlib.lean,Mathlib/Probability/Distributions/Poisson.lean,Mathlib/Probability/Distributions/PoissonLimitThm.lean,Mathlib/Probability/ProbabilityMassFunction/Binomial.lean,docs/1000.yaml |
5 |
12 |
['EtienneC30', 'github-actions', 'vihdzp'] |
EtienneC30 assignee:EtienneC30 |
2-40912 2 days ago |
2-40202 2 days ago |
47-47654 47 days |
| 34976 |
joelriou author:joelriou |
feat(CategoryTheory/Sites): Equivalence of categories of sheaves with a dense subsite that is 1-hypercover dense |
Let `F : C₀ ⥤ C` be a functor equipped with Grothendieck topologies `J₀` and `J`. Assume that `F` is a dense subsite that is `1`-hypercover dense relatively to a universe `w`. Assume that the coefficient category `A` has limits of size `w`, we show that the restriction functor `sheafPushforwardContinuous F A J₀ J : Sheaf J A ⥤ Sheaf J₀ A` is an equivalence of categories, which allows to transport `HasWeakSheafify` and `HasSheafify` assumptions for the site `(C₀, J₀)` to the site `(C, J)`.
---
- [x] depends on: #35012
- [x] depends on: #35022
- [x] depends on: #35091
- [x] depends on: #35094
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
289/4 |
Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-40873 2 days ago |
4-46515 4 days ago |
4-46293 4 days |
| 35360 |
vlad902 author:vlad902 |
feat(SimpleGraph): rename `cycleGraph_EulerianCircuit` to `cycleGraph.cycle` |
Per [this](https://github.com/leanprover-community/mathlib4/pull/34797#discussion_r2807963752) review feedback, this definition is inappropriately named with an underscore and should be renamed.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
21/17 |
Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean |
2 |
2 |
['github-actions', 'vlad902'] |
nobody |
2-38401 2 days ago |
2-37703 2 days ago |
2-37481 2 days |
| 35320 |
harahu author:harahu |
doc(AlgebraicGeometry/Morphisms/Basic): tidy docstrings |
Misc. documentation updates and fixes.
---
These issues were found and fixed by Codex.
[](https://gitpod.io/from-referrer/)
|
|
15/15 |
Mathlib/AlgebraicGeometry/Morphisms/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
2-36145 2 days ago |
2-35336 2 days ago |
3-19403 3 days |
| 35274 |
harahu author:harahu |
doc(CategoryTheory/Bicategory/NaturalTransformation): tidy docstrings |
---
Issues were found and fixed by Codex.
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
30/30 |
Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Pseudo.lean |
3 |
1 |
['github-actions'] |
nobody |
2-35557 2 days ago |
2-34571 2 days ago |
4-15132 4 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$ |
50/0 |
Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
1 |
4 |
['copilot-pull-request-reviewer', 'github-actions'] |
nobody |
2-34833 2 days ago |
2-34026 2 days ago |
2-33910 2 days |
| 35373 |
joelriou author:joelriou |
feat(Order/Fin): lemmas about Fin.clamp |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
30/0 |
Mathlib.lean,Mathlib/Order/Fin/Clamp.lean |
2 |
1 |
['github-actions'] |
nobody |
2-32312 2 days ago |
2-31386 2 days ago |
2-31164 2 days |
| 26160 |
oliver-butterley author:oliver-butterley |
feat(MeasureTheory.VectorMeasure): add several lemmas which characterize variation |
Add the following lemmas concerning variation of a VectorMeasure:
* `norm_measure_le_variation`: `‖μ E‖ₑ ≤ variation μ E`.
* `variation_neg`: `(-μ).variation = μ.variation`.
* `variation_zero`: `(0 : VectorMeasure X V).variation = 0`.
* `absolutelyContinuous`
Co-authored-by: @yoh-tanimoto
- [x] depends on: #26156
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
238/4 |
Mathlib.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/PreVariation.lean,Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/Order/Partition/Finpartition.lean |
8 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
nobody |
2-31259 2 days ago |
4-72017 4 days ago |
20-60192 20 days |
| 35377 |
euprunin author:euprunin |
chore: golf proofs |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <20 ms considered measurement noise):
* `DiscreteTiling.PlacedTile.ext_iff_of_exists`: <20 ms before, 68 ms after
* `ProbabilityTheory.Fernique.lintegral_exp_mul_sq_norm_le_mul`: 1876 ms before, 1629 ms after 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
3/11 |
Mathlib/Combinatorics/Tiling/Tile.lean,Mathlib/Probability/Distributions/Fernique.lean |
2 |
1 |
['github-actions'] |
nobody |
2-31169 2 days ago |
2-30402 2 days ago |
2-30180 2 days |
| 35156 |
euprunin author:euprunin |
chore: golf using `simp` (and non-squeeze terminal `simp`:s) |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `Module.FinitePresentation.exists_lift_of_isLocalizedModule`: 940 ms before, 787 ms after 🎉
* `CategoryTheory.Comon.tensorObj_comul`: 38 ms before, <10 ms after 🎉
* `SimpleGraph.Walk.darts_getElem_eq_getVert`: 376 ms before, <10 ms after 🎉
* `ZNum.cmp_to_int`: 108 ms before, 79 ms after 🎉
* `TensorProduct.finsuppLeft_smul'`: 134 ms before, 31 ms after 🎉
* `TensorProduct.finsuppScalarRight_smul`: 138 ms before, 26 ms after 🎉
* `NumberField.InfinitePlace.nat_card_stabilizer_eq_one_or_two`: 115 ms before, 112 ms after 🎉
* `Algebra.adjoin_restrictScalars`: 34 ms before, 26 ms after 🎉
* `AddCircle.card_torsion_le_of_isSMulRegular_int`: 460 ms before, 238 ms after 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
8/31 |
Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean,Mathlib/CategoryTheory/Monoidal/Comon_.lean,Mathlib/Data/Num/ZNum.lean,Mathlib/LinearAlgebra/DirectSum/Finsupp.lean,Mathlib/LinearAlgebra/Matrix/Kronecker.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean,Mathlib/RingTheory/Adjoin/Tower.lean |
7 |
4 |
['euprunin', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] |
nobody |
2-31025 2 days ago |
2-29153 2 days ago |
6-1716 6 days |
| 35357 |
joelriou author:joelriou |
feat(Algebra/Homology): definition of spectral objects in abelian categories |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
236/0 |
Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
2-25250 2 days ago |
2-25250 2 days ago |
2-25028 2 days |
| 35355 |
joelriou author:joelriou |
feat(Algebra/Homology/SpectralSequence): complex shapes for pages of spectral sequences |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
55/0 |
Mathlib.lean,Mathlib/Algebra/Homology/SpectralSequence/ComplexShape.lean |
2 |
2 |
['github-actions', 'joelriou'] |
nobody |
2-25080 2 days ago |
2-24374 2 days ago |
2-24221 2 days |
| 34848 |
bjornsolheim author:bjornsolheim |
feat(Analysis/Convex/Cone): min and max tensor products are equal when one factor is simplicial and generating |
Prove that min and max tensor products are equal when one factor is simplicial and generating.
Add theorems:
minTensorProduct_eq_max_of_simplicial_generating_left
minTensorProduct_eq_max_of_simplicial_generating_right
---
- [ ] depends on: #32355 [new file simplicial.lean]
[](https://gitpod.io/from-referrer/)
|
t-analysis |
166/0 |
Mathlib.lean,Mathlib/Analysis/Convex/Cone/TensorProduct.lean |
2 |
4 |
['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-24373 2 days ago |
2-23661 2 days ago |
2-40432 2 days |
| 35381 |
joelriou author:joelriou |
feat(CategoryTheory): constructor for abelian categories |
We assume that the category `C` is preadditive, has finite products, and that any morphism `f : X ⟶ Y` has a kernel `i : K ⟶ X`, a cokernel `p : Y ⟶ Q` such that `f` factors as `f = π ≫ ι` where `π : X ⟶ I` is a cokernel of `i` and `ι : I ⟶ Y` is a kernel of `p`.
This will be used in order to show that the heart of a t-structure is an abelian category.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
43/0 |
Mathlib/CategoryTheory/Abelian/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
2-20631 2 days ago |
unknown |
unknown |
| 34267 |
Brian-Nugent author:Brian-Nugent |
feat(Topology/Algebra): Add API for Sheaves of abelian groups |
in preparation for proving results on sheaf cohomology.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
89/1 |
Mathlib.lean,Mathlib/Algebra/Category/Grp/AB.lean,Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean,Mathlib/Topology/Sheaves/AddCommGrpCat.lean |
4 |
24 |
['Brian-Nugent', 'dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
2-19011 2 days ago |
2-18306 2 days ago |
19-20262 19 days |
| 34189 |
bwangpj author:bwangpj |
feat(MeasureTheory/Measure): haarScalarFactor_map |
From FLT.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
FLT
|
38/16 |
Mathlib/MeasureTheory/Measure/Haar/Unique.lean |
1 |
7 |
['ADedecker', 'bwangpj', 'github-actions', 'mathlib-merge-conflicts'] |
RemyDegenne assignee:RemyDegenne |
2-18131 2 days ago |
2-17205 2 days ago |
25-50146 25 days |
| 34932 |
erdOne author:erdOne |
feat(AlgebraicGeometry): formally etale morphisms |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
163/12 |
Mathlib.lean,Mathlib/AlgebraicGeometry/Morphisms/Etale.lean,Mathlib/AlgebraicGeometry/Morphisms/FormallyEtale.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/RingTheory/RingHom/Etale.lean |
5 |
11 |
['chrisflav', 'erdOne', 'github-actions', 'joneugster'] |
nobody |
2-16617 2 days ago |
2-16617 2 days ago |
4-46629 4 days |
| 35386 |
Brian-Nugent author:Brian-Nugent |
feat: CategoryTheory.toSheafify induces an isomorphism on stalks |
The main result `TopCat.Presheaf.stalkFunctor_map_unit_toSheafify_isIso` says that for a presheaf on a topological space, the induced map on stalks of `CategoryTheory.toSheafify` is an isomorphism. This is similar to `TopCat.Presheaf.sheafifyStalkIso` defined in the same file except that the latter is only for sheaves of Types.
The proof involved the abstract nonsense `CategoryTheory.Adjunction.isIso_map_unit_of_isLeftAdjoint_comp` which should probably go in a different file but feels too specific to go into any of the files in `CategoryTheory.Adjunction`.
Suggestions are very welcome.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
t-topology
t-category-theory
new-contributor
|
53/1 |
Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Topology/Sheaves/Skyscraper.lean |
2 |
2 |
['github-actions'] |
nobody |
2-15224 2 days ago |
2-14530 2 days ago |
2-14308 2 days |
| 25984 |
Multramate author:Multramate |
feat(AlgebraicGeometry/EllipticCurve/Affine/Point): add equivalences between points and explicit WithZero types |
This PR continues the work from #14627.
Original PR: https://github.com/leanprover-community/mathlib4/pull/14627 |
t-algebraic-geometry |
130/15 |
Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean |
1 |
4 |
['Multramate', 'copilot-pull-request-reviewer', 'github-actions'] |
dagurtomas assignee:dagurtomas |
2-5398 2 days ago |
5-41872 5 days ago |
5-41650 5 days |
| 34442 |
JohnnyTeutonic author:JohnnyTeutonic |
feat(Algebra/Lie/Classical): add basis for sl(n) relative to chosen diagonal index |
Adds a standard basis for sl n R parametrized by a chosen diagonal index i₀:
Off-diagonal matrix units E_ij for i ≠ j
Diagonal differences E_ii - E_{i₀i₀} for i ≠ i₀
The entry at i₀ is determined by trace-zero.
Implements the approach suggested by @ocfnash in [#33818 (comment)](https://github.com/leanprover-community/mathlib4/pull/33818#issuecomment-3784786673). See also [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/lie.20algebra/near/516170116).
Closes the request from #33818.
Note: Developed with the assistance of Claude - the LinearEquiv machinery was beyond my current Lean expertise.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
507/0 |
Mathlib/Algebra/Lie/Classical.lean |
1 |
9 |
['JohnnyTeutonic', 'eric-wieser', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
2-5395 2 days ago |
5-70119 5 days ago |
6-36535 6 days |
| 34944 |
jessealama author:jessealama |
feat(Algebra/Ring/NegOnePow): add negOnePow ↔ natAbs bridge lemmas |
Adds `Int.cast_negOnePow_eq_neg_one_pow_natAbs` (for any `Ring R`) and its `ℤ` specialization `Int.coe_negOnePow_eq_neg_one_pow_natAbs`, relating `negOnePow n` to `(-1) ^ n.natAbs`.
The file already has [`cast_negOnePow_natCast`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Ring/NegOnePow.html#Int.cast_negOnePow_natCast) for `n : ℕ` but nothing for general integers via `natAbs`. |
t-algebra label:t-algebra$ |
14/2 |
Mathlib/Algebra/Ring/NegOnePow.lean,Mathlib/Analysis/Analytic/Binomial.lean |
2 |
1 |
['github-actions'] |
Vierkantor assignee:Vierkantor |
2-5393 2 days ago |
5-50178 5 days ago |
8-47372 8 days |
| 35152 |
j-loreaux author:j-loreaux |
feat: add missing API for `lp E p` |
The API for `lp` is significantly underdeveloped. This PR attempts to rectify some of the shortcomings. In particular, we provide:
+ some missing tools for `Memℓp`, notably `memℓp_norm_iff` and `Memℓp.mono`.
+ some improved docstrings and more uniform notation for the non-dependent case; note that we also *remove* the notation `ℓ^∞(ι)` for `lp (fun _ : ι ↦ ℝ) ∞` on the basis that there are other choices besides `ℝ` which would make at least as much sense here, including `ℂ`.
+ bundled version of maps (evaluation, inclusion as a linear map, summation in `ℓ¹`)
as well as cleaning-up a few other odds and ends.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
189/26 |
Mathlib/Analysis/InnerProductSpace/l2Space.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Topology/MetricSpace/Kuratowski.lean |
3 |
1 |
['github-actions'] |
sgouezel assignee:sgouezel |
2-5389 2 days ago |
5-21935 5 days ago |
5-21713 5 days |
| 35157 |
Multramate author:Multramate |
feat(RingTheory/AdjoinRoot): add IsFractionRing for AdjoinRoot |
Co-authored-by: Sriram Chinthalagiri Venkata @sriram3301
This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
36/0 |
Mathlib/RingTheory/AdjoinRoot.lean |
1 |
4 |
['copilot-pull-request-reviewer', 'github-actions'] |
mattrobball assignee:mattrobball |
2-5388 2 days ago |
5-46351 5 days ago |
6-5467 6 days |
| 35163 |
CoolRmal author:CoolRmal |
feat(Topology): comparison of two Hausdorff topologies |
The main theorem proved in this PR is `CompactSpace.eq_of_le_compact_t2`, which says that if we have two Hausdorff topologies `s, t` on `X`, and if `t` is finer than `s` and `X` is compact under `t`, then `s = t`. I also proved some variant of this lemma.
The motivations I have in mind are some applications to the theory of topological vector spaces, where we often have to compare two Hausdorff topologies.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
24/0 |
Mathlib/Topology/Homeomorph/Lemmas.lean |
1 |
6 |
['CoolRmal', 'github-actions', 'j-loreaux', 'plp127'] |
dagurtomas assignee:dagurtomas |
2-5387 2 days ago |
5-12527 5 days ago |
5-55948 5 days |
| 35172 |
Parcly-Taxel author:Parcly-Taxel |
feat(Archive): minimal axioms for Boolean algebra |
|
|
305/0 |
Archive.lean,Archive/MinimalSheffer.lean,docs/references.bib |
3 |
1 |
['github-actions'] |
ocfnash assignee:ocfnash |
2-5386 2 days ago |
5-58068 5 days ago |
5-57846 5 days |
| 35174 |
nielsvoss author:nielsvoss |
feat(Analysis/InnerProductSpace): a linear map composed with its adjoint is symmetric |
Add theorems about `LinearMap.IsSymmetric` that match some theorems for `LinearMap.IsPositive`.
Mathlib contains stronger versions of some of these, like `LinearMap.IsPositive.self_comp_adjoint`, but having a dedicated version for `LinearMap.IsSymmetric` is advantageous, especially when used with `LinearMap.IsSymmetric.eigenvalues`.
---
One thing that I am uncertain about is if I should add similar lemmas for `ContinuousLinearMap` to even better match the `IsPositive` API, and if so, whether these theorems should be stated in terms of `IsSymmetric` or `IsSelfAdjoint`.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
22/1 |
Mathlib/Analysis/InnerProductSpace/Adjoint.lean |
1 |
3 |
['github-actions', 'themathqueen'] |
sgouezel assignee:sgouezel |
2-5385 2 days ago |
5-32286 5 days ago |
5-55542 5 days |
| 35176 |
grunweg author:grunweg |
fix: check for a space of continuous linear maps over not-the-identity |
Improves an error message, and fixes a TODO in the code.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-meta
|
83/16 |
Mathlib/Geometry/Manifold/Notation.lean,MathlibTest/DifferentialGeometry/NotationAdvanced.lean |
2 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
2-5384 2 days ago |
5-55782 5 days ago |
5-55560 5 days |
| 35183 |
tb65536 author:tb65536 |
feat(Analysis/InnerProductSpace/Rayleigh): basic API for Rayleigh quotients |
This PR adds basic API lemmas for Rayleigh quotients of zeros and negatives.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
16/0 |
Mathlib/Analysis/InnerProductSpace/Rayleigh.lean |
1 |
1 |
['github-actions'] |
urkud assignee:urkud |
2-5381 2 days ago |
5-42726 5 days ago |
5-42504 5 days |
| 35184 |
tb65536 author:tb65536 |
feat(Algebra/Algebra/Spectrum/Basic): resolvent set of negative element |
This PR adds a basic API lemma `resolventSet_neg` stating that `resolventSet R (-a) = -resolventSet R a`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
5/2 |
Mathlib/Algebra/Algebra/Spectrum/Basic.lean |
1 |
1 |
['github-actions'] |
joelriou assignee:joelriou |
2-5380 2 days ago |
5-41570 5 days ago |
5-41348 5 days |
| 35193 |
Brian-Nugent author:Brian-Nugent |
feat(Topology/Closeds): implement category of closed sets in topologi… |
…cal spaces
I copied over the nice API for working with `TopologicalSpace.Opens` as a category over for `TopologicalSpace.Closeds`. The only thing that did not immediately transfer was `Topology.IsInducing.functorObj` so I omitted it.
Based on work of @kim-em
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
385/0 |
Mathlib.lean,Mathlib/Topology/Category/TopCat/Closeds.lean |
2 |
2 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
2-5378 2 days ago |
5-24604 5 days ago |
5-24382 5 days |
| 35199 |
Komyyy author:Komyyy |
doc: `PFun.fix_induction` to `PFun.fixInduction` |
This is typo of [`PFun.fixInduction`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/PFun.html#PFun.fixInduction)
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-data
mathlib-port
easy
|
1/1 |
Mathlib/Data/PFun.lean |
1 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
2-5377 2 days ago |
5-21658 5 days ago |
5-21436 5 days |
| 35205 |
j-loreaux author:j-loreaux |
feat: `Subobject.topologicalClosure_mono` |
This was missing for most subobjects. We add it for all of them and tag it with `gcongr`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
52/0 |
Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Module/Basic.lean,Mathlib/Topology/Algebra/Monoid.lean,Mathlib/Topology/Algebra/NonUnitalAlgebra.lean,Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean,Mathlib/Topology/Algebra/Ring/Basic.lean,Mathlib/Topology/Algebra/StarSubalgebra.lean |
8 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
2-5374 2 days ago |
5-16410 5 days ago |
5-16188 5 days |
| 34920 |
Parcly-Taxel author:Parcly-Taxel |
feat: asymptotic lemmas on the `cobounded` filter |
Actually includes one `cofinite` lemma too. As shown in the second commit, this allows proving what I initially proved with the help of Harmonic in #34845 in a much shorter, AI-free form.
`Asymptotics.isLittleO_pow_pow_cobounded_of_lt` was generalised with the help of @sgouezel – see [#PR reviews > #34868 – more general polynomial asymptotics @ 💬](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2334868.20.E2.80.93.20more.20general.20polynomial.20asymptotics/near/572197174). |
t-analysis |
98/0 |
Mathlib/Analysis/Asymptotics/Defs.lean,Mathlib/Analysis/Asymptotics/SpecificAsymptotics.lean,Mathlib/Analysis/Polynomial/Basic.lean |
3 |
4 |
['Parcly-Taxel', 'github-actions', 'sgouezel'] |
nobody |
1-86277 1 day ago |
1-84993 1 day ago |
8-17926 8 days |
| 34209 |
mike1729 author:mike1729 |
feat(Analysis/Normed): Schauder basis definition and characterization via projections |
A Schauder basis is a fundamental concept in functional analysis, providing a way to represent every element of a Banach space as a unique convergent series. This PR adds the core structures, some theorems necessary to work with these bases and a characterization of a Schauder basis using projections.
This PR is based on Chapter 1. from Albiac, F., & Kalton, N. J. (2016). Topics in Banach Space Theory.
This is a first PR in a series of three aiming for Eberlein-Smulyan Theorem. The next one will contain theory of basic sequences and the final one will contain a proof of Eberlein-Smulyan Theorem using basic sequences.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
549/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/Bases.lean,docs/references.bib |
3 |
124 |
['Ruben-VandeVelde', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'mike1729', 'sgouezel', 'themathqueen'] |
sgouezel assignee:sgouezel |
1-78750 1 day ago |
1-78762 1 day ago |
16-38674 16 days |
| 35392 |
joelriou author:joelriou |
feat(CategoryTheory/Triangulated): the heart of a t-structure |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
133/0 |
Mathlib.lean,Mathlib/CategoryTheory/Triangulated/TStructure/Basic.lean,Mathlib/CategoryTheory/Triangulated/TStructure/Heart.lean |
3 |
1 |
['github-actions'] |
nobody |
1-67608 1 day ago |
1-66918 1 day ago |
1-66696 1 day |
| 35371 |
xroblot author:xroblot |
feat(MulAction): add a SMulDistribClass instance for subgroups |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
4/0 |
Mathlib/Algebra/Group/Submonoid/MulAction.lean |
1 |
5 |
['github-actions', 'leanprover-radar', 'xroblot'] |
nobody |
1-58470 1 day ago |
1-55980 1 day ago |
2-25938 2 days |
| 34780 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(NumberTheory/Height/Projectivization): new file |
This adds a new file "Mathlib.NumberTheory.Height.Projectivization", which (for now) contains the definition of the multiplicative and logarithmic heights of points in projective space and basic properties of these.
The PR also contains extensions for the `positivity` tactic so that it knows that multiplicative heights are positive and logarithmic heights are nonnegative.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-meta
|
103/4 |
Mathlib.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/Projectivization.lean |
3 |
17 |
['AntoineChambert-Loir', 'MichaelStollBayreuth', 'Vierkantor', 'github-actions', 'joneugster', 'mathlib-merge-conflicts', 'plp127'] |
jcommelin assignee:jcommelin |
1-57188 1 day ago |
4-23453 4 days ago |
14-26649 14 days |
| 34559 |
sgouezel author:sgouezel |
feat: bounded variation functions have left and right limits, and limits at infinity |
Needed for #34055.
---
Everything in the PR is on the same topic, which is why I have kept it as a single PR. I can split it into two parts if it's too long, though, just tell me!
[](https://gitpod.io/from-referrer/)
|
t-topology |
464/15 |
Mathlib/Topology/EMetricSpace/BoundedVariation.lean |
1 |
18 |
['AntoineChambert-Loir', 'botbaki-review', 'github-actions', 'jsm28', 'sgouezel', 'urkud'] |
urkud assignee:urkud |
1-54072 1 day ago |
1-53371 1 day ago |
19-60040 19 days |
| 35398 |
vlad902 author:vlad902 |
feat(SimpleGraph): `bypass` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
17/0 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
1 |
['github-actions'] |
nobody |
1-50881 1 day ago |
1-50129 1 day ago |
1-49907 1 day |
| 35402 |
samueloettl author:samueloettl |
feat(Dynamics/BirkhoffSum): birkhoffAverage const |
---
I think this might be useful.
My feeling tells me that one of these should be a simp lemma.
I'm not really sure if I got the naming of the theorems correct.
Also I think it is somewhat debatable if these theorems should be generalized to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0.
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
|
26/3 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
2 |
['github-actions'] |
nobody |
1-48533 1 day ago |
1-47863 1 day ago |
1-47641 1 day |
| 35258 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(Data/Finsupp/Order): add lemma Finsupp.single_le_sum |
This adds an API lemma for `Finsupp` that turned out to be useful in [Heights](github.com/MichaelStollBayreuth/Heights).
---
[](https://gitpod.io/from-referrer/)
|
t-data |
17/0 |
Mathlib/Data/Finsupp/Order.lean |
1 |
4 |
['AntoineChambert-Loir', 'MichaelStollBayreuth', 'Ruben-VandeVelde', 'faenuccio', 'github-actions'] |
nobody |
1-47173 1 day ago |
1-45121 1 day ago |
4-30984 4 days |
| 35000 |
plp127 author:plp127 |
feat(Algebra/Polynomial/PartialFractions): generalize to powers |
Generalize polynomial partial fractions to work with the denominator being a product of powers of coprime monic polynomials.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
221/79 |
Mathlib/Algebra/Polynomial/PartialFractions.lean |
1 |
16 |
['github-actions', 'plp127', 'riccardobrasca', 'vihdzp'] |
riccardobrasca assignee:riccardobrasca |
1-46734 1 day ago |
5-10642 5 days ago |
5-10420 5 days |
| 35403 |
tb65536 author:tb65536 |
feat(Topology/Algebra/Ring/Ideal): the connected component of zero is an ideal |
This PR defines the connected component of zero as an ideal.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-ring-theory
t-topology
label:t-algebra$ |
14/0 |
Mathlib/Topology/Algebra/Ring/Ideal.lean |
1 |
1 |
['github-actions'] |
nobody |
1-45134 1 day ago |
1-45134 1 day ago |
1-44912 1 day |
| 28248 |
YaelDillies author:YaelDillies |
feat: binomial random variables |
Define the binomial distribution and compute the expectation, variance, conditional variance of a binomial random variable.
From MiscYD
---
- [x] depends on: #31908
- [x] depends on: #31910
- [x] depends on: #31942
- [x] depends on: #31947
- [x] depends on: #34367
- [x] depends on: #34370
- [x] depends on: #34374
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
232/0 |
Mathlib.lean,Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/Probability/Distributions/Binomial.lean |
3 |
62 |
['DavidLedvinka', 'RemyDegenne', 'YaelDillies', 'eric-wieser', 'github-actions', 'kex-y', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'pfaffelh', 'themathqueen'] |
kex-y assignee:kex-y |
1-44595 1 day ago |
1-43576 1 day ago |
37-45842 37 days |
| 35143 |
SnirBroshi author:SnirBroshi |
fix: restore `#min_imports` and other commands |
Make these commands available across Mathlib:
- `#help`
- `#min_imports`
- `#min_imports in`
- `#find_home`
- `proof_wanted`
Add tests that verify commands work when importing basic files, to prevent regressions.
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.23lint.20is.20broken/near/573303540)
I also think we should have `#check` (the tactic, not the Core command) and `#simp` and `#find_syntax`, but they import `Mathlib.Init` so it can't import them currently.
I'm not sure which of the above were available everywhere before the shake tool was run, let me know if I should add/remove commands.
~~Also there seems to be a bug in `#help` and the module system where it can't find the names of syntaxes, which affects the `#guard_msgs` in the test file, but it should be fixed independently of this PR.~~
[](https://gitpod.io/from-referrer/)
|
large-import
file-removed
t-meta
|
182/23 |
Mathlib/Init.lean,Mathlib/Tactic/Common.lean,MathlibTest/BasicFiles/Init.lean,MathlibTest/BasicFiles/Tactic.lean,MathlibTest/BasicFiles/TacticBasic.lean,MathlibTest/BasicFiles/TacticCommon.lean,MathlibTest/HashLint.lean,MathlibTest/UnusedInstancesInType/Fintype.lean |
8 |
16 |
['JovanGerb', 'SnirBroshi', 'github-actions', 'grunweg', 'joneugster', 'thorimur'] |
nobody |
1-41500 1 day ago |
1-37889 1 day ago |
5-46723 5 days |
| 35408 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(NumberTheory/Height/Basic): add {mul|log}Height_comp_le, {mul|log}Height_fun_mul_eq |
This adds
* two missing `logHeight` lemmas (their `mulHeight` versions are already there)
* `{mul|log}Height_comp_le`: the height of `x ∘ f` is bounded by the height of `x`
* `{mul|log}Height_fun_mul_eq`: the height of the "multiplication table" `fun (i, j) ↦ x i * y j` is the {product|sum} of the heights of `x` and of `y`
* `{mul|log}Height_fun_prod_eq`: the analogous result for products with arbitrarily many factors
* plus some API lemmas needed for these.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
164/0 |
Mathlib/Data/Real/Archimedean.lean,Mathlib/NumberTheory/Height/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
1-41177 1 day ago |
1-39040 1 day ago |
1-38818 1 day |
| 35260 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(Data/Fintype/Order): add API for ciSup with finite indexing type |
This PR adds API for indexed suprema/infima on `ConditionallyCompleteLattice`s when the indexing type is finite.
It also moves `Finite.le_ciSup`/`Finite.ciInf_le` to Mathlib.Data.Fintype.Order and golfs it.
We use the new lemmas to golf a few proofs in Mathlib.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
68/32 |
Mathlib/Analysis/Normed/Unbundled/InvariantExtension.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/Finiteness/Nilpotent.lean |
7 |
1 |
['github-actions'] |
nobody |
1-40820 1 day ago |
1-37908 1 day ago |
4-22520 4 days |
| 35409 |
JovanGerb author:JovanGerb |
chore(Translate): use `Term.applyAttributes` |
This PR uses the function `Term.applyAttributes` in `to_additive`/`to_dual` for applying attributes. Previously, the code that was there was a copy-paste of `Term.applyAttributes` (and this was outdated due to changes from the module system).
One advantage of the original implementation was the fact that it only calls `pushInfoLeaf` once, and in the new implementation this will typically be done twice for the same syntax. However, I think that this is not a good enough reason for duplicating so much code.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
6/23 |
Mathlib/Tactic/Translate/Core.lean |
1 |
1 |
['github-actions'] |
nobody |
1-39886 1 day ago |
1-36404 1 day ago |
1-36182 1 day |
| 35155 |
DavidLedvinka author:DavidLedvinka |
feat(Tactic): `linarith` for NNReal |
|
t-meta
file-removed
|
193/3 |
Mathlib.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linarith/NNRealPreprocessor.lean,Mathlib/Tactic/Linarith/Preprocessing.lean,Mathlib/Tactic/Rify.lean,MathlibTest/Linarith/NNReal.lean,MathlibTest/Linarith/linarith.lean,MathlibTest/Rify.lean |
9 |
18 |
['DavidLedvinka', 'github-actions', 'grunweg', 'hrmacbeth'] |
nobody |
1-39245 1 day ago |
1-38453 1 day ago |
4-82371 4 days |
| 35300 |
Ljon4ik4 author:Ljon4ik4 |
feat: Semi-direct sum of Lie algebras |
In this PR a construction of the [semi-direct sum of two Lie algebras](https://en.wikipedia.org/wiki/Lie_algebra_extension#By_semidirect_sum) is added.
It is shown that the resulting object $H\rtimes G$ is a Lie algebra and that it fits into an exact sequence
$H \to H\rtimes G \to G$.
I was not sure about multiple things and would be very grateful for feedback:
- Currently the semidirect product is created via a def as a type synonym of $H\times G$ so one can define a new bracket on it, which need not coincide with the standard 'direct sum' bracket. This is analogous to e.g. `PointedContMDiffMap` in `Mathlib.Geometry.Manifold.DerivationBundle`. An alternative way would creating a structure with $H$ and $G$ as fields. This seems to be the way chosen in `Mathlib.GroupTheory.SemidirectProduct.lean`.
- Currently it is created as a separate file, but it could also be added to the `Mathlib.Algebra.Lie.Extension` file.
- I am not fully happy with some of the proofs, especially the `leibniz_lie` in the `LieRing` instance, but did not manage to get it more elegant.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
139/0 |
Mathlib.lean,Mathlib/Algebra/Lie/SemiDirect.lean |
2 |
2 |
['github-actions'] |
ocfnash assignee:ocfnash |
1-39186 1 day ago |
3-42156 3 days ago |
3-41934 3 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`
These results 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 more general situation.
Also, remove unnecessary hypothesis in [Ideal.inertiaDeg_algebraMap](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.inertiaDeg_algebraMap)
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
38/6 |
Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/Galois.lean |
2 |
1 |
['github-actions'] |
nobody |
1-39073 1 day ago |
1-38349 1 day ago |
1-38127 1 day |
| 35412 |
joneugster author:joneugster |
feat(Tactic/Linter): add unicode linter for unicode variant-selectors |
This PR continues the work from #17129.
Original PR: https://github.com/leanprover-community/mathlib4/pull/17129 |
t-linter |
288/56 |
Mathlib/GroupTheory/GroupExtension/Defs.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/TextBased/UnicodeLinter.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CongrM.lean,Mathlib/Tactic/Widget/Conv.lean,Mathlib/Tactic/Widget/GCongr.lean,MathlibTest/LintStyle.lean,MathlibTest/hint.lean,MathlibTest/hintAll.lean |
11 |
3 |
['github-actions', 'joneugster'] |
grunweg assignee:grunweg |
1-34191 1 day ago |
1-33726 1 day ago |
1-33504 1 day |
| 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'] |
eric-wieser assignee:eric-wieser |
1-34161 1 day ago |
unknown |
unknown |
| 33972 |
YuvalFilmus author:YuvalFilmus |
feat(Analysis/Polynomial/Order): polynomial has fixed sign beyond largest root |
We prove that a polynomial has fixed sign beyond its largest root.
One could also prove similar results about the smallest root, but they will be more awkward since they will depend on the parity of the (natural) degree; suggestions welcome (perhaps for a future PR).
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
120/0 |
Mathlib.lean,Mathlib/Analysis/Polynomial/Order.lean |
2 |
11 |
['YuvalFilmus', 'artie2000', 'github-actions', 'mathlib-merge-conflicts', 'urkud', 'vihdzp'] |
ADedecker and urkud assignee:urkud assignee:ADedecker |
1-34005 1 day ago |
1-33305 1 day ago |
33-33118 33 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'] |
adomani assignee:adomani |
1-33243 1 day ago |
unknown |
unknown |
| 34676 |
joneugster author:joneugster |
chore(Algebra/CharP/MixedCharZero): update file to make use of the module system |
- mark all declarations in the file as `private` or `public`
- remove `@[exposed] public section`
- reduce `public` imports
- fix some wording and drop a random `example` which shouldn't be there
---
I've used this file to better understand the module system and its future implications for mathlib. The file is IMO ideal since it's an old toy example of mine which is a leaf that isn't imported in mathlib anywhere else (yet).
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
32/28 |
Mathlib/Algebra/CharP/MixedCharZero.lean |
1 |
4 |
['github-actions', 'joneugster', 'vihdzp'] |
eric-wieser assignee:eric-wieser |
1-33205 1 day ago |
3-4955 3 days ago |
16-55513 16 days |
| 33406 |
dupuisf author:dupuisf |
feat: add basics of majorization |
This PR defines [majorization](https://en.wikipedia.org/wiki/Majorization). This is needed to develop the theory of unitarily invariant norms on `ℂ^n`, in particular Schatten norms.
---
- [ ] depends on: #33394
[](https://gitpod.io/from-referrer/)
|
t-analysis |
725/13 |
Mathlib.lean,Mathlib/Analysis/Convex/Majorization/Basic.lean,Mathlib/Analysis/Convex/Majorization/Defs.lean,Mathlib/Data/Finset/Image.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Order/Interval/Finset/Fin.lean,docs/references.bib |
9 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-32972 1 day ago |
1-32972 1 day ago |
1-52880 1 day |
| 34867 |
urkud author:urkud |
feat(FDeriv/Comp): migrate to TVS |
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #34832 |
t-analysis |
125/125 |
Mathlib/Analysis/Calculus/FDeriv/Comp.lean,Mathlib/Analysis/Calculus/FDeriv/ContinuousAlternatingMap.lean,Mathlib/Analysis/Calculus/FDeriv/Mul.lean |
3 |
18 |
['eric-wieser', 'github-actions', 'j-loreaux', 'leanprover-radar', 'mathlib-bors', 'mathlib-dependent-issues', 'urkud'] |
j-loreaux assignee:j-loreaux |
1-31013 1 day ago |
1-31013 1 day ago |
12-63556 12 days |
| 25989 |
Multramate author:Multramate |
feat(NumberTheory/EllipticDivisibilitySequence): add elliptic nets |
This PR continues the work from #25030.
Original PR: https://github.com/leanprover-community/mathlib4/pull/25030 |
t-number-theory
large-import
|
254/39 |
Mathlib/NumberTheory/EllipticDivisibilitySequence.lean |
1 |
27 |
['MichaelStollBayreuth', 'Multramate', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib4-merge-conflict-bot', 'tb65536'] |
tb65536 assignee:tb65536 |
1-29689 1 day ago |
1-29672 1 day ago |
8-13846 8 days |
| 34624 |
homeowmorphism author:homeowmorphism |
feat(GroupTheory/FreeGroup/Basic): surjection between types induces surjection between free groups |
feat(GroupTheory/FreeGroup/Basic): adds the theorem that if `α` and `β` are arbitrary types and there is a surjection between them, then the induced FreeGroup.map is also surjective.
This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236.
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
|
14/3 |
Mathlib/GroupTheory/FreeGroup/Basic.lean |
1 |
23 |
['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'mathlib-merge-conflicts', 'tb65536', 'vlad902'] |
nobody |
1-29535 1 day ago |
1-27624 1 day ago |
11-70014 11 days |
| 35035 |
joelriou author:joelriou |
feat(CategoryTheory/Limits/FormalCoproducts): an extradegeneracy for the Cech object |
We show that the Cech object of `U : FormalCoproduct C` has an extra degeneracy when there is a map `T ⟶ U.obj i₀` for some `i₀` where `T` is a terminal object.
(In a future PR, we shall deduce that the Cech cohomology relative to a cover is trivial when the cover contains a terminal object.)
---
- [x] depends on: #35026
- [x] depends on: #35038
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
147/0 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/CategoryTheory/Limits/FormalCoproducts/Cech.lean,Mathlib/CategoryTheory/Limits/FormalCoproducts/ExtraDegeneracy.lean |
4 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-28506 1 day ago |
1-28581 1 day ago |
1-28360 1 day |
| 34987 |
urkud author:urkud |
feat: define `Matrix.ProjGenLinGroup` |
---
- [x] depends on: #34986
[](https://gitpod.io/from-referrer/) |
t-algebra label:t-algebra$ |
110/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/Projective.lean |
2 |
9 |
['github-actions', 'loefflerd', 'mathlib-dependent-issues', 'urkud'] |
nobody |
1-28097 1 day ago |
1-27438 1 day ago |
1-56371 1 day |
| 35050 |
j-loreaux author:j-loreaux |
feat: generalize some results for `SupConvergenceClass` to `ConditionallyCompletePartialOrder{Sup,Inf}` |
---
- [ ] depends on: #35047
[](https://gitpod.io/from-referrer/)
|
t-topology
t-order
easy
|
7/4 |
Mathlib/Topology/Order/MonotoneConvergence.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-27476 1 day ago |
1-26220 1 day ago |
1-25998 1 day |
| 35044 |
b-mehta author:b-mehta |
feat(RingTheory/Radical): positivity extension for radical of natural |
A follow-up from #25335 which I forgot to make at the time.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
maintainer-merge
|
20/0 |
Mathlib/RingTheory/Radical.lean |
1 |
4 |
['b-mehta', 'chrisflav', 'github-actions'] |
chrisflav assignee:chrisflav |
1-26883 1 day ago |
8-25058 8 days ago |
8-24836 8 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 |
7 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
pechersky assignee:pechersky |
1-25206 1 day ago |
1-23685 1 day ago |
11-45320 11 days |
| 35010 |
parabamoghv author:parabamoghv |
style(CategoryTheory/Monoidal): add notation for whiskerLeftIso and whiskerRightIso |
The PR adds the notation " ◁ᵢ " and " ▷ᵢ " for whiskerLeftIso and whiskerRightIso, respectively.
Motivation:
1. There is a notation " ⊗ᵢ " for tensorIso; this is consistent.
2. In my other PR, I had to use whiskerLeftIso. I thought the notation would be neat.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
|
13/1 |
Mathlib/CategoryTheory/Bicategory/Basic.lean,Mathlib/CategoryTheory/Monoidal/Category.lean |
2 |
8 |
['github-actions', 'parabamoghv', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-24587 1 day ago |
1-24626 1 day ago |
2-19760 2 days |
| 33275 |
YuvalFilmus author:YuvalFilmus |
feat(Trigonometric/Chebyshev/Extremal): Chebyshev polynomials maximize iterated derivatives |
We prove that Chebyshev polynomials maximized iterated derivatives at points x≥1.
---
- [x] depends on: #33259
- [x] depends on: #33274
[](https://gitpod.io/from-referrer/)
|
t-analysis |
74/1 |
Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Extremal.lean |
1 |
6 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
dupuisf assignee:dupuisf |
1-24516 1 day ago |
25-10995 25 days ago |
25-51101 25 days |
| 33850 |
YuvalFilmus author:YuvalFilmus |
feat(Chebyshev/ChebyshevGauss): Chebyshev–Gauss formula |
We prove the Chebyshev–Gauss quadrature formula, which reduces an integral with respect to the Chebyshev weight function to a finite sum.
---
- [ ] depends on: #33676
[](https://gitpod.io/from-referrer/)
|
t-analysis |
167/0 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/ChebyshevGauss.lean |
2 |
4 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
ADedecker assignee:ADedecker |
1-24449 1 day ago |
20-65244 20 days ago |
20-65022 20 days |
| 34601 |
themathqueen author:themathqueen |
feat(Combinatorics/SimpleGraph/AdjMatrix): adjacency matrix API |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
large-import
|
117/19 |
Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean |
1 |
21 |
['b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] |
kmill assignee:kmill |
1-22604 1 day ago |
1-21948 1 day ago |
18-48050 18 days |
| 35352 |
themathqueen author:themathqueen |
feat(Analysis/CStarAlgebra): the norm of a positive linear functional `f` on a unital C*-algebra is `f 1` |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
24/0 |
Mathlib/Analysis/CStarAlgebra/GelfandNaimarkSegal.lean,Mathlib/Analysis/CStarAlgebra/PositiveLinearMap.lean |
2 |
3 |
['github-actions', 'themathqueen'] |
nobody |
1-20184 1 day ago |
1-19492 1 day ago |
2-37150 2 days |
| 34621 |
homeowmorphism author:homeowmorphism |
feat(GroupTheory/FreeGroup/Basic): `FreeGroup Empty ≃* Unit`, `FreeGroup Empty ≃* PUnit` and `FreeGroup Unit ≃* Multiplicative ℤ` |
feat(GroupTheory/FreeGroup/Basic): defines the free group on one element as isomorphic multiplicatively to ℤ.
This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236.
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
|
45/6 |
Mathlib/GroupTheory/FreeGroup/Basic.lean |
1 |
35 |
['b-mehta', 'copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'tb65536'] |
nobody |
1-19271 1 day ago |
1-27155 1 day ago |
8-30059 8 days |
| 35017 |
robo7179 author:robo7179 |
feat(Combinatorics/SimpleGraph/Acyclic): add every nontrivial tree has atleast two leaves |
Added two theorems to prove that every non trivial tree has atleast two leaves (one in Finite the other in Acyclic).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
94/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean |
2 |
24 |
['IvanRenison', 'SnirBroshi', 'github-actions', 'robo7179'] |
nobody |
1-19250 1 day ago |
1-20694 1 day ago |
7-24471 7 days |
| 35391 |
peabrainiac author:peabrainiac |
feat(Geometry/Manifold): API for extended coordinate changes |
Introduce a definition `I.extendCoordChange e e'` for what previously appeared in lemmas as `(e.extend I).symm ≫ e'.extend I`, and provide some more API lemmas. Split out from #33189.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
131/51 |
Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/VectorBundle/Tangent.lean,scripts/nolints_prime_decls.txt |
3 |
3 |
['github-actions', 'grunweg'] |
nobody |
1-12980 1 day ago |
1-69292 1 day ago |
1-69070 1 day |
| 35327 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Acyclic): the union of two trees that share exactly one vertex is a tree |
---
A surprisingly painful proof for something that seems trivial when using a proof by drawing on the board.
To avoid any doubts: no AI was involved whatsoever.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
95/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean |
2 |
3 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
1-7764 1 day ago |
3-2979 3 days ago |
3-6738 3 days |
| 34015 |
erdOne author:erdOne |
feat(AlgebraicGeometry): category of schemes affine over a base |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
466/11 |
Mathlib.lean,Mathlib/AlgebraicGeometry/AffineOver.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/AlgebraicGeometry/Morphisms/Affine.lean,Mathlib/AlgebraicGeometry/OpenImmersion.lean,Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean,Mathlib/CategoryTheory/Limits/Constructions/Over/Connected.lean |
7 |
19 |
['dagurtomas', 'erdOne', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
alexjbest assignee:alexjbest |
1-5407 1 day ago |
4-73049 4 days ago |
16-43508 16 days |
| 34221 |
tb65536 author:tb65536 |
refactor(RingTheory/Ideal/AssociatedPrime/Basic): redefine associated primes to include a radical |
This PR redefines associated primes from
`I.IsPrime ∧ ∃ x : M, I = colon ⊥ {x}`
to
`I.IsPrime ∧ ∃ x : M, I = (colon ⊥ {x}).radical`.
This new definition is slightly nonstandard but is the correct definition in the non-Noetherian setting because these are exactly the prime ideals of any minimal primary decomposition. I.e., one can prove the following theorem (see #34699):
```
lemma IsMinimalPrimaryDecomposition.image_radical_eq_associated_primes
{R M : Type*} [CommSemiring R] [AddCommMonoid M] [Module R M] [DecidableEq (Submodule R M)]
{I : Submodule R M} {t : Finset (Submodule R M)} (ht : I.IsMinimalPrimaryDecomposition t) :
(fun J ↦ (J.colon Set.univ).radical) '' t = I.associatedPrimes :=
```
I also added a new definition `N.IsAssociatedPrime := I.IsPrime ∧ ∃ x : M, I = (colon N {x}).radical` for submodules because that's actually the definition needed for the above theorem (you can't write `associatedPrimes R (M ⧸ N)` when `M` is only an `AddCommMonoid`). And also the proof that the radical doesn't matter when the ring is Noetherian generalizes to this case.
---
- [x] depends on: #34226
- [x] depends on: #34255
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
large-import
label:t-algebra$ |
136/66 |
Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Finiteness.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Regular/Depth.lean |
4 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
chrisflav assignee:chrisflav |
1-5406 1 day ago |
4-31862 4 days ago |
4-31640 4 days |
| 34295 |
Yu-Misaka author:Yu-Misaka |
chore: drop `PartialOrder` in `IsOrderedMonoid` instances |
This PR attempts to remove `PartialOrder` assumption in `IsOrderedMonoid`. The main objective is to make [Finsupp.sum_le_sum](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Order.html#Finsupp.sum_le_sum) available for preorder.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
t-order
label:t-algebra$ |
149/123 |
Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/Group/Subgroup/Order.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/Units.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Monoid/Associated.lean,Mathlib/Algebra/Order/Monoid/Basic.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/OrderDual.lean,Mathlib/Algebra/Order/Monoid/Prod.lean,Mathlib/Algebra/Order/Monoid/Submonoid.lean,Mathlib/Algebra/Order/Monoid/TypeTags.lean,Mathlib/Algebra/Order/Monovary.lean,Mathlib/Algebra/Order/Pi.lean,Mathlib/Algebra/Order/UpperLower.lean,Mathlib/Analysis/Normed/Order/UpperLower.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/Order/Filter/AtTopBot/Monoid.lean,Mathlib/Order/Filter/Germ/OrderedMonoid.lean,Mathlib/Order/Filter/IsBounded.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/Algebra/Order/UpperLower.lean |
32 |
16 |
['Citronhat', 'MichaelStollBayreuth', 'Yu-Misaka', 'copilot-pull-request-reviewer', 'github-actions', 'leanprover-radar'] |
Vierkantor assignee:Vierkantor |
1-5405 1 day ago |
6-54160 6 days ago |
25-29114 25 days |
| 34493 |
loefflerd author:loefflerd |
feat(LinearAlgebra/QuadraticForm): radical of a quadratic form |
Define the radical of a quadratic form, and show that its dimension is invariant under equivalences.
---
This is a step on the way to Sylvester's law of inertia (#34204).
- [x] depends on: #34110
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
248/4 |
Mathlib.lean,Mathlib/LinearAlgebra/Basis/Basic.lean,Mathlib/LinearAlgebra/Dimension/Constructions.lean,Mathlib/LinearAlgebra/LinearIndependent/Defs.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/QuadraticForm/IsometryEquiv.lean,Mathlib/LinearAlgebra/QuadraticForm/Radical.lean,Mathlib/LinearAlgebra/StdBasis.lean,docs/references.bib |
9 |
3 |
['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] |
riccardobrasca assignee:riccardobrasca |
1-5404 1 day ago |
4-65658 4 days ago |
20-25534 20 days |
| 34543 |
j-loreaux author:j-loreaux |
refactor: improve API connecting `ℝ`- and `𝕜`-linear functionals |
This PR concerns the extension of `ℝ`-linear (continuous or not) functionals to `𝕜`-linear functionals. This does several things, but I felt it was better to do it all at once, rather than having repeated churn in the same files because the current setup is a mess for numerous reasons. Unfortunately, that means the diff is a bit of a mess; I think the easiest way to review this PR is read the following discussion and then only look at the *new* code (and check that the deprecations exist).
I will begin by highlighting the current problems:
1. Naming: the primary declarations `LinearMap.extendTo𝕜'` and `ContinuousLinearMap.extendTo𝕜'` are in the wrong namespaces (`Module.Dual` and `StrongDual`), and contain a variable name `𝕜`.
2. These declarations are primed, and their unprimed counterparts operate directly on `RestrictScalars`. This is nominally (according to the module documentation) for convenience, but it leads to defeq abuse (see #34530) and so should be avoided anyway. That PR removes the only occurrence of the use of the unprimed declarations in Mathlib.
3. The declaration `ContinuousLinearMap.extendTo𝕜'` has type class assumptions (normed ones) that are too strong, thereby making it unusable for non-normed spaces (e.g., when one wants to consider continuous linear functionals on the weak dual of a Banach space).
4. Point (3) led to the creation of `RCLike.extendTo𝕜'ₗ` which is just `ContinuousLinearMap.extendTo𝕜'` except reproven with weaker type class assumptions and bundled into a linear map.
5. There are missing `simp` lemmas, namely, ones concerning the imaginary part of the extension applied to a vector.
6. We're missing appropriately bundled versions, with `RCLike.extendTo𝕜'ₗ` being the only bundling currently.
In this PR: we fix the above by doing the following:
1. Renaming `LinearMap.extendTo𝕜'` → `Module.Dual.extendRCLike` and `ContinuousLinearMap.extendTo𝕜'` → `StrongDual.extendRCLike`.
2. Removing the unprimed counterparts that operate on `RestrictScalars`
3. Weakening the type class assumptions on the newly renamed `StrongDual.extendRCLike`
4. Move `RCLike.extendTo𝕜'ₗ` out of its current location (`Analysis/LocallyConvex/Separation`) and next to `StrongDual.extendRCLike`; use the newly generalized `StrongDual.extendRCLike` to define it; rename it to `StrongDual.extendRCLikeₗ`; upgrade it from a linear map to a linear equivalence.
5. Add the missing simp lemmas for imaginary parts.
6. Add other appropriate bundlings, namely `Module.Dual.extendRCLikeₗ : Dual E ℝ ≃ₗ[ℝ] Dual E 𝕜`, and, in the context of normed spaces `StrongDual.extendRCLikeₗᵢ : StrongDual E ℝ ≃ₗᵢ[ℝ] StrongDual E 𝕜`.
---
In a follow-up PR, I will add the bundling:
`WeakDual.extendRCLikeL : WeakDual E ℝ ≃L[ℝ] WeakDual E 𝕜`.
- [ ] depends on: #34530
[](https://gitpod.io/from-referrer/)
|
t-analysis |
125/114 |
Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Module/HahnBanach.lean,Mathlib/Analysis/Normed/Module/RCLike/Extend.lean,Mathlib/Analysis/RCLike/Extend.lean |
4 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
urkud assignee:urkud |
1-5403 1 day ago |
16-43263 16 days ago |
16-43047 16 days |
| 34640 |
vihdzp author:vihdzp |
chore(Order/UpperLower/Basic): use `to_dual` |
---
- [x] depends on: #33964
[](https://gitpod.io/from-referrer/)
|
t-order |
29/78 |
Mathlib/Order/Interval/Set/LinearOrder.lean,Mathlib/Order/Interval/Set/OrderEmbedding.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/Order/WellFounded.lean |
4 |
13 |
['JovanGerb', 'Komyyy', 'github-actions', 'mathlib-dependent-issues', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
1-5402 1 day ago |
4-70984 4 days ago |
10-41508 10 days |
| 34643 |
joelriou author:joelriou |
feat(AlgebraicTopology): various localized equivalences |
Given a model category `C`, we show that a few localizer morphisms are localized weak equivalences, which can be understood by saying that we obtain the same localized category (up to equivalence) by inverting weak equivalences in `C`, `CofibrantObject C`, `FibrantObject C` or `BifibrantObject C`.
---
- [x] depends on: #34641
- [x] depends on: #34642
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
t-category-theory
|
126/1 |
Mathlib.lean,Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean,Mathlib/CategoryTheory/Localization/LocalizerMorphism.lean,Mathlib/CategoryTheory/Quotient/LocallySmall.lean |
4 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
robin-carlier assignee:robin-carlier |
1-5402 1 day ago |
4-17241 4 days ago |
4-17019 4 days |
| 35024 |
SnirBroshi author:SnirBroshi |
chore(RingTheory/DedekindDomain/PID): remove non-terminal simp |
And remove obsolete explicit params since the `FunLike` refactor.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
14/33 |
Mathlib/RingTheory/DedekindDomain/PID.lean |
1 |
4 |
['Komyyy', 'SnirBroshi', 'github-actions'] |
mattrobball assignee:mattrobball |
1-5401 1 day ago |
4-42782 4 days ago |
8-40716 8 days |
| 35072 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for `Seq`: `FriendlyOperation` API |
This is a continuation of #34311.
This PR adds more API about friendly operations:
* `FriendlyOperation.destruct`: a "coinductive destructor" for `FriendlyOperation`
* `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.
---
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-data
t-meta
|
296/0 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
1-5400 1 day ago |
7-57021 7 days ago |
7-60503 7 days |
| 35080 |
rwst author:rwst |
doc(RingTheory/PowerSeries/Derivative): main def/stmts, docstrings |
Added main definitions, main statements, added and fixed docstrings.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
35/6 |
Mathlib/RingTheory/PowerSeries/Derivative.lean |
1 |
2 |
['github-actions'] |
chrisflav assignee:chrisflav |
1-5399 1 day ago |
7-43429 7 days ago |
7-43207 7 days |
| 35097 |
pevogam author:pevogam |
feat: add a LE version Rat.lt_one_iff_num_le_denom theorem |
The following is more useful due to the partial order application of LE in comparison to LT.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
2/0 |
Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean |
1 |
6 |
['github-actions', 'pevogam', 'wwylele'] |
kim-em assignee:kim-em |
1-5399 1 day ago |
4-54222 4 days ago |
7-13724 7 days |
| 35162 |
JovanGerb author:JovanGerb |
feat(Order/Interval/Set/Basic): use `to_dual` |
This PR tags basic theorems about `Ioo`, `Ioc`, `Ico` and `Icc` with `to_dual`. This is the other half of #33964.
Notes:
- I decided to add the theorems `Ico_subset_Ioo` and `Icc_subset_Ioc`, because they were missing.
- For some proofs, the cast insertion heuristic failed, and I had to modify the proof slightly in order to make it work with `to_dual`. The two kinds of fixes were replacing `fun ⟨hx₁, hx₁⟩ ↦` with `fun hx ↦` and then using `hx.1` and `hx.2`, and inserting an explicit rewrite using `mem_Ioo` in order to eliminate the defEq abuse. I should investigate how to fix this, but that shouldn't block this PR.
- There were some theorems that hold by `rfl`, but their dual does not. This confused the `@[defEq]` attribute, because we were erroneously setting it for these dual theorems. I've modified it so that it will first check if the attribute is applicable.
- `left_notMem_Ioc` and `left_notMem_Ioo` used to have explicit arguments. I made these implicit which lines up with their dual version, and their `Finset` counterparts.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
186/353 |
Mathlib/Order/Interval/Set/Basic.lean,Mathlib/Tactic/Translate/Core.lean |
2 |
3 |
['github-actions', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
1-5395 1 day ago |
4-54184 4 days ago |
5-47323 5 days |
| 35206 |
j-loreaux author:j-loreaux |
feat: `Cauchy.map` for functions uniformly continuous on a set |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
13/2 |
Mathlib/Topology/UniformSpace/Basic.lean,Mathlib/Topology/UniformSpace/Cauchy.lean |
2 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
1-5393 1 day ago |
4-33221 4 days ago |
5-13440 5 days |
| 35217 |
kim-em author:kim-em |
feat: auxiliary lemmas for Artin and braid groups |
This PR adds small lemmas to existing files, in preparation for the Artin groups and braid groups PRs.
- `Commute.mul_pow_eq_one`: for commuting elements with `a ^ m = 1` and `b ^ m = 1`
- `Equiv.Perm.swap_conjugate`: braid relation for adjacent transpositions
- `Equiv.Perm.swap_mul_swap_comm_of_disjoint`: disjoint transpositions commute
- `@[grind =]` attributes on `Perm.mul_apply`, `Perm.one_apply`; new `Perm.pow_add_one_apply`
- `Subgroup.normalClosure_singleton_one`
- `FreeGroup.ofList` and associated lemmas
- `FreeGroup.freeGroupUnitMulEquivInt`
- `PresentedGroup.instUniqueOfIsEmpty`
- `CoxeterMatrix.Aₙ_adjacent`, `CoxeterMatrix.Aₙ_far`
🤖 Prepared with Claude Code |
|
86/0 |
Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/PresentedGroup.lean |
6 |
7 |
['eric-wieser', 'github-actions', 'themathqueen'] |
thorimur assignee:thorimur |
1-5392 1 day ago |
unknown |
unknown |
| 35224 |
b-mehta author:b-mehta |
feat(Module/RCLike): convenience lemma to prove antilipschitz over RCLike |
Use the fact that we can rescale by norms in RCLike to get a convenience constructor for Antilipschitz
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
easy
|
16/0 |
Mathlib/Analysis/Normed/Module/RCLike/Basic.lean |
1 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
1-5390 1 day ago |
5-375 5 days ago |
5-153 5 days |
| 35243 |
ScottCarnahan author:ScottCarnahan |
chore(Algebra/MonoidAlgebra/PointwiseSMul): switch action from Finsupp to (Add)MonoidAlgebra and multiplicativize |
This PR moves the API for convolution action on functions from `Finsupp` to `MonoidAlgebra`, adding a `Semiring` hypothesis. We do this move, because the convolution action of finsupps on formal functions is more naturally expressed as an action by the monoid algebra with its convolutional multiplication.
This PR also multiplicativizes, preserving the original material with `to_additive`.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-algebra
label:t-algebra$ |
109/52 |
Mathlib.lean,Mathlib/Algebra/MonoidAlgebra/PointwiseSMul.lean,Mathlib/Data/Finsupp/PointwiseSMul.lean |
3 |
1 |
['github-actions'] |
eric-wieser assignee:eric-wieser |
1-5388 1 day ago |
4-53020 4 days ago |
4-52798 4 days |
| 35268 |
tb65536 author:tb65536 |
feat(Topology/Algebra/Module/LinearMap): units in `M →L[R] M` are homeomorphisms |
This PR proves that a units in `M →L[R] M` are homeomorphisms.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-algebra
label:t-algebra$ |
9/1 |
Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean |
2 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
1-5386 1 day ago |
4-29664 4 days ago |
4-29442 4 days |
| 35269 |
tb65536 author:tb65536 |
refactor(Topology/Algebra/Module/LinearMap): adjust statement of `coe_mul` and `coe_pow` |
In `Topology/Algebra/Module/LinearMap`, it seems to be the pattern to have `coe_zero`/`coe_id`/`coe_add`/`coe_neg`/`coe_sub` for the coercions from `ContinuousLinearMap` to `LinearMap` and primed versions `coe_zero'`/`coe_id'`/`coe_add'`/`coe_neg'`/`coe_sub'` for the coercions from `ContinuousLinearMap` to `Function`.
This PR adjusts the statements of `coe_mul` and `coe_pow` to fit this pattern, as well as adding `coe_one`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-algebra
label:t-algebra$ |
20/12 |
Mathlib/Analysis/CStarAlgebra/Multiplier.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean |
2 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
1-5385 1 day ago |
4-25381 4 days ago |
4-25159 4 days |
| 34882 |
vihdzp author:vihdzp |
chore(Order/SuccPred/Archimedean): use `to_dual` |
---
- [x] depends on: #34880
[](https://gitpod.io/from-referrer/)
|
t-order |
42/92 |
Mathlib/Order/MinMax.lean,Mathlib/Order/SuccPred/Archimedean.lean,Mathlib/Order/SuccPred/Basic.lean |
3 |
10 |
['JovanGerb', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
1-3850 1 day ago |
4-18515 4 days ago |
4-18293 4 days |
| 33985 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): `OmegaCompletePartialOrder` instance for `Sum` with basic `ωScottContinuous` lemmas |
This PR adds an `OmegaCompletePartialOrder` instance for `Sum`, along with `ωScottContinuous` lemmas for basic operations (`inl`, `inr`, `elim`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sum`s (e.g. see the proof of `Sum.ωScottContinuous_map`).
---
- [x] depends on: #33941
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-order
|
191/1 |
Mathlib/Data/Sum/Basic.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/ScottContinuity.lean |
4 |
20 |
['Vierkantor', 'YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
1-396 1 day ago |
0-84453 23 hours ago |
13-61757 13 days |
| 34578 |
dennj author:dennj |
feat: define Boolean circuits over abstract gate families |
This PR introduces a foundation for Boolean circuits parameterized by abstract gate families.
## Main definitions
- `GateEval`: typeclass for gate families with Boolean semantics
- `GateHom`: arity-preserving maps between gate families
- `Circuit`: inductive type representing circuit syntax trees
- `AC0Gate`, `ACC0Gate`, `TC0Gate`: standard complexity-theoretic gate bases
## Design notes
The key design choice is to keep **syntax** (gate labels `G : Nat → Type`) separate from
**semantics** (`GateEval.eval`), allowing users to define custom gate families (e.g., MAJ, XOR,
arbitrary threshold gates) without modifying core definitions.
### Tree vs DAG representation
We evaluated two approaches for circuit representation:
1. **Tree-based** (this PR): Circuits as inductive syntax trees
2. **DAG-based**: Circuits as lists of gates with index-based references
We chose tree-based circuits because:
- **Compositionality**: Easy to build circuits via `gate g (fun i => subcircuit i)`
- **Type safety**: Arity-indexed gates (`G : Nat → Type`) catch errors at compile time
- **Manipulation**: Natural support for `mapGate`, `subst`, `mapInputs`
- **Mathlib philosophy**: Aligns with structural/compositional reasoning patterns
For use cases requiring explicit sharing (complexity analysis, evaluation efficiency),
a separate `DAG` type can be added later with proven equivalence via `Circuit.toDAG`.
The current representation serves as a minimal foundation for size/depth measures,
circuit families, and complexity classes (AC0, ACC0, TC0).
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-computability
|
919/0 |
Mathlib.lean,Mathlib/Computability/Circuit/Basic.lean,Mathlib/Computability/Formula/Basic.lean,Mathlib/Computability/Gate.lean |
4 |
18 |
['LLaurance', 'YuvalFilmus', 'dennj', 'github-actions'] |
nobody |
0-85254 23 hours ago |
0-85254 23 hours ago |
8-28708 8 days |
| 34713 |
dennj author:dennj |
feat(Probability/Markov): stationary distributions for stochastic matrices |
This PR proves that every row-stochastic matrix on a finite nonempty
state space has a stationary distribution in the standard simplex.
Main additions to `Mathlib/Probability/Markov/Stationary.lean`:
- `IsStationary`: A distribution μ is stationary for matrix P if μ ᵥ* P = μ
- `cesaroAverage`: Cesàro average of iterates of a vector under a matrix
- `Matrix.rowStochastic.exists_stationary_distribution`: existence theorem
The proof uses Cesàro averaging: start with uniform distribution, form
averages, extract convergent subsequence by compactness, show limit is
stationary via L¹ non-expansiveness.
Also adds `vecMul_mem_stdSimplex` to `Stochastic.lean`: multiplying a
probability vector by a row-stochastic matrix preserves simplex membership. |
t-algebra
new-contributor
label:t-algebra$ |
231/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Stochastic.lean,Mathlib/Probability/Markov/Stationary.lean |
3 |
6 |
['dennj', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts'] |
nobody |
0-85222 23 hours ago |
0-85222 23 hours ago |
1-28423 1 day |
| 27953 |
CoolRmal author:CoolRmal |
feat(ProbabilityTheory): Conditional Jensen's Inequality |
This PR adds conditional Jensen's inequality. I made some changes to Mathlib/Analysis/Convex/Approximation.lean because I need the sequence of affine functions to be bouneded above at each point.
---
- [x] depends on: #31411
- [x] depends on: #31399
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
130/20 |
Mathlib.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean |
4 |
8 |
['CoolRmal', 'EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
sgouezel assignee:sgouezel |
0-83631 23 hours ago |
0-82963 22 hours ago |
20-36950 20 days |
| 35048 |
b-mehta author:b-mehta |
feat(Analysis/Normed/Operator): prove the Fredholm alternative |
This PR proves the Fredholm alternative for compact operators on a Banach space over a nontrivially normed field
- [x] depends on: #35001
- [x] depends on: #35052
- [x] depends on: #35226
|
t-analysis |
244/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Operator/Banach.lean,Mathlib/Analysis/Normed/Operator/FredholmAlternative.lean |
3 |
10 |
['b-mehta', 'github-actions', 'loefflerd', 'mathlib-dependent-issues', 'tb65536'] |
nobody |
0-79983 22 hours ago |
1-59070 1 day ago |
4-44114 4 days |
| 35207 |
j-loreaux author:j-loreaux |
feat: neighborhood basis in a metric space consisting of closed balls of radius `1 / (n + 1)` |
---
I wanted this for convenience downstream and it didn't exist. We have similar things, but not this one.
[](https://gitpod.io/from-referrer/)
|
t-topology
easy
|
19/0 |
Mathlib/Topology/MetricSpace/Pseudo/Defs.lean |
1 |
3 |
['Komyyy', 'github-actions'] |
nobody |
0-76142 21 hours ago |
1-36496 1 day ago |
5-12877 5 days |
| 35211 |
kim-em author:kim-em |
chore: use @[to_dual] in Bounds/Image |
This PR adds `@[to_dual]` annotations to primal theorems in `Mathlib.Order.Bounds.Image`, auto-generating their dual counterparts and deleting the hand-written versions. Covers `MonotoneOn`, `AntitoneOn`, `Monotone`, `Antitone`, `image2`, `IsCofinalFor`, `Prod`, and `Pi` sections.
[Diff relative to #35208](https://github.com/kim-em/mathlib4/compare/kim/to-dual-bounds-basic...kim/to-dual-bounds-image)
- [x] depends on: #35208
🤖 Prepared with Claude Code |
|
56/193 |
Mathlib/Order/Bounds/Image.lean |
1 |
14 |
['JovanGerb', 'github-actions', 'kim-em', 'mathlib-dependent-issues', 'vihdzp'] |
nobody |
0-74757 20 hours ago |
0-71600 19 hours ago |
4-62677 4 days |
| 35429 |
CoolRmal author:CoolRmal |
feat: a convex, lower-semicontinuous, and positively homogeneous function is the supremum of a family of linear functions |
This PR adds more results related to the #31411. The motivation of this PR is explained over here: #35431.
The main theorems proved in this PR are
- `convexCone_sSup_linear_eq`: A function `φ : E → ℝ` that is convex, lower-semicontinuous, and positively homogeneous on a closed, convex, and pointed cone `c` is the supremum of a family of functions that are the
restrictions to `s` of continuous linear forms in `E`. I actually prove this theorem under the assumption
`∀ x ∈ c, ∀ᶠ μ in atTop, φ (μ • x) = μ * φ x`, which is weaker than positive homogeneity.
- We then apply the theorem above to prove `univ_sSup_linear_eq`, which says that a function that is convex, lower-semicontinuous, and positively homogeneous on the entire space is the supremum of a family of continuous linear forms in `E`.
- Similar to what I have done in #31411, I also proved the countable/sequential version of these theorems, under the assumption that the underlying space `E` is hereditarily Lindelof.
---
- [ ] depends on #27953
[](https://gitpod.io/from-referrer/)
|
|
351/24 |
Mathlib.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean |
4 |
1 |
['github-actions'] |
nobody |
0-74700 20 hours ago |
unknown |
unknown |
| 35209 |
kim-em author:kim-em |
chore: use @[to_dual] extensively in CompleteLattice |
This PR adds `@[to_dual]` and `@[to_dual existing]` annotations extensively in `CompleteLattice/Defs.lean` and `CompleteLattice/Basic.lean`, auto-generating many dual theorems and deleting the hand-written versions.
[Diff relative to previous PR](https://github.com/kim-em/mathlib4/compare/kim/to-dual-bounds-basic...kim/to-dual-complete-lattice)
- [x] depends on: #35208
🤖 Prepared with Claude Code |
|
180/485 |
Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean |
3 |
20 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
0-67704 18 hours ago |
0-64543 17 hours ago |
3-47567 3 days |
| 33746 |
ster-oc author:ster-oc |
feat(Algebra/Module/ZLattice): align `ZSpan.floor` to `Int.floor` API |
This PR adds some of the existent lemmas about `Int.floor`, `Int.ceil` and `Int.fract` to the `ZSpan` namespace.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
353/145 |
Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Topology/Algebra/Order/Floor.lean |
3 |
7 |
['github-actions', 'joelriou', 'mathlib-merge-conflicts', 'ster-oc'] |
joelriou assignee:joelriou |
0-65763 18 hours ago |
0-65975 18 hours ago |
25-3912 25 days |
| 35418 |
vlad902 author:vlad902 |
feat(SimpleGraph): `IsAcyclic` iff not 2-edge-reachable |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
46/5 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean |
3 |
3 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
0-63753 17 hours ago |
0-63048 17 hours ago |
1-16988 1 day |
| 35259 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat: add a definition and API lemmas for Polynomial.homogenize and MvPolynomial |
This PR adds two API lemmas for multivariate polynomials: the support of `1` is `{0}` and all terms of a homoegenous polynomial of degree `n` have degree `n`.
It also adds an API lemma for `Polynomial.homogenize` (a polynomial is zero if its homogenization of sufficiently large degree is zero), plus a definition
```lean
/-- Given a polynomial `p : R[X]`, this is the family `![p₀, p₁]` of homogeneous bivariate
polynomials of degree `p.natDegree` such that `p(x) = p₀(x,1)/p₁(x,1)` and `p₁` is a monomial. -/
noncomputable
def toTupleMvPolynomial (p : R[X]) : Fin 2 → MvPolynomial (Fin 2) R :=
![p.homogenize p.natDegree, (MvPolynomial.X 1) ^ p.natDegree]
```
and some API for it.
This is useful for developing the theory of heights (in arithmetic geometry); see [Heights](https://github.com/MichaelStollBayreuth/Heights).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
88/0 |
Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/Polynomial/Homogenize.lean,Mathlib/RingTheory/MvPolynomial/Homogeneous.lean |
3 |
10 |
['AntoineChambert-Loir', 'MichaelStollBayreuth', 'github-actions'] |
nobody |
0-63246 17 hours ago |
1-44950 1 day ago |
4-33384 4 days |
| 34699 |
tb65536 author:tb65536 |
feat(RingTheory/Lasker): prove first uniqueness theorem for primary decomposition |
This PR proves the first uniqueness theorem for primary decomposition: In any minimal primary decomposition `I = ⨅ i, q_i`, the ideals `√(q_i : M)` are exactly the associated primes of `I`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
maintainer-merge
label:t-algebra$ |
38/6 |
Mathlib/RingTheory/IsPrimary.lean,Mathlib/RingTheory/Lasker.lean |
2 |
10 |
['erdOne', 'github-actions', 'mariainesdff', 'tb65536'] |
mariainesdff assignee:mariainesdff |
0-59756 16 hours ago |
0-59001 16 hours ago |
16-11523 16 days |
| 34400 |
euprunin author:euprunin |
chore: golf using `grind` (and add one supporting `grind` annotation) |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `SubMulAction.ofStabilizer.isMultiplyPretransitive`: 207 ms before, 232 ms after
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
maintainer-merge
|
4/14 |
Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean |
2 |
8 |
['euprunin', 'github-actions', 'leanprover-radar', 'mattrobball', 'tb65536', 'vihdzp'] |
mattrobball assignee:mattrobball |
0-58398 16 hours ago |
6-21342 6 days ago |
20-30453 20 days |
| 29550 |
Raph-DG author:Raph-DG |
feat(RingTheory): Order of vanishing in a discrete valuation ring |
In this PR we develop some API for working with the order of vanishing in a discrete valuation ring.
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-ring-theory
|
442/3 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Action/Basic.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/OrderOfVanishing/Basic.lean,Mathlib/RingTheory/OrderOfVanishing/Properties.lean |
5 |
18 |
['Raph-DG', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot'] |
erdOne assignee:erdOne |
0-57831 16 hours ago |
0-57096 15 hours ago |
33-38012 33 days |
| 35146 |
harahu author:harahu |
doc(CategoryTheory/Bicategory/Kan): clarify Kan adjunction docstrings |
* The two IsAbsKan.adjunction docstrings in Kan/Adjunction were corrected to match the actual definitions: they now describe deriving adjunctions from absolute left Kan (co)universal data, not from an input adjunction.
* Grammar and phrasing were cleaned up in the IsKan.adjunction docs (commutes with f/u).
* In Kan/HasKan and Kan/IsKan, stale/non-API names were replaced by the current identifiers (lan, lanLift, HasLeftKanExtension) and Kan capitalization was normalized.
---
The issues were identified and fixed by Codex.
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
16/14 |
Mathlib/CategoryTheory/Bicategory/Kan/Adjunction.lean,Mathlib/CategoryTheory/Bicategory/Kan/HasKan.lean,Mathlib/CategoryTheory/Bicategory/Kan/IsKan.lean |
3 |
9 |
['dagurtomas', 'github-actions', 'harahu', 'joelriou'] |
joelriou assignee:joelriou |
0-57737 16 hours ago |
0-57293 15 hours ago |
5-48366 5 days |
| 35436 |
daniel-carranza author:daniel-carranza |
feat(CategoryTheory/Monoidal/Closed): Prove the isomorphism of internal hom objects C(x \otimes y, z) and C(y, C(x, z)) |
Prove the currying-uncurrying isomorphism `C(x \otimes y, z) \iso C(y, C(x, z))` between internal hom objects of a closed monoidal category `C`.
---
This result is connected to the infinity-cosmos project, and is used to prove that a closed monoidal category enriched in itself admits all cotensors.
Line 81 currently contains a one-line proof in tactics mode `exact rfl`. When trying to use `rfl` outside of tactics mode, an error is thrown. Any help with this (or any other aspect of the formalization) is greatly appreciated!
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-category-theory
infinity-cosmos
|
84/0 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Closed/InternalCurrying.lean |
2 |
4 |
['github-actions', 'robin-carlier'] |
nobody |
0-57714 16 hours ago |
0-61024 16 hours ago |
0-60802 16 hours |
| 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
large-import
|
209/0 |
Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Topology/KrullDimension.lean,Mathlib/Topology/Sets/Closeds.lean,Mathlib/Topology/Sober.lean |
5 |
44 |
['Raph-DG', 'chrisflav', 'erdOne', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
erdOne assignee:erdOne |
0-56524 15 hours ago |
0-55256 15 hours ago |
29-26762 29 days |
| 35437 |
harahu author:harahu |
chore(Topology): fix indentation in markdown lists |
Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
25/25 |
Mathlib/Topology/Algebra/AsymptoticCone.lean,Mathlib/Topology/Algebra/ConstMulAction.lean,Mathlib/Topology/Algebra/ContinuousAffineEquiv.lean,Mathlib/Topology/Algebra/Module/PointwiseConvergence.lean,Mathlib/Topology/Algebra/RestrictedProduct/TopologicalSpace.lean,Mathlib/Topology/Convenient/GeneratedBy.lean,Mathlib/Topology/GDelta/Basic.lean,Mathlib/Topology/QuasiSeparated.lean,Mathlib/Topology/Sheaves/Over.lean |
9 |
3 |
['github-actions', 'harahu', 'mathlib-bors'] |
nobody |
0-55895 15 hours ago |
0-54891 15 hours ago |
0-54669 15 hours |
| 35435 |
WenrongZou author:WenrongZou |
feat(RingTheory/MvPowerSeries): toMvPowerSeries and rename |
---
Some APIs about `rename` and `toMvPowerSeries`. This follows the inspiration in `Polynomial.toMvPolynomial` and `MvPolynomial.rename`. I will add more theorems related to these in the next PR.
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
325/4 |
Mathlib.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
4 |
4 |
['BryceT233', 'WenrongZou', 'github-actions'] |
nobody |
0-55124 15 hours ago |
0-66072 18 hours ago |
0-65850 18 hours |
| 35215 |
kim-em author:kim-em |
chore: use @[to_dual] in FixedPoints |
This PR adds `@[to_dual]` annotations to 14 theorems about `lfp` in `Order/FixedPoints.lean`, auto-generating their `gfp` duals and deleting the hand-written versions. Also registers `OrderHom.lfp` as the dual of `OrderHom.gfp` via `attribute [to_dual existing]`.
Auto-generated duals include: `le_gfp`, `gfp_le_fixed`, `gfp_le`, `gfp_le_map`, `map_gfp`, `isFixedPt_gfp`, `map_le_gfp`, `isGreatest_gfp_le`, `isGreatest_gfp`, `gfp_induction`, `map_gfp_comp`, `gfp_gfp`, `map_inf_fixedPoints_le`, `map_sInf_subset_fixedPoints_le`.
[Diff relative to #35208](https://github.com/kim-em/mathlib4/compare/kim/to-dual-bounds-basic...kim/to-dual-fixed-points)
- [x] depends on: #35208
🤖 Prepared with Claude Code |
|
325/759 |
Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Order/Bounds/Image.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Interval/Set/Disjoint.lean,Mathlib/Topology/Order.lean |
9 |
7 |
['JovanGerb', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
0-54071 15 hours ago |
0-51933 14 hours ago |
4-243 4 days |
| 35439 |
harahu author:harahu |
chore(RingTheory): fix indentation in markdown lists |
Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
93/88 |
Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DividedPowers/Basic.lean,Mathlib/RingTheory/DividedPowers/DPMorphism.lean,Mathlib/RingTheory/DividedPowers/RatAlgebra.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Extension/Basic.lean,Mathlib/RingTheory/Flat/EquationalCriterion.lean,Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean,Mathlib/RingTheory/IdealFilter/Topology.lean,Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean,Mathlib/RingTheory/Jacobson/Artinian.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean,Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Expand.lean,Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean,Mathlib/RingTheory/MvPowerSeries/Order.lean,Mathlib/RingTheory/NormalClosure.lean,Mathlib/RingTheory/Perfectoid/BDeRham.lean,Mathlib/RingTheory/Perfectoid/FontaineTheta.lean,Mathlib/RingTheory/PolynomialLaw/Basic.lean,Mathlib/RingTheory/PowerSeries/PiTopology.lean,Mathlib/RingTheory/ReesAlgebra.lean,Mathlib/RingTheory/RingHom/FiniteType.lean,Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean,Mathlib/RingTheory/WittVector/TeichmullerSeries.lean,Mathlib/RingTheory/ZMod/UnitsCyclic.lean |
26 |
2 |
['github-actions', 'harahu'] |
nobody |
0-51330 14 hours ago |
0-50489 13 hours ago |
0-50267 13 hours |
| 35440 |
harahu author:harahu |
chore(Order): fix indentation in markdown lists |
Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
11/11 |
Mathlib/Order/BourbakiWitt.lean,Mathlib/Order/GameAdd.lean,Mathlib/Order/Interval/Finset/Gaps.lean,Mathlib/Order/PrimeSeparator.lean |
4 |
1 |
['github-actions'] |
nobody |
0-50875 14 hours ago |
0-50161 13 hours ago |
0-49939 13 hours |
| 35438 |
harahu author:harahu |
chore(Tactic): fix indentation in markdown lists |
Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations.
---
[](https://gitpod.io/from-referrer/)
|
|
14/13 |
Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basis.lean,Mathlib/Tactic/ComputeDegree.lean,Mathlib/Tactic/Linter/OldObtain.lean,Mathlib/Tactic/Simps/Basic.lean |
6 |
1 |
['github-actions'] |
nobody |
0-50171 13 hours ago |
0-46792 12 hours ago |
0-46570 12 hours |
| 35441 |
harahu author:harahu |
chore(NumberTheory): fix indentation in markdown lists |
Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
16/16 |
Mathlib/NumberTheory/ClassNumber/FunctionField.lean,Mathlib/NumberTheory/ModularForms/DedekindEta.lean,Mathlib/NumberTheory/NumberField/ClassNumber.lean,Mathlib/NumberTheory/NumberField/FractionalIdeal.lean,Mathlib/NumberTheory/NumberField/ProductFormula.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/NumberTheory/SiegelsLemma.lean |
7 |
1 |
['github-actions'] |
nobody |
0-48619 13 hours ago |
0-47940 13 hours ago |
0-47718 13 hours |
| 33736 |
fbarroero author:fbarroero |
feat(RingTheory/Polynomial/GaussNorm): The `gaussNorm` is an absolute value if `v` is a nonarchimedean absolute value |
We prove
```
Polynomial.gaussNorm_isAbsoluteValue {c : ℝ} {R : Type*} [Ring R] {v : AbsoluteValue R ℝ}
(hna : IsNonarchimedean v) (hc : 0 < c) : IsAbsoluteValue (gaussNorm v c)
```
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
189/7 |
Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/Ring/IsNonarchimedean.lean,Mathlib/RingTheory/Polynomial/GaussNorm.lean |
3 |
11 |
['copilot-pull-request-reviewer', 'erdOne', 'fbarroero', 'github-actions'] |
ADedecker assignee:ADedecker |
0-44625 12 hours ago |
0-42241 11 hours ago |
36-11827 36 days |
| 27100 |
staroperator author:staroperator |
feat(ModelTheory): Presburger definability and semilinear sets |
This PR formalizes the classical result that Presburger definable sets are the same as semilinear sets. As an application of this result, we show that the graph of multiplication is not Presburger definable.
---
- [x] depends on: #26896
- [x] depends on: #27081
- [x] depends on: #27087
- [x] depends on: #27414
- [x] depends on: #32123
---
[](https://gitpod.io/from-referrer/)
|
t-logic
large-import
maintainer-merge
|
278/0 |
Mathlib.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Definability.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Semilinear/Defs.lean,docs/references.bib |
4 |
10 |
['awainverse', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'staroperator'] |
fpvandoorn assignee:fpvandoorn |
0-43802 12 hours ago |
19-26701 19 days ago |
80-74832 80 days |
| 34049 |
smmercuri author:smmercuri |
refactor: use 1-field structure to define the `WithVal` type synonym |
Following the Zulip threads [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithLp.60/near/526234806) and [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/defeq.20abuse.20in.20.60WithAbs.60.2F.60WithVal.60/with/569663323) and using `WithLp` as a template, we refactor the `WithVal` type synonym as a 1-field structure. The main benefit being that it prevents defeq abuse.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
417/138 |
Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/NumberTheory/Padics/WithVal.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/FractionRing.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
8 |
24 |
['chrisflav', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'smmercuri'] |
chrisflav assignee:chrisflav |
0-42888 11 hours ago |
0-42045 11 hours ago |
25-33930 25 days |
| 35423 |
Rob23oba author:Rob23oba |
feat: add congruence lemmas for `Function.update` and `Pi.single` |
Adds `simp` congruence lemmas to `Function.update` and `Pi.single` that are specialized for the non-dependent case. See also [#mathlib4 > Simp fails to apply with `Function.update`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Simp.20fails.20to.20apply.20with.20.60Function.2Eupdate.60/with/573889929).
---
[](https://gitpod.io/from-referrer/)
|
|
29/6 |
Mathlib/Algebra/Notation/Pi/Basic.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/NumberTheory/ModularForms/QExpansion.lean,Mathlib/RepresentationTheory/Tannaka.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean |
5 |
8 |
['Rob23oba', 'eric-wieser', 'github-actions', 'loefflerd'] |
nobody |
0-40934 11 hours ago |
0-37631 10 hours ago |
0-82610 22 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 |
250/4 |
Mathlib.lean,Mathlib/Topology/Defs/Basic.lean,Mathlib/Util/DelabNonCanonical.lean,MathlibTest/Delab/TopologicalSpace.lean |
4 |
45 |
['eric-wieser', 'github-actions', 'jcommelin', 'kckennylau', 'robertmaxton42'] |
eric-wieser assignee:eric-wieser |
0-40438 11 hours ago |
31-64594 31 days ago |
85-63021 85 days |
| 35445 |
themathqueen author:themathqueen |
feat(Analysis): `{LinearMap, Matrix}.trace` as a positive linear map |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
large-import
|
43/1 |
Mathlib/Analysis/InnerProductSpace/Positive.lean,Mathlib/Analysis/Matrix/Order.lean |
2 |
1 |
['github-actions'] |
nobody |
0-40224 11 hours ago |
0-39554 10 hours ago |
0-39332 10 hours |
| 32260 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Oriented/Affine): oriented angle bisection and halving unoriented angles |
Add lemmas relating points bisecting an oriented angle to explicit expressions for one unoriented angle in relation to half another unoriented angle.
---
Feel free to golf.
---
- [x] depends on: #32259
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry
maintainer-merge
|
107/0 |
Mathlib/Geometry/Euclidean/Angle/Oriented/Affine.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Affine.lean |
2 |
7 |
['github-actions', 'jsm28', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier', 'wwylele'] |
JovanGerb assignee:JovanGerb |
0-40007 11 hours ago |
23-42345 23 days ago |
63-16342 63 days |
| 35430 |
urkud author:urkud |
feat: define `LinearMap.piMap` and `ContinuousLinearMap.piMap` |
As requested by @eric-wieser in #34491
---
[](https://gitpod.io/from-referrer/)
|
|
39/0 |
Mathlib/LinearAlgebra/Pi.lean,Mathlib/Topology/Algebra/Module/LinearMapPiProd.lean |
2 |
4 |
['github-actions', 'grunweg', 'urkud'] |
nobody |
0-39881 11 hours ago |
0-37666 10 hours ago |
0-71621 19 hours |
| 35447 |
themathqueen author:themathqueen |
feat(LinearAlgebra/UnitaryGroup): the transpose and conjugate of a unitary matrix as a unitary matrix |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
35/0 |
Mathlib/LinearAlgebra/UnitaryGroup.lean |
1 |
1 |
['github-actions'] |
nobody |
0-39434 10 hours ago |
0-38390 10 hours ago |
0-38168 10 hours |
| 33764 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Diam): drop `Finite α` from `ediam_le_two_mul_radius` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
22/5 |
Mathlib/Combinatorics/SimpleGraph/Diam.lean |
1 |
5 |
['IvanRenison', 'Rida-Hamadani', 'github-actions', 'robin-carlier', 'vlad902'] |
kmill assignee:kmill |
0-36720 10 hours ago |
33-13399 33 days ago |
40-26817 40 days |
| 33909 |
YaelDillies author:YaelDillies |
feat(SetTheory/Cardinal): more lemmas about `ENat` |
and deduplicate a few pairs.
From ProofBench
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
maintainer-merge
|
81/49 |
Mathlib/Data/Finite/Card.lean,Mathlib/Data/Set/Card.lean,Mathlib/GroupTheory/CoprodI.lean,Mathlib/LinearAlgebra/Matrix/Rank.lean,Mathlib/RingTheory/Length.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/ENat.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/SetTheory/Cardinal/NatCount.lean,Mathlib/SetTheory/Cardinal/ToNat.lean |
10 |
5 |
['github-actions', 'mathlib4-merge-conflict-bot', 'tb65536', 'vihdzp'] |
alreadydone assignee:alreadydone |
0-35535 9 hours ago |
0-33399 9 hours ago |
30-28280 30 days |
| 35451 |
samueloettl author:samueloettl |
feat(MeasureTheory.Function): compMeasurePreserving_iterate |
---
These are useful for dynamics/ergodic theory.
Possibly some of these could be simp lemmas but I'm not confident enough to say that they are so I didn't mark them as such.
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
32/0 |
Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean |
2 |
2 |
['github-actions'] |
nobody |
0-34894 9 hours ago |
0-33822 9 hours ago |
0-33600 9 hours |
| 35037 |
sgouezel author:sgouezel |
refactor: change definition of distance in normed group |
The current definition of the distance in a normed group is `dist x y = ||x / y||`. With this definition, the distance is right-invariant. This does not correspond to the convention in geometric group theory where the distance is given by `||x^{-1} * y||` to make sure it is left-invariant -- this corresponds to the fact that, in a Cayley graph, we put an edge between `x` and `xs` and declare these to be at distance one.
We refactor the definition to make sure it follows the standard convention. A pain point is that, in additive commutative groups, which is arguably the most important case, it becomes `||-x + y||` instead of `||x - y||` (which is propositionally the same, but not definitionally). To minimize the hassle, we keep all the lemmas that use `||x - y||`, with their current names, and add new versions in terms of `||-x + y||` when useful.
---
- [x] depends on: #35252
- [x] depends on: #35384
[](https://gitpod.io/from-referrer/)
|
t-analysis
maintainer-merge
|
705/444 |
Mathlib/Algebra/Order/Hom/Basic.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/CStarAlgebra/lpSpace.lean,Mathlib/Analysis/Calculus/BumpFunction/Normed.lean,Mathlib/Analysis/Calculus/FDeriv/Extend.lean,Mathlib/Analysis/Calculus/UniformLimitsDeriv.lean,Mathlib/Analysis/Complex/AbsMax.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Complex/Liouville.lean,Mathlib/Analysis/Complex/LocallyUniformLimit.lean,Mathlib/Analysis/Complex/Norm.lean,Mathlib/Analysis/Complex/OpenMapping.lean,Mathlib/Analysis/Complex/Schwarz.lean,Mathlib/Analysis/Complex/TaylorSeries.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Metric.lean,Mathlib/Analysis/Fourier/RiemannLebesgueLemma.lean,Mathlib/Analysis/InnerProductSpace/Subspace.lean,Mathlib/Analysis/LocallyConvex/BalancedCoreHull.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Algebra/UnitizationL1.lean,Mathlib/Analysis/Normed/Field/Basic.lean,Mathlib/Analysis/Normed/Field/Lemmas.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Group/Bounded.lean,Mathlib/Analysis/Normed/Group/Completion.lean,Mathlib/Analysis/Normed/Group/Constructions.lean,Mathlib/Analysis/Normed/Group/Continuity.lean,Mathlib/Analysis/Normed/Group/ControlledClosure.lean,Mathlib/Analysis/Normed/Group/Defs.lean,Mathlib/Analysis/Normed/Group/Int.lean,Mathlib/Analysis/Normed/Group/Pointwise.lean,Mathlib/Analysis/Normed/Group/Quotient.lean,Mathlib/Analysis/Normed/Group/Rat.lean,Mathlib/Analysis/Normed/Group/Real.lean,Mathlib/Analysis/Normed/Group/Ultra.lean,Mathlib/Analysis/Normed/Group/Uniform.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean,Mathlib/Analysis/Normed/Lp/ProdLp.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Normed/MulAction.lean,Mathlib/Analysis/Normed/Operator/Basic.lean,Mathlib/Analysis/Normed/Operator/Completeness.lean,Mathlib/Analysis/Normed/Order/Hom/Basic.lean,Mathlib/Analysis/Normed/Order/Hom/Ultra.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Analysis/Seminorm.lean,Mathlib/Analysis/SpecialFunctions/Elliptic/Weierstrass.lean,Mathlib/Analysis/SpecialFunctions/Exp.lean,Mathlib/InformationTheory/Hamming.lean,Mathlib/MeasureTheory/Function/ConvergenceInMeasure.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/DomAct/Basic.lean,Mathlib/MeasureTheory/Integral/CircleIntegral.lean,Mathlib/MeasureTheory/Integral/CircleTransform.lean,Mathlib/MeasureTheory/Integral/CurveIntegral/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/NormedSpace.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Basic.lean,Mathlib/NumberTheory/Padics/MahlerBasis.lean,Mathlib/NumberTheory/Padics/PadicIntegers.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean,Mathlib/Topology/Algebra/IsUniformGroup/Defs.lean,Mathlib/Topology/Algebra/Module/Multilinear/Bounded.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean,Mathlib/Topology/Algebra/Valued/ValuationTopology.lean,Mathlib/Topology/ContinuousMap/Bounded/Normed.lean,Mathlib/Topology/ContinuousMap/Compact.lean,Mathlib/Topology/MetricSpace/Kuratowski.lean,MathlibTest/hintAll.lean,scripts/nolints_prime_decls.txt |
75 |
11 |
['YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'sgouezel', 'themathqueen'] |
YaelDillies assignee:YaelDillies |
0-33789 9 hours ago |
0-47620 13 hours ago |
0-47412 13 hours |
| 35422 |
PrParadoxy author:PrParadoxy |
feat(Analysis/LocallyConvex/WeakDual): Weak Representation Theorem |
This PR uses the material in Topology/Algebra/Module/WeakBilin.lean from the unfinished PR #26345 by @mans0954.
Given a bilinear form `B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜`, every continuous functional on `E` endowed with the `σ(E, F; B)`-topology is of the form `x ↦ B(x, y)` for some `y : F`.
The result doesn't generally seem to be named, but Narici-Beckenstein's "Topological Vector Spaces" calls it the "weak representation theorem", a term we have used for the docstring.
---
Changes compared to #26345:
* We have moved the material to `Analysis/LocallyConvex/WeakDual`, as this is where the supporting result `mem_span_iff_continuous` ended up. (C.f. PR #27316)
* `dualEmbedding_surjective` is now much shorter and should no longer rely on defeqs.
Co-authored-by: Christopher Hoskin |
t-analysis
new-contributor
|
31/0 |
Mathlib/Analysis/LocallyConvex/WeakDual.lean |
1 |
3 |
['github-actions'] |
nobody |
0-32246 8 hours ago |
1-12788 1 day ago |
1-12566 1 day |
| 35446 |
kbuzzard author:kbuzzard |
perf: try lowering prio for A(0) instances, A a graded object |
If Lean is looking for `Mul X` where `X` is coincidentally of the form `A 0` then the first thing it tries is `GradedMonoid.GradeZero.mul` which, if wrong, can take a long time to fail. In this PR I steer typeclass inference away from "A(0)-instances" by lowering their priority. Benchmarking is 100% green indicating that this decision is not hurting us.
---
[](https://gitpod.io/from-referrer/)
See [#mathlib4 > Typeclass Synthesis Regression @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Typeclass.20Synthesis.20Regression/near/564417997)
I initiated a new discussion about this PR here [#mathlib4 > priority hacks @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/priority.20hacks/near/574353616) |
t-algebra label:t-algebra$ |
14/13 |
Mathlib/Algebra/DirectSum/Ring.lean,Mathlib/Algebra/GradedMonoid.lean |
2 |
9 |
['github-actions', 'kbuzzard', 'leanprover-radar'] |
nobody |
0-30573 8 hours ago |
0-31168 8 hours ago |
0-37734 10 hours |
| 34077 |
kbuzzard author:kbuzzard |
perf: increase priority of instSMulOfMul |
#31040 deprecated `Mul.toSMul` in place of the core instance `instSMulOfMul`, which is at a lowered priority of 910. This PR undeprecates it and makes it a higher priority instance (1100) which seems better for mathlib.
---
[](https://gitpod.io/from-referrer/)
This PR follows the philosophy seen in Mathlib's `Algebra.id : Algebra R R`, which also has raised priority. The idea is the same as `Algebra.id`: if you're looking for an instance of `Algebra R S` with R not equal to S then `Algebra.id` is extremely likely to fail quickly in practice, and if you're looking for an instance of `Algebra R R` then `Algebra.id` is unambiguously the right answer so should be tried ASAP. However the instance is defined so early in mathlib that in in practice it is tried last unless the priority is raised. The same philosophy holds here; if you're looking for an instance of `SMul X X` then you absolutely want to try `Mul.toSMul` first and if you're looking for an instance of `SMul X Y` with Y not X then `Mul.toSMul` will in practice be quick to fail.
This PR was inspired by #33908 (another "this should be quick to fail and if it fits then it's almost certainly what we want" prio change) which made an instance of `IsScalarTower R A A` high priority and gave a performance boost. This PR also gives a performance boost.
Note that the performance in #31040 looks very bad but the radar output is incorrect; there was a hardware change between the two runs. In fact #31040 produced no changes in profiling, as one might expect.
I don't know the correct way to change the priority of a core instance in mathlib, and I didn't know if just changing the priority naively would work repo-wide rather than just file-wide, which was why this PR introduces a second instance.
Zulip discussion at [#mathlib4 > priority hacks](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/priority.20hacks/with/574353616)
|
t-algebra label:t-algebra$ |
3/9 |
Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/Units.lean |
2 |
25 |
['alreadydone', 'github-actions', 'kbuzzard', 'leanprover-radar'] |
jcommelin assignee:jcommelin |
0-30165 8 hours ago |
0-30974 8 hours ago |
0-33355 9 hours |
| 35346 |
grunweg author:grunweg |
style(Archive): avoid using > or ≥ |
Prefer to use < or ≤ instead.
For consistently with mathlib style; extracted from #12933.
---
[](https://gitpod.io/from-referrer/)
|
IMO |
19/19 |
Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2019Q4.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/BallotProblem.lean |
9 |
1 |
['github-actions', 'harahu'] |
nobody |
0-28478 7 hours ago |
2-48633 2 days ago |
2-48411 2 days |
| 30640 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Acyclic): acyclic and bridge theorems + golfing |
---
- [x] depends on: #30542
- [x] depends on: #30570
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
75/79 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean |
2 |
10 |
['SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] |
b-mehta assignee:b-mehta |
0-26843 7 hours ago |
4-4323 4 days ago |
69-62051 69 days |
| 35456 |
Maldooor author:Maldooor |
feat: `DenseRange.eq_zero_of_inner_left` and generalize `Dense.eq_zero_of_inner_right` |
---
Generalizes
- `DenseRange.eq_zero_of_inner_left`
- `DenseRange.eq_zero_of_inner_right`
- `Dense.eq_of_inner_left`
- `Dense.eq_of_inner_right`
to work with arbitrary sets. Also adds
- `DenseRange.eq_zero_of_inner_left`
- `DenseRange.eq_zero_of_inner_right` |
t-analysis |
48/28 |
Mathlib/Analysis/InnerProductSpace/Continuous.lean,Mathlib/Analysis/InnerProductSpace/LinearPMap.lean,Mathlib/Analysis/InnerProductSpace/Projection/Submodule.lean |
3 |
1 |
['github-actions'] |
nobody |
0-24922 6 hours ago |
0-23837 6 hours ago |
0-23657 6 hours |
| 35452 |
joelriou author:joelriou |
feat(CategoryTheory/Sites): descent data, given as coalgebras |
Let `F : LocallyDiscrete Cᵒᵖ ⥤ᵖ Adj Cat` be a pseudofunctor to the bicategory of adjunctions in `Cat`. In particular,
for any morphism `g : X ⟶ Y` in `C`, we have an adjunction `(g^*, g_*)` between a pullback functor and a
pushforward functor.
In this PR, given a family of morphisms `f i : X i ⟶ S` indexed by a type `ι` in `C`, we introduce a category `F.DescentDataAsCoalgebra f` of descent data relative to the morphisms `f i`, where the objects are described as a family of objects `obj i` over `X i`, and the morphisms relating them are described as morphisms `obj i₁ ⟶ (f i₁)^* (f i₂)_* (obj i₂)`, similarly as Eilenberg-Moore coalgebras. Indeed, when the index type `ι` contains a unique element, we show that `F.DescentDataAsCoalgebra (fun (i : ι) ↦ f` identifies to the category of coalgebras for the comonad attached to the adjunction `(F.map f.op.toLoc).adj`.
Co-authored-by: Christian Merten
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
248/1 |
Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Adjunction/Cat.lean,Mathlib/CategoryTheory/Sites/Descent/DescentDataAsCoalgebra.lean |
3 |
1 |
['github-actions'] |
nobody |
0-24581 6 hours ago |
0-24581 6 hours ago |
0-29404 8 hours |
| 34937 |
tannerduve author:tannerduve |
feat(Computability): semilattice instance on Turing degrees |
This PR equips `TuringDegree` with a `SemilatticeSup` structure by introducing the Turing join, proving usual least-upper-bound properties, and lifting these to degrees (quotients). In support of this, it extends the existing `RecursiveIn` API with some lemmas used in the degree theory.
The main contribution is the `SemilatticeSup` instance on `TuringDegree`. We define the Turing join as follows
```
turingJoin (f g) : ℕ → ℕ -- notation: f ⊕ g
```
and prove it is a least upper bound:
* `left_le_join`, `right_le_join`
* `join_le`
* monotonicity and congruence lemmas (`join_mono`, `join_congr`)
We lift this to degrees in `TuringDegree.sup`, `TuringDegree.le_sup_left`, `TuringDegree.le_sup_right`, and `TuringDegree.sup_le`
```
instance : SemilatticeSup TuringDegree
```
**New additions to `RecursiveIn.lean`:**
- `liftPrim`, `liftPrimrec`, `RecursiveIn'`, `ComputableIn`, `ComputableIn₂`: Encodes partial/total functions between `Primcodable` types as `ℕ →. ℕ`, analogous to `Partrec`/`Computable`.
- `of_eq`, `of_eq_tot`, `of_primrec`, `some`, `none`, `mono`, `subst`: Standard closure properties for `RecursiveIn`.
- `cond_const`, `cond_core_rfind`, `cond`, `ComputableIn.cond`: Shows `RecursiveIn` is closed under conditionals when the guard is absolutely computable
- `Nat.Partrec.recursiveIn`, `Computable.computableIn`: Every partrec/computable function is recursive in any oracle set.
Small addition to `Partrec`
we add to `Mathlib.Computability.Partrec` a small helper def (`Partrec.kronecker` and related `rfind` lemmas) representing the function that returns 1 if its two (unpaired) arguments are equal, and 0 otherwise, which is used in the proof of `cond`
## TODO
Some current `RecursiveIn` proofs such as `cond_core_rfind` still work directly with the inductive constructors and are thus very long. A follow up could add a combinator-style closure library by essentially relativizing all the results and lemmas in `Partrec`, and proofs could be golfed heavily as they are in `Partrec`
## Note: AI Usage
[Aleph prover](https://logicalintelligence.com/aleph-coding-ai/) was allowed to prove an earlier version of `cond_core_rfind`, which included stating and proving the lemma `cond_const` but the proofs have since been iterated on manually
Cursor was allowed to run git commands and edit docstrings/headers, and was used in setting up the module structure of the files |
t-computability
new-contributor
large-import
|
644/63 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
14 |
['eric-wieser', 'github-actions', 'plp127', 'tannerduve', 'vihdzp'] |
nobody |
0-24433 6 hours ago |
0-23766 6 hours ago |
9-69185 9 days |
| 34693 |
SnirBroshi author:SnirBroshi |
feat(Data/Finite/Card): `Nat.card`/`ENat.card` is strictly monotonic on finite sets |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
27/4 |
Mathlib/Data/Finite/Card.lean |
1 |
3 |
['SnirBroshi', 'github-actions', 'ocfnash'] |
TwoFX and ocfnash assignee:TwoFX assignee:ocfnash |
0-23131 6 hours ago |
0-23131 6 hours ago |
16-11142 16 days |
| 32942 |
kim-em author:kim-em |
feat(CategoryTheory/Monoidal/Rigid): tensor product of exact pairings |
This PR adds the tensor product construction for exact pairings in rigid monoidal categories:
- `ExactPairing.tensor`: Given exact pairings `(X₁, Y₁)` and `(X₂, Y₂)`, we get an exact pairing `(X₁ ⊗ X₂, Y₂ ⊗ Y₁)`. Note the reversed order in the second factor - this is essential for the monoidal structure of dual functors.
- `HasRightDual.tensor` and `HasLeftDual.tensor`: If `X` and `Y` have duals, so does `X ⊗ Y`
- `rightDual_tensor` and `leftDual_tensor` simp lemmas
🤖 Prepared with Claude Code |
t-category-theory |
103/0 |
Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean |
1 |
2 |
['github-actions', 'kim-em'] |
nobody |
0-22721 6 hours ago |
0-53639 14 hours ago |
0-53417 14 hours |
| 35326 |
jano-wol author:jano-wol |
feat: root space decomposition of ideals of Lie algebras |
Root space decomposition of ideals of Lie algebras
---
PR proves that in an IsKilling Lie algebra, every Lie ideal decomposes as its intersection with the Cartan subalgebra plus a sum of root spaces. This result is needed for two larger proofs:
1. Showing the order isomorphism between Lie ideals and invariant root submodules.
2. Showing that semisimple Lie algebras with irreducible root system are simple.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
60/0 |
Mathlib/Algebra/Lie/Weights/Basic.lean,Mathlib/Algebra/Lie/Weights/Cartan.lean,Mathlib/Algebra/Lie/Weights/Killing.lean,Mathlib/LinearAlgebra/FiniteDimensional/Basic.lean |
4 |
6 |
['github-actions', 'jano-wol', 'ocfnash'] |
ocfnash assignee:ocfnash |
0-22248 6 hours ago |
0-22248 6 hours ago |
1-84285 1 day |
| 34068 |
leomayer1 author:leomayer1 |
feat: give functor categories an instance of `HasBinaryBiproducts` |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
maintainer-merge
|
74/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/FunctorCategory/BinaryBiproducts.lean |
2 |
12 |
['dagurtomas', 'github-actions', 'leomayer1'] |
dagurtomas assignee:dagurtomas |
0-21621 6 hours ago |
0-20764 5 hours ago |
1-14079 1 day |
| 35400 |
vlad902 author:vlad902 |
feat(SimpleGraph): `IsEdgeReachable` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
18/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean |
1 |
7 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
0-20500 5 hours ago |
0-19816 5 hours ago |
1-49190 1 day |
| 34777 |
sqrt-of-2 author:sqrt-of-2 |
feat(Combinatorics/SetFamily/Intersecting): L-intersecting families |
Define L-intersecting families and establish their basic properties.
A family 𝒜 of finsets is L-intersecting if all pairwise intersection sizes of members of 𝒜 belong to L ⊆ ℕ.
From LeanCamCombi.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
81/2 |
Mathlib/Combinatorics/SetFamily/Intersecting.lean |
1 |
9 |
['YaelDillies', 'b-mehta', 'github-actions'] |
b-mehta assignee:b-mehta |
0-19448 5 hours ago |
0-18482 5 hours ago |
14-34235 14 days |
| 29996 |
vihdzp author:vihdzp |
chore(Order/Concept): `IsIntent` and `IsExtent` |
We define predicates for a set to be an intent/extent, and use them to define alternate constructors for a concept. Using these, we golf the complete lattice instances.
---
- [x] depends on: #30484
[](https://gitpod.io/from-referrer/)
|
t-order |
154/113 |
Mathlib/Order/Concept.lean |
1 |
41 |
['Vierkantor', 'YaelDillies', 'github-actions', 'linesthatinterlace', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
0-17275 4 hours ago |
1-16945 1 day ago |
18-50546 18 days |
| 35458 |
harahu author:harahu |
chore(Algebra): fix indentation in markdown lists |
Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
51/51 |
Mathlib/Algebra/BigOperators/Group/Finset/Gaps.lean,Mathlib/Algebra/Homology/BifunctorShift.lean,Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/TStructure.lean,Mathlib/Algebra/Homology/Embedding/Basic.lean,Mathlib/Algebra/Homology/Linear.lean,Mathlib/Algebra/Homology/ShortComplex/Ab.lean,Mathlib/Algebra/Lie/Derivation/AdjointAction.lean,Mathlib/Algebra/Lie/Derivation/Basic.lean,Mathlib/Algebra/Lie/Derivation/Killing.lean,Mathlib/Algebra/Module/CharacterModule.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/Module/Submodule/Union.lean,Mathlib/Algebra/Module/ZLattice/Covolume.lean,Mathlib/Algebra/MvPolynomial/CommRing.lean,Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/PDeriv.lean,Mathlib/Algebra/MvPolynomial/Rename.lean,Mathlib/Algebra/MvPolynomial/Variables.lean,Mathlib/Algebra/Ring/Semireal/Defs.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean |
22 |
1 |
['github-actions'] |
nobody |
0-16797 4 hours ago |
0-16101 4 hours ago |
0-15879 4 hours |
| 33840 |
vihdzp author:vihdzp |
feat(SetTheory/Ordinal/CantorNormalForm): Evaluate a Finsupp as a CNF |
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
191/18 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/CantorNormalForm.lean |
2 |
5 |
['github-actions', 'jcommelin', 'plp127', 'vihdzp'] |
alreadydone assignee:alreadydone |
0-16431 4 hours ago |
0-14759 4 hours ago |
36-72068 36 days |
| 33416 |
vihdzp author:vihdzp |
chore(Order/GameAdd): add `elab_as_elim` attributes |
This PR does three things:
- Rename `GameAdd.fix` to the more illustrative `GameAdd.recursion`
- Add `elab_as_elim` attributes on `GameAdd.recursion`
- Deprecate the duplicate `GameAdd.induction`
---
[](https://gitpod.io/from-referrer/)
|
t-order |
24/14 |
Mathlib/Order/GameAdd.lean,Mathlib/SetTheory/PGame/Order.lean,Mathlib/SetTheory/ZFC/Ordinal.lean |
3 |
5 |
['github-actions', 'grunweg', 'ocfnash', 'vihdzp'] |
alreadydone assignee:alreadydone |
0-16102 4 hours ago |
0-15331 4 hours ago |
48-63686 48 days |
| 35460 |
harahu author:harahu |
chore(CategoryTheory): fix indentation in markdown lists |
Make sure to also indent subsequent lines of an item: this is required by the markdown specification (though not doc-gen), it expresses intent more clearly, and makes it easier to catch accidental misindentations.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
94/93 |
Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Basic.lean,Mathlib/CategoryTheory/Abelian/Projective/Ext.lean,Mathlib/CategoryTheory/Bicategory/Functor/Cat/ObjectProperty.lean,Mathlib/CategoryTheory/Bicategory/Functor/StrictlyUnitary.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean,Mathlib/CategoryTheory/Conj.lean,Mathlib/CategoryTheory/Distributive/Monoidal.lean,Mathlib/CategoryTheory/FiberedCategory/Fibered.lean,Mathlib/CategoryTheory/Functor/Derived/Adjunction.lean,Mathlib/CategoryTheory/Functor/Derived/RightDerived.lean,Mathlib/CategoryTheory/Functor/KanExtension/DenseAt.lean,Mathlib/CategoryTheory/Grothendieck.lean,Mathlib/CategoryTheory/GuitartExact/Basic.lean,Mathlib/CategoryTheory/HomCongr.lean,Mathlib/CategoryTheory/Idempotents/Basic.lean,Mathlib/CategoryTheory/Idempotents/Karoubi.lean,Mathlib/CategoryTheory/Limits/Presheaf.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Equifibered.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Kernels.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ChosenPullbacksAlong.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution/DayFunctor.lean,Mathlib/CategoryTheory/MorphismProperty/Representable.lean,Mathlib/CategoryTheory/ObjectProperty/ColimitsOfShape.lean,Mathlib/CategoryTheory/ObjectProperty/LimitsOfShape.lean,Mathlib/CategoryTheory/Presentable/OrthogonalReflection.lean,Mathlib/CategoryTheory/Shift/Adjunction.lean,Mathlib/CategoryTheory/Shift/CommShiftTwo.lean,Mathlib/CategoryTheory/Sites/CoverPreserving.lean,Mathlib/CategoryTheory/Sites/Descent/DescentData.lean,Mathlib/CategoryTheory/Sites/SheafHom.lean,Mathlib/CategoryTheory/Subobject/ArtinianObject.lean,Mathlib/CategoryTheory/Triangulated/SpectralObject.lean |
32 |
1 |
['github-actions'] |
nobody |
0-15702 4 hours ago |
0-14543 3 hours ago |
0-14321 3 hours |
| 35461 |
vihdzp author:vihdzp |
chore(Order/Types/Arithmetic): golf addition/multiplication instances |
We also make the universe heterogeneous instances lower priority, so Lean can more easily elaborate universes.
---
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
8/12 |
Mathlib/Order/Types/Arithmetic.lean |
1 |
2 |
['YaelDillies', 'github-actions'] |
nobody |
0-15421 4 hours ago |
0-14756 4 hours ago |
0-14534 4 hours |
| 35455 |
chrisflav author:chrisflav |
feat(RingTheory): `Algebra.TensorProduct.map f g` is flat if `f` and `g` are |
From Proetale.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
76/0 |
Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/RingHom/Flat.lean |
2 |
2 |
['github-actions', 'joelriou'] |
nobody |
0-15407 4 hours ago |
0-14655 4 hours ago |
0-23863 6 hours |
| 34881 |
CBirkbeck author:CBirkbeck |
feat(ModularForm/NumberTheory/Delta): Define the delta function |
We define the Delta function on the upper half plane and show how it transforms under the slash operator, this is in preparation to proving it is a modular form.
---
[](https://gitpod.io/from-referrer/)
|
|
214/0 |
Mathlib.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/NumberTheory/ModularForms/Delta.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean |
4 |
12 |
['github-actions', 'loefflerd'] |
nobody |
0-14488 4 hours ago |
0-24363 6 hours ago |
0-33419 9 hours |
| 34091 |
staroperator author:staroperator |
feat(SetTheory/Cardinal): generalize infinite pigeonhole principle |
1. generalize `infinite_pigeonhole_card_lt` and `exists_infinite_fiber` only to require the domain `β` to be infinite instead of codomain `α`. Also make arguments of `Infinite` implicit.
2. add `exists_uncountable_fiber` for uncountable sets.
3. fix a TODO in `le_range_of_union_finset_eq_top` (and also golf).
PS: thanks ChatGPT for providing the informal proofs.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
41/20 |
Mathlib/LinearAlgebra/Basis/Cardinality.lean,Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean,Mathlib/SetTheory/Cardinal/Pigeonhole.lean |
3 |
10 |
['github-actions', 'ocfnash', 'staroperator'] |
ocfnash and vihdzp assignee:ocfnash assignee:vihdzp |
0-14328 3 hours ago |
0-14328 3 hours ago |
30-55361 30 days |
| 35399 |
kebekus author:kebekus |
feat: Poisson Integral Formula for ℂ-differentiable functions |
Establish two versions of the Poisson Integral Formula for ℂ-differentiable functions on arbitrary disks in the complex plane, formulated with the real part of the Herglotz–Riesz kernel of integration and with the Poisson kernel, respectively.
This material is used in [Project VD](https://github.com/kebekus/ProjectVD), formalizing Value Distribution Theory for meromorphic functions on the complex plane.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
302/0 |
Mathlib.lean,Mathlib/Analysis/Complex/Poisson.lean |
2 |
12 |
['github-actions', 'j-loreaux'] |
nobody |
0-12936 3 hours ago |
1-50218 1 day ago |
1-49996 1 day |
| 35454 |
chrisflav author:chrisflav |
chore(CategoryTheory/Limits): dualize (parts of) `pullback.diagonal` |
We add the definition `pushout.codiagonal`, some API and prove one square is a pushout square.
---
- [x] depends on: #35453
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
93/0 |
Mathlib/CategoryTheory/Limits/Shapes/Diagonal.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Defs.lean |
2 |
3 |
['github-actions', 'joelriou', 'mathlib-dependent-issues'] |
nobody |
0-11687 3 hours ago |
0-10536 2 hours ago |
0-12924 3 hours |
| 35450 |
tb65536 author:tb65536 |
feat(Topology/Connected/TotallyDisconnected): a preconnected totally disconnected space is subsingleton |
This PR proves that a preconnected totally disconnected space must be subsingleton.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
4/0 |
Mathlib/Topology/Connected/TotallyDisconnected.lean |
1 |
1 |
['github-actions'] |
nobody |
0-11545 3 hours ago |
0-11545 3 hours ago |
0-11323 3 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 |
5 |
['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] |
pechersky assignee:pechersky |
0-11414 3 hours ago |
3-76160 3 days ago |
13-16410 13 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.
---
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 |
311/2 |
Mathlib.lean,Mathlib/Analysis/Calculus/FDeriv/Partial.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitFunction/Bivariate.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean |
5 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
nobody |
0-10839 3 hours ago |
0-18196 4 hours ago |
14-76419 14 days |
| 34137 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Remove `injectiveSeminorm` |
Currently, `injectiveSeminorm` is extensionally equal to `projectiveSeminorm`. Both implement what is commonly called the "projective tensor norm".
# Background
(C.f. [[Diestel et al.]](https://www.ams.org/bookstore/pspdf/mbk-52-prev.pdf)). On the algebraic tensor product of two Banach spaces X, Y, there are two distinguished norms. First the projective norm, or "largest reasonable crossnorm". Two equivalent expressions for it are:
(L1) `‖u‖_∧ = sup { sum_i ‖x_i‖ ‖y_i‖ | sum_i x_i ⊗ y_i = u }`,
(L2) `‖u‖_∧ = norm of the linear map that sends b : B(X,Y; 𝕂) to (lift b) u`,
where `B(X,Y; Z)` is the set of bounded bilinear maps into a normed space `Z`.
Second, there is the injective norm, or "smallest reasonable crossnorm":
(S) `‖u‖_∨` = norm of the bilinear map that sends `f : X', g : Y'` to `(f⊗g) u`.
# Mathlib
The formalization treats tensor products of seminormed spaces over normed fields. In this context, `projectiveSeminorm` implements (L1). But `injectiveSeminorm u` doesn't implement (S), but the following variant of (L2):
(L2') `sup_Z { norm of map sending b : B(X,Y; Z) to (lift b) u }.`
In fact, `injectiveSeminorm = projectiveSeminorm `. The upper bound is proven in Mathlib. Equality is attained (somewhat tautologically) by choosing `Z` to be `X ⊗ Y` endowed with the projective seminorm.
`projectiveSeminorm` is defined first; `injectiveSeminorm` builds on it. Then the theory of an isometric version of `PiTensorProduct.lift` is based on `injectiveSeminorm`.
# Proposed change
This PR deprecates `injectiveSeminorm` and ports all applications to (L1). This doesn't actually require too much work, leads to the same mathematical theory, and significantly reduces complexity (and potential for confusion!).
There is a [companion PR](https://github.com/leanprover-community/mathlib4/pull/33969) which formalizes the equality of the current definitions and has a WIP / RFC implementation of the injective seminorm as commonly understood.
Deprecations:
- injectiveSeminorm
- injectiveSeminorm_apply
- norm_eval_le_injectiveSeminorm
- injectiveSeminorm_le_projectiveSeminorm
- injectiveSeminorm_tprod_le
- Mathlib.Analysis.Normed.Module.PiTensorProduct.InjectiveSeminorm
---
Co-authored-by: Davood H. H. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
167/207 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean |
3 |
18 |
['Ruben-VandeVelde', 'dupuisf', 'github-actions', 'goliath-klein', 'robin-carlier', 'tb65536'] |
dupuisf assignee:dupuisf |
0-10246 2 hours ago |
0-30024 8 hours ago |
25-83816 25 days |
| 35464 |
tb65536 author:tb65536 |
feat(Analysis/InnerProductSpace/Rayleigh): the norm of a symmetric operator is the supremum of the Rayleigh quotients |
This PR proves that the norm of a symmetric operator is the supremum of the Rayleigh quotients.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
25/2 |
Mathlib/Analysis/InnerProductSpace/Rayleigh.lean |
1 |
1 |
['github-actions'] |
nobody |
0-10018 2 hours ago |
0-10018 2 hours ago |
0-9796 2 hours |
| 35118 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): introduce truncFinset to unify truncations |
Resolves the TODO in MvPowerSeries/Trunc.lean by implementing a general truncation map `truncFinset`, which paves the way for unifying strict and non-strict truncations and defining other truncations
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
large-import
|
132/144 |
Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
2 |
23 |
['BryceT233', 'chrisflav', 'github-actions', 'wwylele'] |
chrisflav assignee:chrisflav |
0-9760 2 hours ago |
0-9760 2 hours ago |
5-45982 5 days |
| 35196 |
tb65536 author:tb65536 |
feat(Analysis/Normed/Operator/Compact): criteria for compactness of the identity operator |
This PR adds several criteria for compactness of the identity operator.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
19/0 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Analysis/Normed/Operator/Compact.lean |
2 |
4 |
['b-mehta', 'github-actions', 'j-loreaux', 'tb65536'] |
j-loreaux assignee:j-loreaux |
0-9206 2 hours ago |
0-9206 2 hours ago |
5-2615 5 days |
| 35466 |
vihdzp author:vihdzp |
chore: fix inexistent `NE.ne` namespace |
The `≠` relation is simply called `Ne`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-order
easy
label:t-algebra$ |
5/2 |
Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean |
1 |
1 |
['github-actions'] |
nobody |
0-9067 2 hours ago |
0-6442 1 hour ago |
0-6220 1 hour |
| 35465 |
MixedMatched author:MixedMatched |
feat(Data/Multiset/Powerset): show injectivity and monotonicity of powerset |
Add Injective, Monotone, and StrictMono proofs for `Multiset.powerset`. Also, add a theorem showing that the sizes of two powersets are bidirectionally related to the sizes of the underlying Multisets (`le_powerset_iff_le`), a couple of other small `Multiset.powerset` lemmas, and theorems for append and map for `List.Subperm`.
Also, thanks to Ruben Van de Velde for looking this over on the Zulip!
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
62/0 |
Mathlib/Data/List/Perm/Subperm.lean,Mathlib/Data/List/Sublists.lean,Mathlib/Data/Multiset/Powerset.lean |
3 |
2 |
['github-actions'] |
nobody |
0-7867 2 hours ago |
0-6504 1 hour ago |
0-6282 1 hour |
| 28546 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… |
This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`.
Summary of additions:
- **Full shift and shift action**
- `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type).
- Right shift `shift g x` with convention `(shift g x) h = x (h * g)`.
- **Cylinders and topology**
- `cylinder U x : Set (G → A)` for finite `U : Finset G`.
- Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed.
- Equality with dependent products:
`cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API.
- **Patterns, occurrences, and subshifts**
- `Pattern A G` with finite `support : Finset G` and `data : support → A`.
- `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law.
- `forbids F` and `Subshift A G` (closed, shift-invariant subsets).
- `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness.
- **Language on finite shapes and counting**
- `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`.
- **Entropy along a shape sequence**
- `limsupAtTop` (as an `sInf` of eventual upper bounds).
- `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)`
for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`).
- **Specializations**
- `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`.
- `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`.
Mathematical remarks:
- The API is **shape-parametric**: entropy is defined along user-provided finite shapes.
- On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss).
This PR does not assume amenability; the family of shapes is an explicit input.
Motivation:
Provide a clean, reusable base for symbolic dynamics on groups in mathlib.
Future work:
- Add a Følner predicate and prove shape-independence / limit existence on amenable groups.
- Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors).
- Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch).
|
t-dynamics
new-contributor
|
746/0 |
Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean |
3 |
180 |
['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] |
sgouezel assignee:sgouezel |
0-6883 1 hour ago |
0-6132 1 hour ago |
95-37766 95 days |
| 33364 |
BoltonBailey author:BoltonBailey |
feat(Analysis/Convex/SimplicialComplex): add AbstractSimplicialComplex + constructions |
This adds the concept of [abstract simplicial complex](https://en.wikipedia.org/wiki/Abstract_simplicial_complex) (and refactors SimplicialComplex in terms of it).
It also adds constructions that makes it easy to define a simplicial complex for any index family of points which is downward closed and which is affinely independent. I also include a construction of (abstract and geometric) simplicial complexes associated with a SimpleGraph, where vertices become 0-faces and edges become 1-faces, which could be useful later in defining the topological notion of a graph embedding.
Co-authored-by: Claude Opus 4.5
---
- [x] depends on: #35115
[](https://gitpod.io/from-referrer/)
|
t-analysis
t-algebraic-topology
|
450/15 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialComplex/Basic.lean,Mathlib/Analysis/Convex/SimplicialComplex/AffineIndependentUnion.lean,Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/LinearAlgebra/AffineSpace/Independent.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
7 |
25 |
['BoltonBailey', 'denisgorod', 'eric-wieser', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'peabrainiac'] |
j-loreaux assignee:j-loreaux |
0-5389 1 hour ago |
4-280 4 days ago |
4-80718 4 days |
| 33792 |
xroblot author:xroblot |
feat(GroupTheory/FiniteAbelian): construct bijection between subgroups and subgroups of the dual |
---
- [x] depends on: #33403
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
101/3 |
Mathlib/GroupTheory/FiniteAbelian/Duality.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
tb65536 assignee:tb65536 |
0-5388 1 hour ago |
3-43271 3 days ago |
3-55299 3 days |
| 35086 |
kebekus author:kebekus |
feat: add congruence lemmas for integrability |
Add simple congruence lemmas for interval- and circle integrability. Perform very minor golfing.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
maintainer-merge
|
93/34 |
Mathlib/MeasureTheory/Integral/CircleAverage.lean,Mathlib/MeasureTheory/Integral/CircleIntegral.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean |
4 |
26 |
['YaelDillies', 'github-actions', 'kebekus'] |
EtienneC30 assignee:EtienneC30 |
0-5387 1 hour ago |
3-41012 3 days ago |
6-36723 6 days |
| 35198 |
j-loreaux author:j-loreaux |
feat: generalize Hölder's inequality for sums to `Real.HolderTriple` |
Currently the API exists only for `Real.HolderConjugate`. This generalizes it in anticipation of #35197, which implements the Hölder framework for `lp` spaces.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
160/39 |
Mathlib/Analysis/MeanInequalities.lean,Mathlib/Data/Real/ConjExponents.lean |
2 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
0-5385 1 hour ago |
5-21687 5 days ago |
5-21465 5 days |
| 35272 |
jvanwinden author:jvanwinden |
feat(Topology/Instances/EReal): limsup of multiplication by a constant |
add an analogue of `limsup_const_mul_of_ne_top` which applies to `EReal` instead of `ENNReal`
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
16/0 |
Mathlib/Topology/Instances/EReal/Lemmas.lean |
1 |
4 |
['github-actions', 'jvanwinden', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
0-5384 1 hour ago |
3-57827 3 days ago |
4-21283 4 days |
| 35279 |
BoltonBailey author:BoltonBailey |
chore(Data/Nat/Choose): add grind annotations |
While doing some work for Numina, I noticed that there was a point at which I wanted to have `Nat.choose_eq_zero_of_lt` applied as a `grind <=` lemma. This PR adds a grind annotation here, as well as a few other grind annotations to the file, and tries to golf using these where appropriate.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
10/10 |
Mathlib/Data/Nat/Choose/Basic.lean |
1 |
4 |
['BoltonBailey', 'github-actions', 'leanprover-radar'] |
pechersky assignee:pechersky |
0-5383 1 hour ago |
4-2066 4 days ago |
4-1844 4 days |
| 35280 |
khwilson author:khwilson |
feat(Mathlib/Analysis/Polynomial/MahlerMeasure): Mahler Measure estimate in terms of supNorm |
The Mahler measure of a polynomial is bounded above by `√(p.natDegree + 1) * p.supNorm`. This is a tighter estimate than `(p.natDegree + 1) * p.supNorm`, which is implied by `mahlerMeasure_le_sum_norm_coeff`.
AI Usage: Claude Code (Opus 4.6) provided first drafts for several sorries in the main calc block. Gemini Pro was used for one-off looks ups of lemma names like `ae_restrict_iff'`. The final code was edited by me.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
80/0 |
Mathlib/Analysis/Polynomial/MahlerMeasure.lean |
1 |
2 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
0-5382 1 hour ago |
4-7636 4 days ago |
4-10380 4 days |
| 35283 |
Multramate author:Multramate |
feat(Algebra/Polynomial): add Polynomial.algHomEquiv and its bivariate version |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
easy
label:t-algebra$ |
26/0 |
Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Bivariate.lean |
2 |
2 |
['copilot-pull-request-reviewer', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
0-5381 1 hour ago |
3-32167 3 days ago |
3-31945 3 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'] |
Vierkantor assignee:Vierkantor |
0-5379 1 hour ago |
3-79395 3 days ago |
3-79173 3 days |
| 35293 |
euprunin author:euprunin |
chore: golf proofs |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <20 ms considered measurement noise):
* `Equiv.preimage_piEquivPiSubtypeProd_symm_pi`: unchanged 🎉
* `Function.minimalPeriod_eq_one_iff_isFixedPt`: unchanged 🎉
* `Functor.mapEquiv_refl`: unchanged 🎉
* `Mathlib.Tactic.FieldSimp.NF.cons_ne_zero`: unchanged 🎉
* `Part.fix_le`: unchanged 🎉
* `PartialEquiv.EqOnSource.restr`: unchanged 🎉
* `PartialEquiv.EqOnSource.source_inter_preimage_eq`: unchanged 🎉
* `Relation.acc_of_singleton`: unchanged 🎉
* `Turing.PartrecToTM2.codeSupp_supports`: unchanged 🎉
* `Turing.PartrecToTM2.contSupp_supports`: unchanged 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
3/13 |
Mathlib/Computability/TMToPartrec.lean,Mathlib/Control/LawfulFix.lean,Mathlib/Dynamics/PeriodicPts/Defs.lean,Mathlib/Logic/Equiv/Functor.lean,Mathlib/Logic/Equiv/PartialEquiv.lean,Mathlib/Logic/Equiv/Set.lean,Mathlib/Logic/Hydra.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean |
8 |
3 |
['euprunin', 'github-actions', 'leanprover-radar'] |
j-loreaux assignee:j-loreaux |
0-5378 1 hour ago |
3-51516 3 days ago |
3-51294 3 days |
| 35301 |
RemyDegenne author:RemyDegenne |
feat: `klDiv` and scalar multiplication |
The Kullback-Leibler divergence in Mathlib is defined for finite measures, not just probability measures. This PR adds lemmas that show how `klDiv` changes when we multiply one or both of the measures by a scalar.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
201/1 |
Mathlib/InformationTheory/KullbackLeibler/Basic.lean,Mathlib/MeasureTheory/Measure/AbsolutelyContinuous.lean,Mathlib/MeasureTheory/Measure/Decomposition/Lebesgue.lean,Mathlib/MeasureTheory/Measure/LogLikelihoodRatio.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean |
5 |
1 |
['github-actions'] |
EtienneC30 assignee:EtienneC30 |
0-5377 1 hour ago |
3-42326 3 days ago |
3-42104 3 days |
| 35309 |
Ruben-VandeVelde author:Ruben-VandeVelde |
chore: rename nat_abs_sum_le |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
4/1 |
Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean |
1 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
0-5374 1 hour ago |
3-35555 3 days ago |
3-35333 3 days |
| 35315 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 3/5) |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
51/0 |
Mathlib/Analysis/Complex/CauchyIntegral.lean |
1 |
4 |
['SnirBroshi', 'github-actions'] |
j-loreaux assignee:j-loreaux |
0-5371 1 hour ago |
3-17402 3 days ago |
3-29760 3 days |
| 35317 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 5/5) |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
78/0 |
Mathlib.lean,Mathlib/NumberTheory/Transcendental/AnalyticPart2.lean |
2 |
2 |
['github-actions'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-5370 1 hour ago |
3-27249 3 days ago |
3-27027 3 days |
| 35304 |
euprunin author:euprunin |
chore: golf proofs |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <20 ms considered measurement noise):
* `AkraBazziRecurrence.smoothingFn_mul_asympBound_isBigO_T`: 3899 ms before, 3809 ms after 🎉
* `MulAction.is_one_preprimitive_iff`: unchanged 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
2/19 |
Mathlib/Computability/AkraBazzi/AkraBazzi.lean,Mathlib/GroupTheory/GroupAction/MultiplePrimitivity.lean |
2 |
3 |
['euprunin', 'github-actions', 'leanprover-radar'] |
nobody |
0-5016 1 hour ago |
3-42347 3 days ago |
3-42125 3 days |
| 35358 |
wwylele author:wwylele |
feat(Geometry/Euclidean): Simplex.closedInterior is closed |
Intermediate lemma towards #34826. The immediate follow up is that the closed interior is measurable, but I'll leave it till the Measure folder appears under Geometry/Euclidean.
---
~~Not sure if this is the best place to put `isClosed_closedInterior`. It is a bit more general than other lemmas in the file (it needs minimal topological space assumptions instead of inner product space), but it still requires `ℝ` so I don't think it should be in the Topology folder.~~ See the updated location
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry
maintainer-merge
|
104/24 |
Mathlib/Analysis/Convex/Combination.lean,Mathlib/Analysis/Convex/StdSimplex.lean,Mathlib/Analysis/Convex/Topology.lean,Mathlib/Analysis/Convex/TotallyBounded.lean |
4 |
12 |
['copilot-pull-request-reviewer', 'github-actions', 'jsm28', 'wwylele'] |
nobody |
0-3838 1 hour ago |
0-84957 23 hours ago |
2-9767 2 days |
| 35467 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics): add Schreier graphs, Cayley graphs, and Cayley sum graphs |
## Summary
- Defines Schreier graphs and Cayley graphs as quivers with labeled edges, porting the approach from Lean 3 PR leanprover-community/mathlib3#18693 by @bottine, @YaelDillies, and @antoinelab01.
- Proves the labelling prefunctor is a covering for group actions, establishes reachability characterization, connectivity, and vertex-transitivity (right multiplication is a covering isomorphism).
- Provides concrete examples: cyclic groups ℤ/nℤ, symmetric groups S_n, and integers ℤ.
- Defines Cayley sum graphs as `SimpleGraph` where `Adj u v ↔ u ≠ v ∧ u + v ∈ s`, with translation properties and connection to circulant graphs.
## References
- Lean 3 PR: leanprover-community/mathlib3#18693 (Rémi Bottinelli, Yaël Dillies, Antoine Labelle)
- Lean 3 branch: https://github.com/leanprover-community/mathlib3/tree/geometric-group-theory
## New files
| File | Lines | Content |
|------|-------|---------|
| `Mathlib/Combinatorics/Quiver/Schreier.lean` | 770 | Core theory |
| `Mathlib/Combinatorics/Quiver/SchreierExamples.lean` | 183 | Examples |
| `Mathlib/Combinatorics/SimpleGraph/CayleySumGraph.lean` | 159 | Cayley sum graphs |
## Test plan
- [x] All three files build clean on latest master
- [x] No `sorry`
- [x] All public declarations have docstrings
- [x] `lake exe mk_all --check` passes
- [x] `lake exe runLinter` passes
## AI disclosure
This PR was developed with assistance from [Claude Code](https://claude.com/claude-code) (Anthropic's CLI tool). Claude Code was used for: writing proof scaffolding, debugging type errors, style cleanup (naming conventions, `fun ↦` syntax), rebasing onto upstream master, and PR preparation. All mathematical content, design decisions, and proof strategies were directed by the author. The code has been reviewed by the author and their advisor. |
t-combinatorics
new-contributor
|
1117/0 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/Schreier.lean,Mathlib/Combinatorics/Quiver/SchreierExamples.lean,Mathlib/Combinatorics/SimpleGraph/CayleySumGraph.lean |
4 |
2 |
['github-actions'] |
nobody |
0-2932 48 minutes ago |
0-3606 56 minutes ago |
0-3384 56 minutes |
| 35321 |
harahu author:harahu |
doc: capitalize the proper name Kan |
We capitalize the surname of Daniel Kan.
---
This PR is exhaustive.
[](https://gitpod.io/from-referrer/)
|
easy |
4/4 |
Mathlib/CategoryTheory/Bicategory/Kan/HasKan.lean,Mathlib/CategoryTheory/Monoidal/DayConvolution.lean,Mathlib/CategoryTheory/Monoidal/ExternalProduct/KanExtension.lean,Mathlib/Topology/Sheaves/Alexandrov.lean |
4 |
1 |
['github-actions', 'vihdzp'] |
nobody |
0-2620 43 minutes ago |
3-21061 3 days ago |
3-20839 3 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 |
| 33458 |
NoneMore author:NoneMore |
feat(ModelTheory): add lifting for embeddings to languages with constants |
Prepare for a generalized Tarski-Vaught test with a set as input instead of a substructure.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
35/0 |
Mathlib/ModelTheory/ElementaryMaps.lean,Mathlib/ModelTheory/LanguageMap.lean |
2 |
3 |
['Citronhat', 'github-actions'] |
fpvandoorn assignee:fpvandoorn |
20-63781 20 days ago |
20-62920 20 days ago |
46-55231 46 days |
| 34138 |
pfaffelh author:pfaffelh |
feat(MeasureTheory): Introduce `MassFunction α` giving rise to a `Measure α ⊤` |
Define `MassFunction α := α → ℝ≥0∞`
Define `toMeasure (w : MassFunction α) : @Measure α ⊤` as a sum of diracs
Show properties of the resulting objects
This PR intends to start a more userfriendly interaction with probability mass functions (`PMF`). There are two main differences between `MassFunction` and `PMF`:
* `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `MassFunction`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.)
* The `toMeasure` function of `MassFunction` directly defines the measure as a sum of diracs, which immediately makes computations possible.
Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change)
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
224/0 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/MassFunction.lean |
4 |
10 |
['DavidLedvinka', 'github-actions', 'metakunt', 'pfaffelh'] |
EtienneC30 assignee:EtienneC30 |
19-23766 19 days ago |
19-20688 19 days ago |
29-12969 29 days |
| 33817 |
FlAmmmmING author:FlAmmmmING |
fix(Combinatorics/Enumerative/Schroder.lean): Fix the definition and theorem of smallSchroder. |
In the previous definition, the small Schröder numbers were defined as
```LaTeX
s_0 = 1, s_1 = 1, s_2 = 1, s_3 = 3...
```
, which does not match the sequence listed in OEIS A006318. Moreover, this definition makes it difficult to correctly write the generating function for the small Schröder numbers. This PR fixes this issue.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
large-import
|
61/39 |
Mathlib/Combinatorics/Enumerative/Schroder.lean |
1 |
19 |
['FlAmmmmING', 'github-actions', 'vihdzp'] |
awainverse assignee:awainverse |
19-5313 19 days ago |
27-70713 27 days ago |
38-21297 38 days |
| 34227 |
stepan2698-cpu author:stepan2698-cpu |
feat: 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
|
51/1 |
Mathlib/Combinatorics/Schnirelmann.lean |
1 |
3 |
['github-actions', 'grunweg', 'kbuzzard'] |
awainverse assignee:awainverse |
19-5310 19 days ago |
27-7289 27 days ago |
27-22082 27 days |
| 34028 |
floor-licker author:floor-licker |
feat(SimpleGraph): add max-flow/min-cut weak duality |
This PR introduces a basic s–t flow setup for undirected SimpleGraphs and proves the standard weak-duality
inequality: for any feasible flow f and any s–t cut S, value f ≤ cutCapacity S.
This is a small, self-contained lemma I extracted while working on larger graph-theoretic formalizations, in particular, results that will ultimately rely on a full max-flow/min-cut theorem. The full MFMC equality/existence statement is not included here. This is the weak-duality direction (∀ f S, value f ≤ cutCapacity S).
|
t-combinatorics
new-contributor
|
169/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/MaxFlowMinCut.lean |
2 |
13 |
['SnirBroshi', 'floor-licker', 'github-actions'] |
kmill assignee:kmill |
18-5320 18 days ago |
22-44078 22 days ago |
31-19156 31 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.
The other direction depends on #33458.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
new-contributor
|
55/0 |
Mathlib/ModelTheory/ElementarySubstructures.lean |
1 |
3 |
['Citronhat', 'NoneMore', 'github-actions'] |
awainverse assignee:awainverse |
17-5271 17 days ago |
20-68733 20 days ago |
45-52794 45 days |
| 34521 |
huaizhangchu author:huaizhangchu |
feat(MeasureTheory): add measurableEmbedding_natCast |
This PR adds a lemma stating that the coercion from `ℕ` to `ℝ` is a measurable embedding.
```lean
lemma measurableEmbedding_natCast : MeasurableEmbedding (Nat.cast : ℕ → ℝ) :=
Nat.isClosedEmbedding_coe_real.measurableEmbedding
```
This is useful for proving properties about discrete probability distributions on `ℕ` by lifting them to `ℝ` and will be used in #34435. |
t-measure-probability
new-contributor
|
3/0 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean |
1 |
1 |
['github-actions'] |
kex-y assignee:kex-y |
17-5263 17 days ago |
20-42942 20 days ago |
20-46218 20 days |
| 33791 |
PhoenixIra author:PhoenixIra |
feat: Generalization of FixedPointApproximants to CompletePartialOrder |
---
This PR provides a generalization of FixedPointApproximants to CompletePartialOrder. Not every theorem can be generalized, as sometimes we require additional conditions (namely `x ≤ f x`) in order to guarantee that the set is directed and thus the supremum is well-defined. This is not necessary in a CompleteLattice.
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
223/100 |
Mathlib/Order/CompletePartialOrder.lean,Mathlib/SetTheory/Ordinal/FixedPointApproximants.lean |
2 |
20 |
['PhoenixIra', 'github-actions', 'vihdzp'] |
PhoenixIra and vihdzp assignee:PhoenixIra assignee:vihdzp |
16-56094 16 days ago |
28-30448 28 days ago |
28-30226 28 days |
| 34664 |
GrigorenkoPV author:GrigorenkoPV |
feat(SetTheory/Ordinal/Arithmetic): prove isSuccPrelimit_iff_omega0_dvd |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
new-contributor
|
36/15 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean,Mathlib/SetTheory/Ordinal/Notation.lean |
3 |
8 |
['GrigorenkoPV', 'github-actions', 'vihdzp'] |
vihdzp assignee:vihdzp |
14-40631 14 days ago |
15-43995 15 days ago |
17-519 17 days |
| 34375 |
jvanwinden author:jvanwinden |
feat(MeasureTheory/Function/AEEqOfLIntegral): introduce lemmas for rewriting a.e. inequalities |
Introduce the following lemmas:
- ae_le_const_iff_forall_gt_imp_ae_lt,
- ae_const_le_iff_forall_lt_imp_ae_gt,
- ae_le_const_iff_forall_gt_imp_ae_le,
- ae_const_le_iff_forall_lt_imp_ae_ge,
which can be used get an epsilon of room in a.e. inequalities, with the epsilon being outside the a.e. quantifier. The 'le/ge' variants require a dense ordering.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
24/0 |
Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean |
1 |
4 |
['github-actions', 'jvanwinden', 'urkud'] |
kex-y assignee:kex-y |
14-39112 14 days ago |
24-40530 24 days ago |
24-40308 24 days |
| 32570 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph): bipartite subgraphs and vertex-disjoint graphs for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
22/0 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
2 |
19 |
['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono', 'vlad902'] |
kmill assignee:kmill |
14-15080 14 days ago |
14-15080 14 days ago |
66-45862 66 days |
| 32555 |
ksenono author:ksenono |
feat(Combinatorics/SimpleGraph/Matching): maximum and maximal matchings for Konig's theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
127/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean |
2 |
24 |
['SnirBroshi', 'github-actions', 'jcommelin', 'ksenono'] |
awainverse assignee:awainverse |
14-13907 14 days ago |
14-13907 14 days ago |
66-69110 66 days |
| 34191 |
IlPreteRosso author:IlPreteRosso |
feat(Topology/Algebra/InfiniteSum): Discrete Convolution API 1st PR |
Defines the very basics of the discrete convolution API. In analogy with [MeasureTheory.Convolution](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Convolution.html#MeasureTheory.convolution).
Main definitions include
- `mulFiber`, `convolution`, `ConvolutionExists`, `ConvolutionExists.add_distrib`, `ConvolutionExistsAt.smul_convolution`, `mulFiber_swapEquiv`, `convolution_comm`
RM:
- The main docstring is *as is*
- Next step is triple sum intrastrcutre + `assoc` theorems for convolution (long)
Continues the work from #33411 and #33410 (splitting into shorter PRs, carries over the modifications from previous reviews) |
t-topology
new-contributor
|
277/0 |
Mathlib.lean,Mathlib/Topology/Algebra/InfiniteSum/DiscreteConvolution.lean |
2 |
18 |
['IlPreteRosso', 'github-actions', 'j-loreaux'] |
PatrickMassot assignee:PatrickMassot |
13-34186 13 days ago |
13-33564 13 days ago |
22-34101 22 days |
| 34709 |
dennj author:dennj |
feat(Analysis/ODE): add discrete Grönwall inequality |
## Summary
Add discrete Grönwall inequality to `Mathlib/Analysis/ODE/DiscreteGronwall.lean`
Provides bounds for recurrence inequalities of the form `u(n+1) ≤ c(n) * u(n) + b(n)`
### Main results
- `discrete_gronwall_prod_general`: Product form working over any linearly ordered commutative ring
- `prod_one_add_Ico_mono`: Auxiliary lemma for product comparisons over subintervals
- `discrete_gronwall`: Classical exponential bound `u(n) ≤ (u(n₀) + ∑ b(k)) * exp(∑ c(i))` (ℝ-specific)
- `discrete_gronwall_Ico`: Uniform bound over a finite interval (ℝ-specific)
## Related work
Complements the continuous Grönwall inequality in `Mathlib.Analysis.ODE.Gronwall`
## References
* Grönwall, T. H. (1919). "Note on the derivatives with respect to a parameter of the solutions of a system of differential equations". *Annals of Mathematics*, 20(4), 292–296.
|
t-analysis
new-contributor
|
174/0 |
Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean |
2 |
1 |
['github-actions'] |
ADedecker assignee:ADedecker |
12-5404 12 days ago |
15-80339 15 days ago |
15-80117 15 days |
| 34182 |
IlPreteRosso author:IlPreteRosso |
feat(Data/Finsupp/Single, Data/Finsupp/Indicator): Add set_indicator_singleton, indicator_singleton; golfed single_eq_set_indicator, single_eq_indicator |
[Mathlib.Data.Finsupp.Single](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Single.html#Finsupp.single)
- Add `set_indicator_singleton`, golfed `single_eq_set_indicator`
[Mathlib.Data.Finsupp.Indicator](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Indicator.html#Finsupp.indicator_apply)
- Add `indicator_singleton`, golfed `single_eq_indicator`
Continues the work from #34095 |
large-import
t-data
new-contributor
|
17/17 |
Mathlib/Data/Finsupp/Indicator.lean,Mathlib/Data/Finsupp/Single.lean |
2 |
29 |
['IlPreteRosso', 'eric-wieser', 'github-actions', 'mathlib-bors', 'urkud'] |
eric-wieser and urkud assignee:urkud assignee:eric-wieser |
11-35097 11 days ago |
27-74001 27 days ago |
27-80607 27 days |
| 34954 |
brianrabern author:brianrabern |
feat(Combinatorics/SimpleGraph/Acyclic): add colorable and chromaticN… |
…umber bridges for acyclic and tree graphs
Add thin bridge lemmas expressing that acyclic graphs (forests) and trees
are 2-colorable, and that their chromatic number is at most 2, directly
in terms of `Colorable` and `chromaticNumber`.
The existing `IsAcyclic.isBipartite` already proves this via the
definitional equality `IsBipartite = Colorable 2`, but these bridges
improve discoverability for users who reason about `Colorable` or
`chromaticNumber` without passing through `IsBipartite`.
This is a first step toward building out the graph coloring API.
New declarations:
- `IsAcyclic.colorable_two`
- `IsTree.colorable_two`
- `IsAcyclic.chromaticNumber_le_two`
- `IsTree.chromaticNumber_le_two`
All are one-line proofs reusing existing results; no new imports needed.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
16/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
1 |
['github-actions'] |
nobody |
10-29280 10 days ago |
unknown |
unknown |
| 34054 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): OmegaCompletePartialOrder instance for `Sigma` with basic `ωScottContinuous` lemmas |
This PR adds an `OmegaCompletePartialOrder` instance for `Sigma` along with `ωScottContinuous` lemmas for basic operations (`mk`, `fst`, `snd`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sigma`s.
---
- [x] depends on: #33941
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
please-merge-master
|
168/0 |
Mathlib/Data/Sigma/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
Vierkantor assignee:Vierkantor |
10-4908 10 days ago |
13-78604 13 days ago |
13-78382 13 days |
| 33257 |
NickAdfor author:NickAdfor |
feat(Combinatorics/SimpleGraph/Bipartite): Odd Cycle Theorem (A Solution to TODO) |
Prove bipartite iff all cycles are even
This PR formalizes the classical graph theory theorem: a graph is bipartite if and only if all its cycles have even length.
Co-authored-by: Nick Adfor
Co-authored-by: Yue Sun
Co-authored-by: Aristotle AI
---
## Main results
- `SimpleGraph.bipartite_iff_all_cycles_even` : the main equivalence theorem
## Key supporting lemmas
- `SimpleGraph.even_length_iff_same_color` : parity lemma for 2-colorings
- `SimpleGraph.even_length_iff_even_bypass_length` : bypass length parity
- `SimpleGraph.even_cycle_length_of_path` : cycle construction lemma
- `SimpleGraph.bypass_eq_nil_of_closed` : closed path properties
## Proof outline
1. For bipartite graphs: use the 2-coloring to show that in a 2-coloring, a walk has even length iff its endpoints have the same color.
2. For cycles (start = end), this forces even length.
3. For the converse: if all cycles are even, construct a 2-coloring using the `two_colorable_iff_forall_loop_even` characterization.
4. Show this coloring is valid using bypass operations and path properties.
## Technical notes
- Uses `SimpleGraph.Walk` for path/cycle representation
- Handles both `IsPath` and `IsCycle` predicates
- Uses bypass operations (`takeUntil`, `dropUntil`, `bypass`) to analyze walks
- Requires `DecidableEq V` for some lemmas
- Uses classical logic for case analysis
## Reviewer notes
- The proof uses induction on walks and case analysis on colorings
- Some lemmas (like `even_length_iff_same_color`) could be extracted to more general locations
- All theorems are in the `SimpleGraph` namespace
- The `bipartite_iff_all_cycles_even` theorem provides the complete characterization |
t-combinatorics
new-contributor
|
164/8 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean |
2 |
70 |
['IvanRenison', 'NickAdfor', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'kmill', 'mitchell-horner', 'vihdzp', 'vlad902'] |
nobody |
10-3483 10 days ago |
10-3891 10 days ago |
18-4468 18 days |
| 33668 |
Citronhat author:Citronhat |
feat(PMF): add lintegral formulas for PMF |
This PR introduces two lemmas describing the `lintegral` of a function with respect to the measure induced by a probability mass function:
- `PMF.lintegral_eq_tsum`
- `PMF.lintegral_eq_sum`
These are the `ℝ≥0∞` analogues of the existing Bochner `integral` formulas `integral_eq_tsum` and `integral_eq_sum`. They could be useful for reasoning about expectations and integrability.
In addition, the proof of `integral_eq_sum` is simplified by deriving it directly from `integral_eq_tsum` using `tsum_fintype`. |
t-measure-probability
new-contributor
|
14/5 |
Mathlib/Probability/ProbabilityMassFunction/Integrals.lean |
1 |
2 |
['DavidLedvinka', 'github-actions'] |
kex-y assignee:kex-y |
10-3371 10 days ago |
42-9643 42 days ago |
42-41099 42 days |
| 33688 |
Citronhat author:Citronhat |
feat(PMF): add expectation lemmas for Poisson PMF |
This PR adds some basic results about the Poisson distribution, its `PMF`, and its expectation.
**New lemmas:**
* `poissonPMF_apply` — an unfolding lemma for `poissonPMF`.
* `poissonPMFReal_mul_eq_succ_mul` — the standard recursion identity for the Poisson mass function.
* `poissonPMFReal_hasSum_nmul` — shows that `fun n ↦ poissonPMFReal r n * n` has sum `r`.
* `poissonPMF_tsum_nmul` — the corresponding identity at the level of the `PMF`.
* `poissonPMF_coe_tsum_nmul` — the same result after coercion to `ℝ`.
Both `ℝ`-valued and `ℝ≥0∞`-valued formulations are included so that these results can be used conveniently in both Lebesgue and Bochner integration contexts. |
new-contributor
t-measure-probability
|
21/0 |
Mathlib/Probability/Distributions/Poisson.lean |
1 |
6 |
['Citronhat', 'DavidLedvinka', 'github-actions'] |
urkud assignee:urkud |
10-1615 10 days ago |
41-15648 41 days ago |
42-10915 42 days |
| 34093 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `Option` with basic `ωScottContinuous` lemmas |
---
- [x] depends on: #33941
[](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'] |
pechersky assignee:pechersky |
9-5390 9 days ago |
13-73159 13 days ago |
13-72937 13 days |
| 34435 |
huaizhangchu author:huaizhangchu |
feat(Probability): convolution of Poisson distributions |
This PR proves that the convolution of two Poisson distributions is again a Poisson distribution:
`Poisson(r₁) ∗ Poisson(r₂) = Poisson(r₁ + r₂)`
## Main results
- `poissonMeasureReal_charFun`: characteristic function of Poisson distribution is `exp(r(exp(it) - 1))`
- `poissonMeasureReal_conv_poissonMeasureReal`: convolution of Poisson distributions on ℝ
- `poissonMeasure_conv_poissonMeasure`: convolution of Poisson distributions on ℕ
- `poissonMeasure_add_poissonMeasure_of_indepFun`: sum of independent Poisson random variables
## Proof strategy
Uses characteristic functions: `φ(t) = exp(r(eⁱᵗ - 1))`, then pulls back from ℝ to ℕ. |
t-measure-probability
large-import
new-contributor
|
110/1 |
Mathlib/Probability/Distributions/Poisson.lean |
1 |
14 |
['CoolRmal', 'DavidLedvinka', 'github-actions', 'huaizhangchu'] |
RemyDegenne assignee:RemyDegenne |
9-5385 9 days ago |
12-55591 12 days ago |
13-83624 13 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 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
8-49671 8 days ago |
8-48332 8 days ago |
42-55561 42 days |
| 34551 |
IlPreteRosso author:IlPreteRosso |
refactor(Data.Finset.*Antidiagonal): rename defs to `set*Antidiagonal` and deprecate old names in namespace Finset |
Main file is [Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html). Adds `Finset.HasMulAntidiagonal`, the multiplicative counterpart to `HasAntidiagonal`, linked via `@[to_additive existing]`.
Split PR (current changes):
This PR renames the set-based antidiagonal definitions to have a `set` prefix, distinguishing them from the typeclass-based API in `Prod.lean`.
**Only definitions are renamed in this PR.** Theorem/lemma renames will follow in a subsequent PR.
[MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean)
- `mulAntidiagonal` → `setMulAntidiagonal`
- `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`)
[SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean)
- `SMulAntidiagonal` → `setSMulAntidiagonal`
- `VAddAntidiagonal` → `setVAddAntidiagonal` (via `@[to_additive]`)
Propagates to:
- `Mathlib/RingTheory/HahnSeries/Multiplication.lean`
- `Mathlib/RingTheory/HahnSeries/Summable.lean`
---
Added deprecation aliases for the renamed definitions.
[Finset/MulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/MulAntidiagonal.lean)
```
@[to_additive (attr := deprecated setAddAntidiagonal (since := "2026-01-31")),
deprecated setMulAntidiagonal (since := "2026-01-31")]
alias mulAntidiagonal := setMulAntidiagonal
```
[Finset/SMulAntidiagonal.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finset/SMulAntidiagonal.lean)
```
@[to_additive (attr := deprecated setVAddAntidiagonal (since := "2026-01-31")),
deprecated setSMulAntidiagonal (since := "2026-01-31")]
alias smulAntidiagonal := setSMulAntidiagonal
```
Propagates:
[PointwiseSMul.lean](https://github.com/leanprover-community/mathlib4/blob/master/Mathlib/Data/Finsupp/PointwiseSMul.lean) - updated to use Set.vaddAntidiagonal (the original Set name)
---
Full changes to be made:
For a monoid `M`, `mulAntidiagonal n` returns the finset of pairs `(i, j)` such that `i * j = n`.
[MulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/MulAntidiagonal.html)
- `mulAntidiagonal` → `setMulAntidiagonal`
- `addAntidiagonal` → `setAddAntidiagonal` (via `@[to_additive]`)
- All related theorems renamed accordingly:
- `mem_setMulAntidiagonal`
- `setMulAntidiagonal_mono_left`/`setMulAntidiagonal_mono_right`
- `swap_mem_setMulAntidiagonal`
- `support_setMulAntidiagonal_subset_mul`
- `isPWO_support_setMulAntidiagonal`
- `setMulAntidiagonal_min_mul_min`
[SMulAntidiagonal.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/SMulAntidiagonal.html)
- `setSMulAntidiagonal` (lowercase `set` prefix)
- `setVAddAntidiagonal` (via `@[to_additive setVAddAntidiagonal ...]`)
- All related theorems use lowercase `set` prefix:
- `mem_setSMulAntidiagonal` / `mem_setVAddAntidiagonal`
- `setSMulAntidiagonal_mono_left`/`setSMulAntidiagonal_mono_right` / `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right`
- `support_setSMulAntidiagonal_subset_smul` / `support_setVAddAntidiagonal_subset_vadd`
- `isPWO_support_setSMulAntidiagonal` / `isPWO_support_setVAddAntidiagonal`
- `setSMulAntidiagonal_min_smul_min` / `setVAddAntidiagonal_min_vadd_min`
[Prod.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Antidiag/Prod.html)
- Added explicit `@[to_additive]` target names:
- `@[to_additive antidiagonal_congr ...]` for `mulAntidiagonal_congr`
- `@[to_additive (attr := ext) antidiagonal_subtype_ext ...]` for `mulAntidiagonal_subtype_ext`
- `@[to_additive antidiagonal_congr' ...]` for `mulAntidiagonal_congr'`
- `@[to_additive (attr := simps) sigmaAntidiagonalEquivProd ...]` for `sigmaMulAntidiagonalEquivProd`
[Multiplication.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Multiplication.html)
- Updated all VAdd antidiagonal references to use lowercase `set` prefix:
- `setVAddAntidiagonal`
- `mem_setVAddAntidiagonal`
- `setVAddAntidiagonal_mono_left`/`setVAddAntidiagonal_mono_right`
- `isPWO_support_setVAddAntidiagonal`
- `support_setVAddAntidiagonal_subset_vadd`
- `setVAddAntidiagonal_min_vadd_min`
- Updated all Add antidiagonal references:
- `mem_setAddAntidiagonal`
- `swap_mem_setAddAntidiagonal`
[Summable.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/Summable.html)
- `setVAddAntidiagonal` references updated
- `mem_setAddAntidiagonal` references updated
[PowerSeries.lean](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/HahnSeries/PowerSeries.html)
- `mem_addAntidiagonal` → `mem_setAddAntidiagonal`
|
t-algebra
new-contributor
label:t-algebra$ |
67/47 |
Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Data/Finset/MulAntidiagonal.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/Set/MulAntidiagonal.lean,Mathlib/RingTheory/HahnSeries/Multiplication.lean,Mathlib/RingTheory/HahnSeries/Summable.lean |
6 |
6 |
['IlPreteRosso', 'Ruben-VandeVelde', 'github-actions', 'kim-em', 'mathlib-merge-conflicts'] |
jcommelin assignee:jcommelin |
8-18401 8 days ago |
8-16117 8 days ago |
18-66858 18 days |
| 34026 |
SnkXyx author:SnkXyx |
feat(Algebra/MvPolynomial): add mainVariable |
Add `mainVariable` of `MvPolynomial`, the largest variable index appearing in the polynomial.
Main Theorems:
* `mainVariable_eq_bot_iff_eq_C`
* `mainVariable_sum_le`
* `mainVariable_prod_le`
* `degreeOf_eq_zero_of_mainVariable_lt`
The PR is upstreamized from [github.com/WuProver/lean_characteristic_set](https://github.com/WuProver/lean_characteristic_set)
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
147/0 |
Mathlib.lean,Mathlib/Algebra/MvPolynomial/MainVariable.lean |
2 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
8-5129 8 days ago |
32-76611 32 days ago |
32-76389 32 days |
| 34854 |
GrigorenkoPV author:GrigorenkoPV |
chore(Combinatorics/Enumerative/Catalan): split into `Basic` & `Tree` |
---
Split off from #34853
[](https://gitpod.io/from-referrer/)
|
new-contributor |
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 |
2 |
['SnirBroshi', 'github-actions'] |
thorimur assignee:thorimur |
8-5117 8 days ago |
11-51100 11 days ago |
13-13207 13 days |
| 26985 |
agjftucker author:agjftucker |
feat(Analysis/Calculus/ImplicitFunction): define implicitFunctionOfProdDomain |
This PR continues the work from #16743.
Original PR: https://github.com/leanprover-community/mathlib4/pull/16743
---
- [x] depends on: #28352
[](https://gitpod.io/from-referrer/) |
t-analysis
new-contributor
|
269/157 |
Mathlib.lean,Mathlib/Analysis/Calculus/Implicit.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/Calculus/ImplicitFunction/ProdDomain.lean |
4 |
27 |
['agjftucker', 'github-actions', 'j-loreaux', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'winstonyin'] |
hrmacbeth assignee:hrmacbeth |
7-67249 7 days ago |
7-66362 7 days ago |
70-28512 70 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 |
59 |
['NoneMore', 'github-actions', 'mathlib4-merge-conflict-bot', 'staroperator'] |
awainverse assignee:awainverse |
7-61285 7 days ago |
39-69460 39 days ago |
60-12533 60 days |
| 35011 |
whocares-abt author:whocares-abt |
feat(Combinatorics/SimpleGraph/Copy): add degree of copy less than original |
add two theorems relating degree of a graph and it's copy |
t-combinatorics
new-contributor
|
17/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
2 |
['github-actions', 'themathqueen'] |
nobody |
7-61006 7 days ago |
7-60337 7 days ago |
8-63976 8 days |
| 26479 |
thefundamentaltheor3m author:thefundamentaltheor3m |
feat(Analysis/Complex/CauchyIntegral): Cauchy–Goursat for Unbounded Rectangles |
In this PR, we prove versions of the Cauchy-Goursat theorem where the contours in question are rectangular and unbounded (ie, where the contours look like the $\bigsqcup$ symbol). I am not sure if I have formalised these in the best way, or if `Analysis.Complex.CauchyIntegral` is the best place for them (it might be prudent to reorganise the file into multiple files at some point), but I believe this is a useful result. Suggestions welcome.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
sphere-packing
|
205/0 |
Mathlib/Analysis/Complex/CauchyIntegral.lean |
1 |
5 |
['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'thefundamentaltheor3m', 'wwylele'] |
urkud assignee:urkud |
7-10477 7 days ago |
27-26502 27 days ago |
27-26280 27 days |
| 34481 |
DAE123456 author:DAE123456 |
feat: Ore's Theorem |
Ore Theorem : Let G be a graph of order n ≥ 3 that satisfies the Ore property. Then G has a Hamilton cycle. |
t-combinatorics
new-contributor
|
3372/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Ore.lean |
2 |
25 |
['DAE123456', 'LLaurance', 'Ruben-VandeVelde', 'YaelDillies', 'github-actions', 'kim-em', 'tb65536', 'vlad902'] |
b-mehta assignee:b-mehta |
7-5236 7 days ago |
15-59296 15 days ago |
19-20452 19 days |
| 34722 |
GrigorenkoPV author:GrigorenkoPV |
feat(Data/Finset/RangeDistance): add |
---
Rebase of https://github.com/leanprover-community/mathlib4/pull/26347
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-data
|
34/0 |
Mathlib.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Data/Finset/RangeDistance.lean |
3 |
4 |
['GrigorenkoPV', 'github-actions', 'joneugster', 'plp127'] |
TwoFX assignee:TwoFX |
7-5232 7 days ago |
15-45069 15 days ago |
15-44847 15 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 |
10 |
['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions'] |
kim-em assignee:kim-em |
7-5221 7 days ago |
10-69819 10 days ago |
12-35651 12 days |
| 34838 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 2/4) |
---
Required for https://github.com/leanprover-community/mathlib4/pull/33050
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
13/0 |
Mathlib/Analysis/Analytic/Order.lean |
1 |
1 |
['github-actions'] |
sgouezel assignee:sgouezel |
6-46648 6 days ago |
6-45828 6 days ago |
13-44165 13 days |
| 35122 |
Marygold-Dusk author:Marygold-Dusk |
feat: define C^n submersions |
This PR defines submersions between C^n manifolds. In the infinite-dimensional setting, submersions are defined via local normal forms rather than surjectivity of the mfderiv. A map f is a submersion at x if, in suitable charts around x and f x, it has the form (u, v) ↦ u after identifying the model space with a product.
We prove a few basic properties:
- being a submersion is a local property,
- products of submersions are submersions,
- the set of submersed points is open
Future PRs will prove that submersions are C^n and deduce equivalence with the standard definition in finite dimensions. From the path towards the regular value theorem.
This file was developed under the supervision of Michael Rothgang.
Co-authored-by: Michael Rothgang
---
Most of the design is analogues to submersions.
|
t-differential-geometry
new-contributor
|
596/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Submersion.lean |
2 |
2 |
['github-actions'] |
grunweg assignee:grunweg |
6-41652 6 days ago |
6-41029 6 days ago |
6-41799 6 days |
| 34888 |
stepan2698-cpu author:stepan2698-cpu |
feat: definition of equivalence of representations |
Defines equivalence of representations, and defines an equivalence between $$\mathrm{Hom}(V, W)$$ and $$V^* \otimes W$$ as representations. This is a missing piece to respell all of the results in Character.lean without using category-theoretic notions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
60/0 |
Mathlib/RepresentationTheory/Intertwining.lean |
1 |
2 |
['github-actions', 'plp127'] |
ocfnash assignee:ocfnash |
6-5396 6 days ago |
10-5814 10 days ago |
12-12767 12 days |
| 33895 |
jessealama author:jessealama |
feat(Computability/Primrec): add list_take, list_drop, list_modify, and list_set |
This PR shows that several list operations from Lean core are primitive recursive:
- `list_drop`: [`List.drop`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean), via iterating `List.tail` using `nat_iterate`
- `list_take`: [`List.take`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/TakeDrop.lean), via `list_drop` on the reversed list
- `list_modifyHead'`: [`List.modifyHead`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) with external data
- `list_modify'`: [`List.modify`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean) with external data
- `list_modify`: [`List.modify`](https://github.com/leanprover/lean4/blob/master/src/Init/Data/List/Nat/Modify.lean)
- `list_set`: [`List.set`](https://github.com/leanprover/lean4/blob/master/src/Init/Prelude.lean)
The primed versions (`list_modify'`, `list_modifyHead'`) take a function `g : β → α → α` that depends on external data of type `β`. This generalization enables deriving the other operations:
- `list_modify` specializes `list_modify'` with `β = Unit`
- `list_set` uses `list_modify'` via `List.set_eq_modify`
Also moves `list_length` earlier in the file (before `list_drop` and `list_take`, which depend on it). |
new-contributor
t-computability
|
48/4 |
Mathlib/Computability/Primrec/List.lean |
1 |
1 |
['github-actions'] |
nobody |
5-57282 5 days ago |
5-56557 5 days ago |
33-56657 33 days |
| 34940 |
michaellee94 author:michaellee94 |
feat: the graph of a continuous function on a $C^n$ manifold is a $C^n$ manifold |
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
227/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Instances/Graph.lean |
2 |
56 |
['botbaki-review', 'github-actions', 'grunweg', 'michaellee94'] |
ocfnash assignee:ocfnash |
5-43316 5 days ago |
5-42594 5 days ago |
10-36269 10 days |
| 34674 |
Citronhat author:Citronhat |
feat(Algebra/Order/Ring): replace ENNReal lemmas with WithTop versions |
* Add `WithTop` versions of basic multiplicative order lemmas.
* Use the new `WithTop` lemmas to replace `ENNReal` proofs and address six TODOs.
* Fix a typo in the `pos_of_ne_zero` alias name. |
new-contributor
t-algebra
label:t-algebra$ |
46/15 |
Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Data/ENNReal/Operations.lean |
3 |
4 |
['Citronhat', 'Ruben-VandeVelde', 'github-actions'] |
Ruben-VandeVelde assignee:Ruben-VandeVelde |
5-29102 5 days ago |
14-63321 14 days ago |
16-48891 16 days |
| 28246 |
Sebi-Kumar author:Sebi-Kumar |
feat(AlgebraicTopology/FundamentalGroupoid): the n-sphere is simply connected for n > 1 |
Prove that the `n`-dimensional sphere (i.e., the unit sphere centered at the origin in `(n + 1)`-dimensional real Euclidean space) is a simply connected space for `n > 1`. This proof follows Hatcher's "Algebraic Topology"; we first prove a general lemma about decomposing loops and then exploit the fact that non-surjective loops in the sphere are homotopically trivial.
Note: To get this file to build, I edited `Mathlib/Tactic/Linter/DirectoryDependency.lean` to remove the restrictions on AlgebraicTopology files importing Geometry, NumberTheory, and FieldTheory files. Thank you to those who shared their expertise [here](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Warning.20that.20AlgebraicTopology.20can't.20import.20SetTheory/with/533833638). As I understand it, this is just a short-term solution, so I would appreciate feedback on what to do about this situation.
Note: I am unsure where exactly the file `SimplyConnectedSphere.lean` should go or whether that is an appropriate name for the file, so feedback there would be appreciated.
---
To provide additional context, this code was written as a part of the Fields Undergraduate Summer Research Program at the University of Western Ontario under the supervision of Chris Kapulkin and Daniel Carranza.
- [x] depends on: #28208
- [x] depends on: #28198
- [x] depends on: #28185
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
new-contributor
|
343/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/SimplyConnectedSphere.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
3 |
5 |
['dagurtomas', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
robin-carlier assignee:robin-carlier |
5-14337 5 days ago |
11-34201 11 days ago |
11-33979 11 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 |
25 |
['WilliamCoram', 'erdOne', 'fbarroero', 'github-actions', 'mathlib4-merge-conflict-bot', 'vihdzp'] |
alreadydone assignee:alreadydone |
4-45670 4 days ago |
4-45025 4 days ago |
17-45997 17 days |
| 34966 |
Deep0Thinking author:Deep0Thinking |
feat(MeasureTheory): add `IntegrableOn. tendsto_primitive_` over `Ioi/Iio` and `IntegrableOn.continuousOn_primitive_` over `Ioi/Iio/Ici/Iic` |
This PR mainly proves:
- `IntegrableOn.tendsto_primitive_` over `Ioi/Iio`
- `IntegrableOn.continuousWithinAt_primitive_` over `Ioi/Iio`
- `IntegrableOn.continuousOn_primitive_` over `Ioi/Iio/Ici/Iic`
- `IntegrableOn.tendsto_integral_` over `Ioi/Iio/Ici/Iic`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
204/1 |
Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
3 |
6 |
['CoolRmal', 'Deep0Thinking', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
4-5400 4 days ago |
8-59750 8 days ago |
9-53234 9 days |
| 35100 |
stepan2698-cpu author:stepan2698-cpu |
feat: definition of a character of a representation |
This PR begins to transfer definitions and theorems about characters from `FDRep` to `Representation`. Once #34888 is merged, the theorems involving isomorphisms of representations will be appropriately restated.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
57/0 |
Mathlib/RepresentationTheory/Character.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
4-5396 4 days ago |
7-20118 7 days ago |
7-19896 7 days |
| 33188 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): introduce rename |
This file establishes the `rename` operation on multivariate power series under a map with finite fibers,
which modifies the set of variables.
This file is patterned after `MvPolynomials/Rename.lean`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
large-import
|
426/1 |
Mathlib.lean,Mathlib/Data/Finsupp/Antidiagonal.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean |
7 |
26 |
['BryceT233', 'Komyyy', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] |
erdOne and riccardobrasca assignee:riccardobrasca assignee:erdOne |
3-72814 3 days ago |
3-71116 3 days ago |
32-39947 32 days |
| 35307 |
samueloettl author:samueloettl |
fix(Dynamics/BirkhoffSum): birkhoffAverage_of_comp_eq only needs AddCommMonoid |
---
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
easy
|
8/8 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
4 |
['github-actions', 'samueloettl'] |
nobody |
3-38481 3 days ago |
3-38593 3 days ago |
3-38371 3 days |
| 34598 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): nondegeneracy conditions and interconversion with Affine.Triangle |
This PR implements suggestions provided in [this comment](https://github.com/leanprover-community/mathlib4/pull/34393#issuecomment-3810047384) by @jsm28: interconversion between `Polygon P 3` and `Affine.Triangle` as well as the nondegeneracy conditions `NondegenerateVertices` and `NondegenerateEdges`. I tried to keep typeclass restrictions as minimal as possible.
---
|
new-contributor
t-euclidean-geometry
maintainer-merge
|
117/5 |
Mathlib/Geometry/Polygon/Basic.lean |
1 |
18 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'jcommelin', 'jsm28'] |
jsm28 assignee:jsm28 |
3-24204 3 days ago |
4-27307 4 days ago |
17-32207 17 days |
| 34914 |
jvanwinden author:jvanwinden |
feat(Analysis/Normed/Module/FiniteDimension): add lemmas on IsTheta and summability |
IsTheta.summable_iff is a natural generalization of IsEquivalent.summable_iff. Some adjacent lemmas now become direct consequences.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
26/7 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean |
1 |
13 |
['github-actions', 'jvanwinden', 'themathqueen', 'vihdzp', 'wwylele'] |
urkud assignee:urkud |
3-20047 3 days ago |
3-18969 3 days ago |
11-40037 11 days |
| 35329 |
BryceT233 author:BryceT233 |
feat(Data/Finsupp): add computational lemmas for cons and single |
This PR introduces `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`.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
25/0 |
Mathlib/Data/Finsupp/Fin.lean |
1 |
2 |
['github-actions'] |
nobody |
3-7699 3 days ago |
3-5931 3 days ago |
3-5709 3 days |
| 35058 |
GrigorenkoPV author:GrigorenkoPV |
chore: move tendsto_{floor,ceil}_at{Top,Bot} |
Moves:
- Topology.Algebra.Order.Floor.tendsto_floor_atTop -> Order.Filter.AtTopBot.Floor.tendsto_floor_atTop
- Topology.Algebra.Order.Floor.tendsto_floor_atBot -> Order.Filter.AtTopBot.Floor.tendsto_floor_atBot
- Topology.Algebra.Order.Floor.tendsto_ceil_atTop -> Order.Filter.AtTopBot.Floor.tendsto_ceil_atTop
- Topology.Algebra.Order.Floor.tendsto_ceil_atBot -> Order.Filter.AtTopBot.Floor.tendsto_ceil_atBot
---
Tracked in #7987
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
|
22/25 |
Mathlib/Order/Filter/AtTopBot/Floor.lean,Mathlib/Topology/Algebra/Order/Floor.lean |
2 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
3-5395 3 days ago |
6-59725 6 days ago |
6-59503 6 days |
| 35187 |
bilichboris author:bilichboris |
feat(GroupTheory): establish that every finite left cancellative monoid is a group |
This PR closes a todo in the GroupTheory module.
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
maintainer-merge
|
8/1 |
Mathlib/GroupTheory/OrderOfElement.lean |
1 |
8 |
['bilichboris', 'github-actions', 'riccardobrasca', 'robin-carlier'] |
nobody |
2-46277 2 days ago |
4-44245 4 days ago |
5-29057 5 days |
| 26160 |
oliver-butterley author:oliver-butterley |
feat(MeasureTheory.VectorMeasure): add several lemmas which characterize variation |
Add the following lemmas concerning variation of a VectorMeasure:
* `norm_measure_le_variation`: `‖μ E‖ₑ ≤ variation μ E`.
* `variation_neg`: `(-μ).variation = μ.variation`.
* `variation_zero`: `(0 : VectorMeasure X V).variation = 0`.
* `absolutelyContinuous`
Co-authored-by: @yoh-tanimoto
- [x] depends on: #26156
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
238/4 |
Mathlib.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/PreVariation.lean,Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/Order/Partition/Finpartition.lean |
8 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
nobody |
2-31259 2 days ago |
4-72017 4 days ago |
20-60192 20 days |
| 34267 |
Brian-Nugent author:Brian-Nugent |
feat(Topology/Algebra): Add API for Sheaves of abelian groups |
in preparation for proving results on sheaf cohomology.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
89/1 |
Mathlib.lean,Mathlib/Algebra/Category/Grp/AB.lean,Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean,Mathlib/Topology/Sheaves/AddCommGrpCat.lean |
4 |
24 |
['Brian-Nugent', 'dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
2-19011 2 days ago |
2-18306 2 days ago |
19-20262 19 days |
| 35386 |
Brian-Nugent author:Brian-Nugent |
feat: CategoryTheory.toSheafify induces an isomorphism on stalks |
The main result `TopCat.Presheaf.stalkFunctor_map_unit_toSheafify_isIso` says that for a presheaf on a topological space, the induced map on stalks of `CategoryTheory.toSheafify` is an isomorphism. This is similar to `TopCat.Presheaf.sheafifyStalkIso` defined in the same file except that the latter is only for sheaves of Types.
The proof involved the abstract nonsense `CategoryTheory.Adjunction.isIso_map_unit_of_isLeftAdjoint_comp` which should probably go in a different file but feels too specific to go into any of the files in `CategoryTheory.Adjunction`.
Suggestions are very welcome.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
t-topology
t-category-theory
new-contributor
|
53/1 |
Mathlib/Topology/Sheaves/Sheafify.lean,Mathlib/Topology/Sheaves/Skyscraper.lean |
2 |
2 |
['github-actions'] |
nobody |
2-15224 2 days ago |
2-14530 2 days ago |
2-14308 2 days |
| 35174 |
nielsvoss author:nielsvoss |
feat(Analysis/InnerProductSpace): a linear map composed with its adjoint is symmetric |
Add theorems about `LinearMap.IsSymmetric` that match some theorems for `LinearMap.IsPositive`.
Mathlib contains stronger versions of some of these, like `LinearMap.IsPositive.self_comp_adjoint`, but having a dedicated version for `LinearMap.IsSymmetric` is advantageous, especially when used with `LinearMap.IsSymmetric.eigenvalues`.
---
One thing that I am uncertain about is if I should add similar lemmas for `ContinuousLinearMap` to even better match the `IsPositive` API, and if so, whether these theorems should be stated in terms of `IsSymmetric` or `IsSelfAdjoint`.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
22/1 |
Mathlib/Analysis/InnerProductSpace/Adjoint.lean |
1 |
3 |
['github-actions', 'themathqueen'] |
sgouezel assignee:sgouezel |
2-5385 2 days ago |
5-32286 5 days ago |
5-55542 5 days |
| 35193 |
Brian-Nugent author:Brian-Nugent |
feat(Topology/Closeds): implement category of closed sets in topologi… |
…cal spaces
I copied over the nice API for working with `TopologicalSpace.Opens` as a category over for `TopologicalSpace.Closeds`. The only thing that did not immediately transfer was `Topology.IsInducing.functorObj` so I omitted it.
Based on work of @kim-em
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
385/0 |
Mathlib.lean,Mathlib/Topology/Category/TopCat/Closeds.lean |
2 |
2 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
2-5378 2 days ago |
5-24604 5 days ago |
5-24382 5 days |
| 34209 |
mike1729 author:mike1729 |
feat(Analysis/Normed): Schauder basis definition and characterization via projections |
A Schauder basis is a fundamental concept in functional analysis, providing a way to represent every element of a Banach space as a unique convergent series. This PR adds the core structures, some theorems necessary to work with these bases and a characterization of a Schauder basis using projections.
This PR is based on Chapter 1. from Albiac, F., & Kalton, N. J. (2016). Topics in Banach Space Theory.
This is a first PR in a series of three aiming for Eberlein-Smulyan Theorem. The next one will contain theory of basic sequences and the final one will contain a proof of Eberlein-Smulyan Theorem using basic sequences.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
549/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/Bases.lean,docs/references.bib |
3 |
124 |
['Ruben-VandeVelde', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'mike1729', 'sgouezel', 'themathqueen'] |
sgouezel assignee:sgouezel |
1-78750 1 day ago |
1-78762 1 day ago |
16-38674 16 days |
| 35402 |
samueloettl author:samueloettl |
feat(Dynamics/BirkhoffSum): birkhoffAverage const |
---
I think this might be useful.
My feeling tells me that one of these should be a simp lemma.
I'm not really sure if I got the naming of the theorems correct.
Also I think it is somewhat debatable if these theorems should be generalized to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0.
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
|
26/3 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
2 |
['github-actions'] |
nobody |
1-48533 1 day ago |
1-47863 1 day ago |
1-47641 1 day |
| 35300 |
Ljon4ik4 author:Ljon4ik4 |
feat: Semi-direct sum of Lie algebras |
In this PR a construction of the [semi-direct sum of two Lie algebras](https://en.wikipedia.org/wiki/Lie_algebra_extension#By_semidirect_sum) is added.
It is shown that the resulting object $H\rtimes G$ is a Lie algebra and that it fits into an exact sequence
$H \to H\rtimes G \to G$.
I was not sure about multiple things and would be very grateful for feedback:
- Currently the semidirect product is created via a def as a type synonym of $H\times G$ so one can define a new bracket on it, which need not coincide with the standard 'direct sum' bracket. This is analogous to e.g. `PointedContMDiffMap` in `Mathlib.Geometry.Manifold.DerivationBundle`. An alternative way would creating a structure with $H$ and $G$ as fields. This seems to be the way chosen in `Mathlib.GroupTheory.SemidirectProduct.lean`.
- Currently it is created as a separate file, but it could also be added to the `Mathlib.Algebra.Lie.Extension` file.
- I am not fully happy with some of the proofs, especially the `leibniz_lie` in the `LieRing` instance, but did not manage to get it more elegant.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
139/0 |
Mathlib.lean,Mathlib/Algebra/Lie/SemiDirect.lean |
2 |
2 |
['github-actions'] |
ocfnash assignee:ocfnash |
1-39186 1 day ago |
3-42156 3 days ago |
3-41934 3 days |
| 34624 |
homeowmorphism author:homeowmorphism |
feat(GroupTheory/FreeGroup/Basic): surjection between types induces surjection between free groups |
feat(GroupTheory/FreeGroup/Basic): adds the theorem that if `α` and `β` are arbitrary types and there is a surjection between them, then the induced FreeGroup.map is also surjective.
This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236.
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
|
14/3 |
Mathlib/GroupTheory/FreeGroup/Basic.lean |
1 |
23 |
['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'mathlib-merge-conflicts', 'tb65536', 'vlad902'] |
nobody |
1-29535 1 day ago |
1-27624 1 day ago |
11-70014 11 days |
| 35010 |
parabamoghv author:parabamoghv |
style(CategoryTheory/Monoidal): add notation for whiskerLeftIso and whiskerRightIso |
The PR adds the notation " ◁ᵢ " and " ▷ᵢ " for whiskerLeftIso and whiskerRightIso, respectively.
Motivation:
1. There is a notation " ⊗ᵢ " for tensorIso; this is consistent.
2. In my other PR, I had to use whiskerLeftIso. I thought the notation would be neat.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
|
13/1 |
Mathlib/CategoryTheory/Bicategory/Basic.lean,Mathlib/CategoryTheory/Monoidal/Category.lean |
2 |
8 |
['github-actions', 'parabamoghv', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-24587 1 day ago |
1-24626 1 day ago |
2-19760 2 days |
| 34621 |
homeowmorphism author:homeowmorphism |
feat(GroupTheory/FreeGroup/Basic): `FreeGroup Empty ≃* Unit`, `FreeGroup Empty ≃* PUnit` and `FreeGroup Unit ≃* Multiplicative ℤ` |
feat(GroupTheory/FreeGroup/Basic): defines the free group on one element as isomorphic multiplicatively to ℤ.
This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236.
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
|
45/6 |
Mathlib/GroupTheory/FreeGroup/Basic.lean |
1 |
35 |
['b-mehta', 'copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'tb65536'] |
nobody |
1-19271 1 day ago |
1-27155 1 day ago |
8-30059 8 days |
| 35017 |
robo7179 author:robo7179 |
feat(Combinatorics/SimpleGraph/Acyclic): add every nontrivial tree has atleast two leaves |
Added two theorems to prove that every non trivial tree has atleast two leaves (one in Finite the other in Acyclic).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
94/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean |
2 |
24 |
['IvanRenison', 'SnirBroshi', 'github-actions', 'robo7179'] |
nobody |
1-19250 1 day ago |
1-20694 1 day ago |
7-24471 7 days |
| 34295 |
Yu-Misaka author:Yu-Misaka |
chore: drop `PartialOrder` in `IsOrderedMonoid` instances |
This PR attempts to remove `PartialOrder` assumption in `IsOrderedMonoid`. The main objective is to make [Finsupp.sum_le_sum](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finsupp/Order.html#Finsupp.sum_le_sum) available for preorder.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
t-order
label:t-algebra$ |
149/123 |
Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/Group/Subgroup/Order.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/BigOperators/Group/Finset.lean,Mathlib/Algebra/Order/BigOperators/Group/List.lean,Mathlib/Algebra/Order/BigOperators/Group/Multiset.lean,Mathlib/Algebra/Order/Group/Defs.lean,Mathlib/Algebra/Order/Group/Units.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval/Basic.lean,Mathlib/Algebra/Order/Monoid/Associated.lean,Mathlib/Algebra/Order/Monoid/Basic.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Monoid/OrderDual.lean,Mathlib/Algebra/Order/Monoid/Prod.lean,Mathlib/Algebra/Order/Monoid/Submonoid.lean,Mathlib/Algebra/Order/Monoid/TypeTags.lean,Mathlib/Algebra/Order/Monovary.lean,Mathlib/Algebra/Order/Pi.lean,Mathlib/Algebra/Order/UpperLower.lean,Mathlib/Analysis/Normed/Order/UpperLower.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/MeasureTheory/Function/SimpleFunc.lean,Mathlib/Order/Filter/AtTopBot/Monoid.lean,Mathlib/Order/Filter/Germ/OrderedMonoid.lean,Mathlib/Order/Filter/IsBounded.lean,Mathlib/Order/Filter/Pointwise.lean,Mathlib/Tactic/Positivity/Finset.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean,Mathlib/Topology/Algebra/Order/UpperLower.lean |
32 |
16 |
['Citronhat', 'MichaelStollBayreuth', 'Yu-Misaka', 'copilot-pull-request-reviewer', 'github-actions', 'leanprover-radar'] |
Vierkantor assignee:Vierkantor |
1-5405 1 day ago |
6-54160 6 days ago |
25-29114 25 days |
| 35097 |
pevogam author:pevogam |
feat: add a LE version Rat.lt_one_iff_num_le_denom theorem |
The following is more useful due to the partial order application of LE in comparison to LT.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
2/0 |
Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean |
1 |
6 |
['github-actions', 'pevogam', 'wwylele'] |
kim-em assignee:kim-em |
1-5399 1 day ago |
4-54222 4 days ago |
7-13724 7 days |
| 33985 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): `OmegaCompletePartialOrder` instance for `Sum` with basic `ωScottContinuous` lemmas |
This PR adds an `OmegaCompletePartialOrder` instance for `Sum`, along with `ωScottContinuous` lemmas for basic operations (`inl`, `inr`, `elim`). Appropriate lemmas are marked with `@[fun_prop]` so that the `fun_prop` tactic can automatically deduce `ωScottContinuous` proofs for functions involving `Sum`s (e.g. see the proof of `Sum.ωScottContinuous_map`).
---
- [x] depends on: #33941
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-order
|
191/1 |
Mathlib/Data/Sum/Basic.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/ScottContinuity.lean |
4 |
20 |
['Vierkantor', 'YellPika', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
1-396 1 day ago |
0-84453 23 hours ago |
13-61757 13 days |
| 34578 |
dennj author:dennj |
feat: define Boolean circuits over abstract gate families |
This PR introduces a foundation for Boolean circuits parameterized by abstract gate families.
## Main definitions
- `GateEval`: typeclass for gate families with Boolean semantics
- `GateHom`: arity-preserving maps between gate families
- `Circuit`: inductive type representing circuit syntax trees
- `AC0Gate`, `ACC0Gate`, `TC0Gate`: standard complexity-theoretic gate bases
## Design notes
The key design choice is to keep **syntax** (gate labels `G : Nat → Type`) separate from
**semantics** (`GateEval.eval`), allowing users to define custom gate families (e.g., MAJ, XOR,
arbitrary threshold gates) without modifying core definitions.
### Tree vs DAG representation
We evaluated two approaches for circuit representation:
1. **Tree-based** (this PR): Circuits as inductive syntax trees
2. **DAG-based**: Circuits as lists of gates with index-based references
We chose tree-based circuits because:
- **Compositionality**: Easy to build circuits via `gate g (fun i => subcircuit i)`
- **Type safety**: Arity-indexed gates (`G : Nat → Type`) catch errors at compile time
- **Manipulation**: Natural support for `mapGate`, `subst`, `mapInputs`
- **Mathlib philosophy**: Aligns with structural/compositional reasoning patterns
For use cases requiring explicit sharing (complexity analysis, evaluation efficiency),
a separate `DAG` type can be added later with proven equivalence via `Circuit.toDAG`.
The current representation serves as a minimal foundation for size/depth measures,
circuit families, and complexity classes (AC0, ACC0, TC0).
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-computability
|
919/0 |
Mathlib.lean,Mathlib/Computability/Circuit/Basic.lean,Mathlib/Computability/Formula/Basic.lean,Mathlib/Computability/Gate.lean |
4 |
18 |
['LLaurance', 'YuvalFilmus', 'dennj', 'github-actions'] |
nobody |
0-85254 23 hours ago |
0-85254 23 hours ago |
8-28708 8 days |
| 34713 |
dennj author:dennj |
feat(Probability/Markov): stationary distributions for stochastic matrices |
This PR proves that every row-stochastic matrix on a finite nonempty
state space has a stationary distribution in the standard simplex.
Main additions to `Mathlib/Probability/Markov/Stationary.lean`:
- `IsStationary`: A distribution μ is stationary for matrix P if μ ᵥ* P = μ
- `cesaroAverage`: Cesàro average of iterates of a vector under a matrix
- `Matrix.rowStochastic.exists_stationary_distribution`: existence theorem
The proof uses Cesàro averaging: start with uniform distribution, form
averages, extract convergent subsequence by compactness, show limit is
stationary via L¹ non-expansiveness.
Also adds `vecMul_mem_stdSimplex` to `Stochastic.lean`: multiplying a
probability vector by a row-stochastic matrix preserves simplex membership. |
t-algebra
new-contributor
label:t-algebra$ |
231/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Stochastic.lean,Mathlib/Probability/Markov/Stationary.lean |
3 |
6 |
['dennj', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts'] |
nobody |
0-85222 23 hours ago |
0-85222 23 hours ago |
1-28423 1 day |
| 27953 |
CoolRmal author:CoolRmal |
feat(ProbabilityTheory): Conditional Jensen's Inequality |
This PR adds conditional Jensen's inequality. I made some changes to Mathlib/Analysis/Convex/Approximation.lean because I need the sequence of affine functions to be bouneded above at each point.
---
- [x] depends on: #31411
- [x] depends on: #31399
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
130/20 |
Mathlib.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean |
4 |
8 |
['CoolRmal', 'EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
sgouezel assignee:sgouezel |
0-83631 23 hours ago |
0-82963 22 hours ago |
20-36950 20 days |
| 33746 |
ster-oc author:ster-oc |
feat(Algebra/Module/ZLattice): align `ZSpan.floor` to `Int.floor` API |
This PR adds some of the existent lemmas about `Int.floor`, `Int.ceil` and `Int.fract` to the `ZSpan` namespace.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
353/145 |
Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Topology/Algebra/Order/Floor.lean |
3 |
7 |
['github-actions', 'joelriou', 'mathlib-merge-conflicts', 'ster-oc'] |
joelriou assignee:joelriou |
0-65763 18 hours ago |
0-65975 18 hours ago |
25-3912 25 days |
| 35436 |
daniel-carranza author:daniel-carranza |
feat(CategoryTheory/Monoidal/Closed): Prove the isomorphism of internal hom objects C(x \otimes y, z) and C(y, C(x, z)) |
Prove the currying-uncurrying isomorphism `C(x \otimes y, z) \iso C(y, C(x, z))` between internal hom objects of a closed monoidal category `C`.
---
This result is connected to the infinity-cosmos project, and is used to prove that a closed monoidal category enriched in itself admits all cotensors.
Line 81 currently contains a one-line proof in tactics mode `exact rfl`. When trying to use `rfl` outside of tactics mode, an error is thrown. Any help with this (or any other aspect of the formalization) is greatly appreciated!
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-category-theory
infinity-cosmos
|
84/0 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Closed/InternalCurrying.lean |
2 |
4 |
['github-actions', 'robin-carlier'] |
nobody |
0-57714 16 hours ago |
0-61024 16 hours ago |
0-60802 16 hours |
| 35451 |
samueloettl author:samueloettl |
feat(MeasureTheory.Function): compMeasurePreserving_iterate |
---
These are useful for dynamics/ergodic theory.
Possibly some of these could be simp lemmas but I'm not confident enough to say that they are so I didn't mark them as such.
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
32/0 |
Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean |
2 |
2 |
['github-actions'] |
nobody |
0-34894 9 hours ago |
0-33822 9 hours ago |
0-33600 9 hours |
| 35422 |
PrParadoxy author:PrParadoxy |
feat(Analysis/LocallyConvex/WeakDual): Weak Representation Theorem |
This PR uses the material in Topology/Algebra/Module/WeakBilin.lean from the unfinished PR #26345 by @mans0954.
Given a bilinear form `B : E →ₗ[𝕜] F →ₗ[𝕜] 𝕜`, every continuous functional on `E` endowed with the `σ(E, F; B)`-topology is of the form `x ↦ B(x, y)` for some `y : F`.
The result doesn't generally seem to be named, but Narici-Beckenstein's "Topological Vector Spaces" calls it the "weak representation theorem", a term we have used for the docstring.
---
Changes compared to #26345:
* We have moved the material to `Analysis/LocallyConvex/WeakDual`, as this is where the supporting result `mem_span_iff_continuous` ended up. (C.f. PR #27316)
* `dualEmbedding_surjective` is now much shorter and should no longer rely on defeqs.
Co-authored-by: Christopher Hoskin |
t-analysis
new-contributor
|
31/0 |
Mathlib/Analysis/LocallyConvex/WeakDual.lean |
1 |
3 |
['github-actions'] |
nobody |
0-32246 8 hours ago |
1-12788 1 day ago |
1-12566 1 day |
| 34937 |
tannerduve author:tannerduve |
feat(Computability): semilattice instance on Turing degrees |
This PR equips `TuringDegree` with a `SemilatticeSup` structure by introducing the Turing join, proving usual least-upper-bound properties, and lifting these to degrees (quotients). In support of this, it extends the existing `RecursiveIn` API with some lemmas used in the degree theory.
The main contribution is the `SemilatticeSup` instance on `TuringDegree`. We define the Turing join as follows
```
turingJoin (f g) : ℕ → ℕ -- notation: f ⊕ g
```
and prove it is a least upper bound:
* `left_le_join`, `right_le_join`
* `join_le`
* monotonicity and congruence lemmas (`join_mono`, `join_congr`)
We lift this to degrees in `TuringDegree.sup`, `TuringDegree.le_sup_left`, `TuringDegree.le_sup_right`, and `TuringDegree.sup_le`
```
instance : SemilatticeSup TuringDegree
```
**New additions to `RecursiveIn.lean`:**
- `liftPrim`, `liftPrimrec`, `RecursiveIn'`, `ComputableIn`, `ComputableIn₂`: Encodes partial/total functions between `Primcodable` types as `ℕ →. ℕ`, analogous to `Partrec`/`Computable`.
- `of_eq`, `of_eq_tot`, `of_primrec`, `some`, `none`, `mono`, `subst`: Standard closure properties for `RecursiveIn`.
- `cond_const`, `cond_core_rfind`, `cond`, `ComputableIn.cond`: Shows `RecursiveIn` is closed under conditionals when the guard is absolutely computable
- `Nat.Partrec.recursiveIn`, `Computable.computableIn`: Every partrec/computable function is recursive in any oracle set.
Small addition to `Partrec`
we add to `Mathlib.Computability.Partrec` a small helper def (`Partrec.kronecker` and related `rfind` lemmas) representing the function that returns 1 if its two (unpaired) arguments are equal, and 0 otherwise, which is used in the proof of `cond`
## TODO
Some current `RecursiveIn` proofs such as `cond_core_rfind` still work directly with the inductive constructors and are thus very long. A follow up could add a combinator-style closure library by essentially relativizing all the results and lemmas in `Partrec`, and proofs could be golfed heavily as they are in `Partrec`
## Note: AI Usage
[Aleph prover](https://logicalintelligence.com/aleph-coding-ai/) was allowed to prove an earlier version of `cond_core_rfind`, which included stating and proving the lemma `cond_const` but the proofs have since been iterated on manually
Cursor was allowed to run git commands and edit docstrings/headers, and was used in setting up the module structure of the files |
t-computability
new-contributor
large-import
|
644/63 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
14 |
['eric-wieser', 'github-actions', 'plp127', 'tannerduve', 'vihdzp'] |
nobody |
0-24433 6 hours ago |
0-23766 6 hours ago |
9-69185 9 days |
| 34068 |
leomayer1 author:leomayer1 |
feat: give functor categories an instance of `HasBinaryBiproducts` |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
maintainer-merge
|
74/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/FunctorCategory/BinaryBiproducts.lean |
2 |
12 |
['dagurtomas', 'github-actions', 'leomayer1'] |
dagurtomas assignee:dagurtomas |
0-21621 6 hours ago |
0-20764 5 hours ago |
1-14079 1 day |
| 34777 |
sqrt-of-2 author:sqrt-of-2 |
feat(Combinatorics/SetFamily/Intersecting): L-intersecting families |
Define L-intersecting families and establish their basic properties.
A family 𝒜 of finsets is L-intersecting if all pairwise intersection sizes of members of 𝒜 belong to L ⊆ ℕ.
From LeanCamCombi.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
81/2 |
Mathlib/Combinatorics/SetFamily/Intersecting.lean |
1 |
9 |
['YaelDillies', 'b-mehta', 'github-actions'] |
b-mehta assignee:b-mehta |
0-19448 5 hours ago |
0-18482 5 hours ago |
14-34235 14 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 |
5 |
['dennj', 'eric-wieser', 'github-actions', 'themathqueen'] |
pechersky assignee:pechersky |
0-11414 3 hours ago |
3-76160 3 days ago |
13-16410 13 days |
| 34137 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Remove `injectiveSeminorm` |
Currently, `injectiveSeminorm` is extensionally equal to `projectiveSeminorm`. Both implement what is commonly called the "projective tensor norm".
# Background
(C.f. [[Diestel et al.]](https://www.ams.org/bookstore/pspdf/mbk-52-prev.pdf)). On the algebraic tensor product of two Banach spaces X, Y, there are two distinguished norms. First the projective norm, or "largest reasonable crossnorm". Two equivalent expressions for it are:
(L1) `‖u‖_∧ = sup { sum_i ‖x_i‖ ‖y_i‖ | sum_i x_i ⊗ y_i = u }`,
(L2) `‖u‖_∧ = norm of the linear map that sends b : B(X,Y; 𝕂) to (lift b) u`,
where `B(X,Y; Z)` is the set of bounded bilinear maps into a normed space `Z`.
Second, there is the injective norm, or "smallest reasonable crossnorm":
(S) `‖u‖_∨` = norm of the bilinear map that sends `f : X', g : Y'` to `(f⊗g) u`.
# Mathlib
The formalization treats tensor products of seminormed spaces over normed fields. In this context, `projectiveSeminorm` implements (L1). But `injectiveSeminorm u` doesn't implement (S), but the following variant of (L2):
(L2') `sup_Z { norm of map sending b : B(X,Y; Z) to (lift b) u }.`
In fact, `injectiveSeminorm = projectiveSeminorm `. The upper bound is proven in Mathlib. Equality is attained (somewhat tautologically) by choosing `Z` to be `X ⊗ Y` endowed with the projective seminorm.
`projectiveSeminorm` is defined first; `injectiveSeminorm` builds on it. Then the theory of an isometric version of `PiTensorProduct.lift` is based on `injectiveSeminorm`.
# Proposed change
This PR deprecates `injectiveSeminorm` and ports all applications to (L1). This doesn't actually require too much work, leads to the same mathematical theory, and significantly reduces complexity (and potential for confusion!).
There is a [companion PR](https://github.com/leanprover-community/mathlib4/pull/33969) which formalizes the equality of the current definitions and has a WIP / RFC implementation of the injective seminorm as commonly understood.
Deprecations:
- injectiveSeminorm
- injectiveSeminorm_apply
- norm_eval_le_injectiveSeminorm
- injectiveSeminorm_le_projectiveSeminorm
- injectiveSeminorm_tprod_le
- Mathlib.Analysis.Normed.Module.PiTensorProduct.InjectiveSeminorm
---
Co-authored-by: Davood H. H. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
167/207 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean |
3 |
18 |
['Ruben-VandeVelde', 'dupuisf', 'github-actions', 'goliath-klein', 'robin-carlier', 'tb65536'] |
dupuisf assignee:dupuisf |
0-10246 2 hours ago |
0-30024 8 hours ago |
25-83816 25 days |
| 35118 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): introduce truncFinset to unify truncations |
Resolves the TODO in MvPowerSeries/Trunc.lean by implementing a general truncation map `truncFinset`, which paves the way for unifying strict and non-strict truncations and defining other truncations
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
large-import
|
132/144 |
Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
2 |
23 |
['BryceT233', 'chrisflav', 'github-actions', 'wwylele'] |
chrisflav assignee:chrisflav |
0-9760 2 hours ago |
0-9760 2 hours ago |
5-45982 5 days |
| 35465 |
MixedMatched author:MixedMatched |
feat(Data/Multiset/Powerset): show injectivity and monotonicity of powerset |
Add Injective, Monotone, and StrictMono proofs for `Multiset.powerset`. Also, add a theorem showing that the sizes of two powersets are bidirectionally related to the sizes of the underlying Multisets (`le_powerset_iff_le`), a couple of other small `Multiset.powerset` lemmas, and theorems for append and map for `List.Subperm`.
Also, thanks to Ruben Van de Velde for looking this over on the Zulip!
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
62/0 |
Mathlib/Data/List/Perm/Subperm.lean,Mathlib/Data/List/Sublists.lean,Mathlib/Data/Multiset/Powerset.lean |
3 |
2 |
['github-actions'] |
nobody |
0-7867 2 hours ago |
0-6504 1 hour ago |
0-6282 1 hour |
| 28546 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… |
This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`.
Summary of additions:
- **Full shift and shift action**
- `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type).
- Right shift `shift g x` with convention `(shift g x) h = x (h * g)`.
- **Cylinders and topology**
- `cylinder U x : Set (G → A)` for finite `U : Finset G`.
- Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed.
- Equality with dependent products:
`cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API.
- **Patterns, occurrences, and subshifts**
- `Pattern A G` with finite `support : Finset G` and `data : support → A`.
- `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law.
- `forbids F` and `Subshift A G` (closed, shift-invariant subsets).
- `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness.
- **Language on finite shapes and counting**
- `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`.
- **Entropy along a shape sequence**
- `limsupAtTop` (as an `sInf` of eventual upper bounds).
- `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)`
for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`).
- **Specializations**
- `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`.
- `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`.
Mathematical remarks:
- The API is **shape-parametric**: entropy is defined along user-provided finite shapes.
- On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss).
This PR does not assume amenability; the family of shapes is an explicit input.
Motivation:
Provide a clean, reusable base for symbolic dynamics on groups in mathlib.
Future work:
- Add a Følner predicate and prove shape-independence / limit existence on amenable groups.
- Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors).
- Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch).
|
t-dynamics
new-contributor
|
746/0 |
Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean |
3 |
180 |
['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] |
sgouezel assignee:sgouezel |
0-6883 1 hour ago |
0-6132 1 hour ago |
95-37766 95 days |
| 35272 |
jvanwinden author:jvanwinden |
feat(Topology/Instances/EReal): limsup of multiplication by a constant |
add an analogue of `limsup_const_mul_of_ne_top` which applies to `EReal` instead of `ENNReal`
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
16/0 |
Mathlib/Topology/Instances/EReal/Lemmas.lean |
1 |
4 |
['github-actions', 'jvanwinden', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
0-5384 1 hour ago |
3-57827 3 days ago |
4-21283 4 days |
| 35280 |
khwilson author:khwilson |
feat(Mathlib/Analysis/Polynomial/MahlerMeasure): Mahler Measure estimate in terms of supNorm |
The Mahler measure of a polynomial is bounded above by `√(p.natDegree + 1) * p.supNorm`. This is a tighter estimate than `(p.natDegree + 1) * p.supNorm`, which is implied by `mahlerMeasure_le_sum_norm_coeff`.
AI Usage: Claude Code (Opus 4.6) provided first drafts for several sorries in the main calc block. Gemini Pro was used for one-off looks ups of lemma names like `ae_restrict_iff'`. The final code was edited by me.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
80/0 |
Mathlib/Analysis/Polynomial/MahlerMeasure.lean |
1 |
2 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
0-5382 1 hour ago |
4-7636 4 days ago |
4-10380 4 days |
| 35315 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 3/5) |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
51/0 |
Mathlib/Analysis/Complex/CauchyIntegral.lean |
1 |
4 |
['SnirBroshi', 'github-actions'] |
j-loreaux assignee:j-loreaux |
0-5371 1 hour ago |
3-17402 3 days ago |
3-29760 3 days |
| 35317 |
mkaratarakis author:mkaratarakis |
feat: lemmas for the analytic part of the proof of the Gelfond–Schneider theorem (Part 5/5) |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
78/0 |
Mathlib.lean,Mathlib/NumberTheory/Transcendental/AnalyticPart2.lean |
2 |
2 |
['github-actions'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-5370 1 hour ago |
3-27249 3 days ago |
3-27027 3 days |
| 35467 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics): add Schreier graphs, Cayley graphs, and Cayley sum graphs |
## Summary
- Defines Schreier graphs and Cayley graphs as quivers with labeled edges, porting the approach from Lean 3 PR leanprover-community/mathlib3#18693 by @bottine, @YaelDillies, and @antoinelab01.
- Proves the labelling prefunctor is a covering for group actions, establishes reachability characterization, connectivity, and vertex-transitivity (right multiplication is a covering isomorphism).
- Provides concrete examples: cyclic groups ℤ/nℤ, symmetric groups S_n, and integers ℤ.
- Defines Cayley sum graphs as `SimpleGraph` where `Adj u v ↔ u ≠ v ∧ u + v ∈ s`, with translation properties and connection to circulant graphs.
## References
- Lean 3 PR: leanprover-community/mathlib3#18693 (Rémi Bottinelli, Yaël Dillies, Antoine Labelle)
- Lean 3 branch: https://github.com/leanprover-community/mathlib3/tree/geometric-group-theory
## New files
| File | Lines | Content |
|------|-------|---------|
| `Mathlib/Combinatorics/Quiver/Schreier.lean` | 770 | Core theory |
| `Mathlib/Combinatorics/Quiver/SchreierExamples.lean` | 183 | Examples |
| `Mathlib/Combinatorics/SimpleGraph/CayleySumGraph.lean` | 159 | Cayley sum graphs |
## Test plan
- [x] All three files build clean on latest master
- [x] No `sorry`
- [x] All public declarations have docstrings
- [x] `lake exe mk_all --check` passes
- [x] `lake exe runLinter` passes
## AI disclosure
This PR was developed with assistance from [Claude Code](https://claude.com/claude-code) (Anthropic's CLI tool). Claude Code was used for: writing proof scaffolding, debugging type errors, style cleanup (naming conventions, `fun ↦` syntax), rebasing onto upstream master, and PR preparation. All mathematical content, design decisions, and proof strategies were directed by the author. The code has been reviewed by the author and their advisor. |
t-combinatorics
new-contributor
|
1117/0 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/Schreier.lean,Mathlib/Combinatorics/Quiver/SchreierExamples.lean,Mathlib/Combinatorics/SimpleGraph/CayleySumGraph.lean |
4 |
2 |
['github-actions'] |
nobody |
0-2932 48 minutes ago |
0-3606 56 minutes ago |
0-3384 56 minutes |