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 |
| 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 |
34-72331 1 month ago |
34-71484 34 days ago |
45-54690 45 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 |
34-71672 1 month ago |
34-70133 34 days ago |
40-40154 40 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 |
34-71180 1 month ago |
34-70326 34 days ago |
40-40406 40 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 |
34-26095 1 month ago |
43-44991 43 days ago |
43-67776 43 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 |
33-48069 1 month ago |
33-47147 33 days ago |
44-79591 44 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 |
33-26111 1 month ago |
42-5111 42 days ago |
52-42261 52 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 |
33-26108 1 month ago |
41-28087 41 days ago |
41-43046 41 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 |
32-26118 1 month ago |
36-64876 36 days ago |
45-40120 45 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 |
31-26069 1 month ago |
35-3131 35 days ago |
59-73758 59 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 |
30-55408 1 month ago |
30-54657 30 days ago |
49-31502 49 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 |
30-7567 1 month ago |
41-31065 41 days ago |
42-62219 42 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 |
28-59910 1 month ago |
38-61328 38 days ago |
38-61272 38 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 |
28-35878 1 month ago |
28-35878 28 days ago |
80-66826 80 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 |
28-34705 1 month ago |
28-34705 28 days ago |
81-3674 81 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 |
28-26094 1 month ago |
31-47083 31 days ago |
31-48312 31 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 |
27-54984 27 days ago |
27-54362 27 days ago |
36-55065 36 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 |
26-83727 26 days ago |
26-82733 26 days ago |
35-38614 35 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 |
26-26202 26 days ago |
30-14737 30 days ago |
30-14681 30 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 |
26-26201 26 days ago |
29-55987 29 days ago |
29-55931 29 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 |
25-55895 25 days ago |
42-8399 42 days ago |
42-15171 42 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 |
25-50105 25 days ago |
25-48957 25 days ago |
43-43597 43 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 |
25-26196 25 days ago |
29-4222 29 days ago |
30-6942 30 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 |
25-26176 25 days ago |
28-50670 28 days ago |
28-50614 28 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 |
23-26188 23 days ago |
28-7557 28 days ago |
28-7501 28 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 |
23-26186 23 days ago |
34-69989 34 days ago |
40-43398 40 days |
| 29030 |
b-mehta author:b-mehta |
feat(Combinatorics): prove the Rado selection lemma |
Prove the Rado selection lemma, a generic result useful to prove a variety of compactness results in combinatorics. This generalises Konig's infinity lemma, and the de Bruijn-Erdos theorem, and allows the former to be conveniently stated in the language of sets rather than categories.
We leave these generalisations of results in mathlib to later PRs.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
132/0 |
Mathlib.lean,Mathlib/Combinatorics/Compactness.lean |
2 |
1 |
['github-actions'] |
nobody |
22-55059 22 days ago |
unknown |
unknown |
| 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 |
22-25921 22 days ago |
26-23584 26 days ago |
28-53476 28 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 |
22-25916 22 days ago |
28-39137 28 days ago |
28-39081 28 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 |
22-1647 22 days ago |
22-760 22 days ago |
84-49476 84 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 |
21-82083 21 days ago |
54-3858 54 days ago |
74-33497 74 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 |
21-26035 21 days ago |
24-85802 24 days ago |
24-85746 24 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 |
21-26034 21 days ago |
29-80094 29 days ago |
33-41416 33 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 |
21-26030 21 days ago |
29-65867 29 days ago |
29-65811 29 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 |
21-26026 21 days ago |
28-39054 28 days ago |
28-38998 28 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 |
20-62450 20 days ago |
20-61827 20 days ago |
20-62763 20 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 |
20-26185 20 days ago |
23-45529 23 days ago |
23-48468 23 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 |
20-19429 20 days ago |
20-18727 20 days ago |
23-42672 23 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 |
19-26168 19 days ago |
23-16305 23 days ago |
23-16249 23 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 |
18-66468 18 days ago |
18-65823 18 days ago |
31-66961 31 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 |
18-39063 18 days ago |
18-39063 18 days ago |
79-72727 79 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 |
18-33196 18 days ago |
18-32160 18 days ago |
29-13835 29 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 |
18-33179 18 days ago |
18-31467 18 days ago |
44-29797 44 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 |
18-26202 18 days ago |
24-29143 24 days ago |
29-21369 29 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 |
18-26201 18 days ago |
21-30784 21 days ago |
27-75517 27 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 |
17-26195 17 days ago |
21-28817 21 days ago |
21-28761 21 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 |
16-26193 16 days ago |
20-4517 20 days ago |
20-57499 20 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 |
16-26187 16 days ago |
19-42733 19 days ago |
19-42677 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 |
15-71679 15 days ago |
15-70927 15 days ago |
15-70871 15 days |
| 35414 |
joneugster author:joneugster |
feat(Cache): Allow arguments of the form `Mathlib.Data.+` which correspond to a folder but not a file |
This PR continues the work from #21838.
Original PR: https://github.com/leanprover-community/mathlib4/pull/21838 |
CI
t-meta
|
74/31 |
Cache/IO.lean,Cache/Main.lean |
2 |
2 |
['github-actions', 'joneugster'] |
eric-wieser assignee:eric-wieser |
15-54959 15 days ago |
unknown |
unknown |
| 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 |
15-54041 15 days ago |
unknown |
unknown |
| 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 |
15-46004 15 days ago |
25-81554 25 days ago |
25-81498 25 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 |
15-45314 15 days ago |
39-31793 39 days ago |
39-72065 39 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 |
15-45247 15 days ago |
34-86042 34 days ago |
34-85986 34 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 |
15-43402 15 days ago |
15-42746 15 days ago |
32-69014 32 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 |
15-40048 15 days ago |
15-41492 15 days ago |
21-45435 21 days |
| 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 |
15-28562 15 days ago |
17-23777 17 days ago |
17-27702 17 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 |
15-19652 15 days ago |
15-19652 15 days ago |
22-49672 22 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 |
14-84551 14 days ago |
14-83846 14 days ago |
15-37952 15 days |
| 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 |
14-65423 14 days ago |
14-63039 14 days ago |
50-32791 50 days |
| 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 |
14-61236 14 days ago |
45-85392 45 days ago |
99-83985 99 days |
| 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 |
14-41298 14 days ago |
14-40614 14 days ago |
15-70154 15 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 |
14-32212 14 days ago |
18-10558 18 days ago |
27-37374 27 days |
| 28546 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… |
This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`.
Summary of additions:
- **Full shift and shift action**
- `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type).
- Right shift `shift g x` with convention `(shift g x) h = x (h * g)`.
- **Cylinders and topology**
- `cylinder U x : Set (G → A)` for finite `U : Finset G`.
- Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed.
- Equality with dependent products:
`cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API.
- **Patterns, occurrences, and subshifts**
- `Pattern A G` with finite `support : Finset G` and `data : support → A`.
- `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law.
- `forbids F` and `Subshift A G` (closed, shift-invariant subsets).
- `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness.
- **Language on finite shapes and counting**
- `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`.
- **Entropy along a shape sequence**
- `limsupAtTop` (as an `sInf` of eventual upper bounds).
- `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)`
for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`).
- **Specializations**
- `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`.
- `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`.
Mathematical remarks:
- The API is **shape-parametric**: entropy is defined along user-provided finite shapes.
- On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss).
This PR does not assume amenability; the family of shapes is an explicit input.
Motivation:
Provide a clean, reusable base for symbolic dynamics on groups in mathlib.
Future work:
- Add a Følner predicate and prove shape-independence / limit existence on amenable groups.
- Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors).
- Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch).
|
t-dynamics
new-contributor
|
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 |
14-27681 14 days ago |
14-26930 14 days ago |
109-58730 109 days |
| 35360 |
vlad902 author:vlad902 |
chore: 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 |
13-59229 13 days ago |
16-58501 16 days ago |
16-58445 16 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'] |
b-mehta assignee:b-mehta |
13-26199 13 days ago |
25-29449 25 days ago |
37-68218 37 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 |
10 |
['bwangpj', 'dagurtomas', 'eric-wieser', 'github-actions', 'riccardobrasca'] |
dagurtomas assignee:dagurtomas |
13-1649 13 days ago |
41-81016 41 days ago |
41-83317 41 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'] |
b-mehta assignee:b-mehta |
12-26207 12 days ago |
24-49416 24 days ago |
24-49360 24 days |
| 34637 |
mcdoll author:mcdoll |
feat(Analysis/Distribution): support |
We define the support of distributions. The definition applies to both tempered and classical distributions, but for this PR we only prove some elementary statements for tempered distributions.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
241/0 |
Mathlib.lean,Mathlib/Analysis/Distribution/Support.lean |
2 |
14 |
['github-actions', 'lauramonk', 'mcdoll', 'urkud'] |
ADedecker assignee:ADedecker |
12-12418 12 days ago |
12-11742 12 days ago |
27-24923 27 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 |
4 |
['CoolRmal', 'github-actions', 'mcdoll'] |
thorimur assignee:thorimur |
12-9477 12 days ago |
12-8919 12 days ago |
40-4779 40 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'] |
ADedecker assignee:ADedecker |
11-26218 11 days ago |
14-38994 14 days ago |
29-10983 29 days |
| 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'] |
alexjbest assignee:alexjbest |
11-26206 11 days ago |
14-68738 14 days ago |
14-68682 14 days |
| 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'] |
kim-em assignee:kim-em |
11-26204 11 days ago |
14-59188 14 days ago |
14-59132 14 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'] |
RemyDegenne assignee:RemyDegenne |
11-26204 11 days ago |
14-54620 14 days ago |
14-54564 14 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'] |
kim-em assignee:kim-em |
11-26202 11 days ago |
14-36899 14 days ago |
14-36843 14 days |
| 33121 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Hasse): paths in a graph are isomorphic to path graphs |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
43/1 |
Mathlib/Combinatorics/SimpleGraph/Hasse.lean |
1 |
23 |
['MrQubo', 'SnirBroshi', 'erdOne', 'github-actions', 'jcommelin', 'mitchell-horner'] |
b-mehta assignee:b-mehta |
11-23073 11 days ago |
11-22496 11 days ago |
69-84848 69 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 |
11-19144 11 days ago |
27-23546 27 days ago |
27-23490 27 days |
| 33292 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/LineGraph): lift copies/isomorphisms to line-graph |
Non-injective homomorphisms (`G →g G'`) cannot be lifted to a homomorphism on line-graphs (`G.lineGraph →g G'.lineGraph`) because e.g. `∀ k > 1` there is a homomorphism from `pathGraph k` to `G'` iff `G'` has an edge, and `∀ n > 0, (pathGraph (n + 1)).lineGraph ≃ pathGraph n`, but there is no homomorphism from `pathGraph k` to `pathGraph 1` because it has no edges.
So for `G := pathGraph 3` and `G' := pathGraph 2` there is a `G →g G'` but no `G.lineGraph →g G'.lineGraph`.
But we can lift `Copy`/`Embedding`/`Iso`.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-combinatorics
|
45/4 |
Mathlib/Combinatorics/SimpleGraph/LineGraph.lean,Mathlib/Data/Sym/Sym2.lean |
2 |
6 |
['SnirBroshi', 'github-actions', 'tb65536'] |
b-mehta assignee:b-mehta |
11-18542 11 days ago |
11-19306 11 days ago |
64-75408 64 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 |
10-71275 10 days ago |
18-13793 18 days ago |
18-13737 18 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 |
53/0 |
Mathlib/Combinatorics/SimpleGraph/Bipartite.lean |
1 |
55 |
['LessnessRandomness', 'SnirBroshi', 'b-mehta', 'github-actions', 'vlad902'] |
awainverse assignee:awainverse |
10-68150 10 days ago |
10-68326 10 days ago |
34-68719 34 days |
| 34966 |
Deep0Thinking author:Deep0Thinking |
feat(MeasureTheory): add `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio` and `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic` |
This PR proves:
- `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio`
- `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic`
- `integral_Ioi_sub_Ioi`, `integral_Ioi_sub_Ioi'`, `integral_Iio_sub_Iio`, `integral_Iio_sub_Iio'`
- `Ioi_diff_Ioc`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
125/1 |
Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
3 |
14 |
['CoolRmal', 'Deep0Thinking', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
10-54659 10 days ago |
10-54166 10 days ago |
22-77917 22 days |
| 34144 |
IvanRenison author:IvanRenison |
feat(Data/ENat): add lemma `ENat.iInf_eq_coe_iff` |
Co-authored-by: SnirBroshi <26556598+SnirBroshi@users.noreply.github.com>
---
[Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/ENat.2EiInf_eq_nat_iff/with/568699219)
[](https://gitpod.io/from-referrer/)
|
t-data |
21/0 |
Mathlib/Data/ENat/Lattice.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
3 |
16 |
['IvanRenison', 'Ruben-VandeVelde', 'SnirBroshi', 'eric-wieser', 'github-actions', 'tb65536'] |
TwoFX assignee:TwoFX |
10-43247 10 days ago |
10-39841 10 days ago |
38-60831 38 days |
| 35615 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Maps): lemmas about support |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
41/0 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
1 |
['github-actions'] |
nobody |
10-30710 10 days ago |
10-30078 10 days ago |
10-30022 10 days |
| 35616 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Copy): `IsContained` and `IsIndContained` are preorders |
---
This makes `calc` work and provides `Std.Refl` and `IsTrans` instances.
`grw` still doesn't work and mixing the two predicates in `calc` (to prove `IsContained`) also doesn't work.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
20/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
1 |
['github-actions'] |
nobody |
10-29842 10 days ago |
10-29187 10 days ago |
10-29131 10 days |
| 35613 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Clique): use `IsContained` instead of an explicit embedding from top |
This makes theorems require only a proof that a `Copy` exists rather than provide an explicit `Embedding`.
Also tag monotonicity lemmas with `@[gcongr]`.
---
This isn't a generalization per-se since one could use choice plus `Copy.topEmbedding` to upgrade the `IsContained` to an embedding, but `IsContained` makes more sense in theorems.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
37/36 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean |
3 |
1 |
['github-actions'] |
nobody |
10-29736 10 days ago |
10-29133 10 days ago |
10-29077 10 days |
| 35619 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Clique): intersection and union of cliques |
Plus a couple of lemmas.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
29/0 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
1 |
['github-actions'] |
nobody |
10-27573 10 days ago |
10-26990 10 days ago |
10-26934 10 days |
| 30526 |
SnirBroshi author:SnirBroshi |
chore(Logic/Relation): use `≤` to spell subrelation |
Replace every `∀ x y, r x y → r' x y` with `r ≤ r'`
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
161/136 |
Mathlib.lean,Mathlib/Algebra/Category/Grp/FilteredColimits.lean,Mathlib/Algebra/Category/ModuleCat/FilteredColimits.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/CategoryTheory/Action.lean,Mathlib/CategoryTheory/ConnectedComponents.lean,Mathlib/CategoryTheory/Filtered/Connected.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/Types/Coequalizers.lean,Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/Combinatorics/Enumerative/DyckWord.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Computability/TMConfig.lean,Mathlib/Data/PFunctor/Multivariate/M.lean,Mathlib/Data/Quot.lean,Mathlib/FieldTheory/PerfectClosure.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/Order/Basic.lean,Mathlib/Order/Defs/Prop.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/Topology/Gluing.lean |
25 |
14 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'thorimur', 'vihdzp'] |
thorimur assignee:thorimur |
10-26983 10 days ago |
10-47675 10 days ago |
39-85974 39 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'] |
Vierkantor assignee:Vierkantor |
10-26182 10 days ago |
17-54984 17 days ago |
17-54928 17 days |
| 35622 |
SnirBroshi author:SnirBroshi |
feat(Logic/Function/Basic): `onFun` and `swap` preserve relation properties |
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
105/1 |
Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Function/Defs.lean,Mathlib/Order/Defs/Unbundled.lean |
3 |
4 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
9-76823 9 days ago |
9-73718 9 days ago |
10-12555 10 days |
| 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 |
9-42217 9 days ago |
9-41625 9 days ago |
24-1778 24 days |
| 35295 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): `dropLast` of a cycle is a path |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
18/1 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean |
2 |
6 |
['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
9-37616 9 days ago |
9-36909 9 days ago |
11-7535 11 days |
| 35504 |
JoaBjo author:JoaBjo |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property
Add the main analytic results for the exponential distribution:
- moment-generating function `mgf id (expMeasure r) t = r / (r - t)` for `t < r`
- mean `∫ x, x ∂(expMeasure r) = r⁻¹`
- variance `Var[id; expMeasure r] = r⁻¹ ^ 2`
- `ℒp` membership for all `p`
- tail probability `P(X > x) = exp (-(r * x))`
- memoryless property `P(X > s + t | X > s) = P(X > t)`
The MGF is computed by reducing to the known improper integral `∫ exp(c * x)` on `Ioi`,
and integrability is deduced by contradiction from the positive closed-form value.
The mean and variance are computed via the Gamma function integral
`∫₀^∞ x^(n-1) exp(-r x) dx = Γ(n) / rⁿ`. The memoryless property follows from
the exponential identity `exp(-(r(s+t))) = exp(-rt) * exp(-rs)`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
200/0 |
Mathlib/Probability/Distributions/Exponential.lean |
1 |
6 |
['JoaBjo', 'Timeroot', 'github-actions'] |
kex-y assignee:kex-y |
9-26207 9 days ago |
12-39746 12 days ago |
13-44918 13 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 |
12 |
['SnirBroshi', 'github-actions', 'themathqueen', 'vihdzp'] |
nobody |
9-619 9 days ago |
8-86295 8 days ago |
22-84145 22 days |
| 35682 |
chenson2018 author:chenson2018 |
chore(Computability/Partrec): remove `linter.flexible` exceptions |
This removes all `set_option linter.flexible false` from this module. Some proofs simply required moving around the usage of `simp`. For others I used `grind`, which is permitted to follow flexible tactics. In all cases I prioritized leaving the structure of the proof either mostly as-is or slightly improving readability.
---
[](https://gitpod.io/from-referrer/)
|
t-computability
maintainer-merge
|
23/41 |
Mathlib/Computability/Partrec.lean |
1 |
6 |
['chenson2018', 'github-actions', 'grunweg'] |
nobody |
8-34427 8 days ago |
8-33847 8 days ago |
8-55656 8 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$ |
332/1 |
Mathlib.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml |
4 |
21 |
['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib4-dependent-issues-bot', 'urkud', 'vihdzp', 'wwylele'] |
kex-y assignee:kex-y |
8-32819 8 days ago |
8-35516 8 days ago |
57-70136 57 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'] |
kmill assignee:kmill |
8-26206 8 days ago |
24-24689 24 days ago |
32-25432 32 days |
| 34599 |
cameronfreer author:cameronfreer |
feat(Logic/Equiv/Fintype): generalize toCompl and exists_extending_pair to finite source |
Generalize the Equiv subtype-extension API so it only needs finiteness of
the source subtype, then use that to drastically simplify
`Equiv.Perm.isMultiplyPretransitive`.
### Changes to `Logic/Equiv/Fintype.lean`
* **`Equiv.toCompl`**: generalize from `[Finite α]` to `[Finite {x | p x}]`.
New proof (due to tb65536) uses finset symmetric differences to avoid
needing finiteness of the ambient type.
* **`Equiv.extendSubtype`** and related lemmas: adapt to `[Finite {x | p x}]`.
* **`Equiv.Perm.exists_extending_pair`**: strengthen from `[Finite β]` to
`[Finite α]`. Given two injective functions `f, g : α → β` where `α` is
finite, there exists `σ : Perm β` with `σ ∘ f = g`. The target `β` can
now be infinite.
### Changes to `MultipleTransitivity.lean`
* **`Equiv.Perm.isMultiplyPretransitive`**: replace ~70-line manual
bijectivity construction with a two-line proof via
`exists_smul_eq_embedding`.
* **`exists_smul_eq_embedding`**: rewire to use `exists_extending_pair`
directly (removing the old cardinal-arithmetic proof
`exists_extending_pair_of_finite_source`).
### Application
Used in formalizing de Finetti's theorem (exchangeability ⇒ contractability):
https://github.com/cameronfreer/exchangeability/blob/03a854a2/Exchangeability/Contractability.lean#L459
Co-authored-by: tb65536 |
t-group-theory
new-contributor
|
49/77 |
Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/Logic/Equiv/Fintype.lean |
2 |
24 |
['LLaurance', 'cameronfreer', 'github-actions', 'mathlib-merge-conflicts', 'tb65536'] |
mattrobball assignee:mattrobball |
8-26205 8 days ago |
8-31029 8 days ago |
17-67374 17 days |
| 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'] |
Vierkantor assignee:Vierkantor |
8-26198 8 days ago |
14-70959 14 days ago |
14-70903 14 days |
| 35549 |
JovanGerb author:JovanGerb |
fix(Translate): don't look in arguments of free variables in `shouldTranslate` |
This PR addresses a `to_additive` limitation reported at [#mathlib4 > #35179 breaks to_additive call in FLT](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.2335179.20breaks.20to_additive.20call.20in.20FLT/with/574823087) by making sure `shouldTranslate` doesn't looks at the arguments of free variable applications
This PR refactors `shouldTranslate` in a few ways
- The monad is changed from `OptionT` to `ExceptT`, with the underlying type changing from `Option Expr` to `ExceptT Expr Unit`. Although this is technically a bit less efficient, it makes the program shorter and more intuitive, because a failure now actually corresponds to a monadic failure instead of a monadic success.
- When visiting a `Expr.app` node, we now loop through the whole application at once, instead of doing this step by step and checking the cache at each step. This allows us to detect when the head is a free variable, and skip its arguments. It also lets us deal with `ignoreArgsAttr` more naturally.
- This change removes the need for the `inApp : Bool` argument that used to be passed around in order to tell whether a constant was in an application.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
44/39 |
Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Tactic/Translate/ToDual.lean,MathlibTest/toAdditive.lean |
4 |
5 |
['JovanGerb', 'github-actions', 'leanprover-radar'] |
dwrensha assignee:dwrensha |
8-26193 8 days ago |
12-22703 12 days ago |
12-22647 12 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 |
269/0 |
Mathlib.lean,Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
2 |
6 |
['Parcly-Taxel', 'github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] |
JovanGerb assignee:JovanGerb |
8-24526 8 days ago |
8-23963 8 days ago |
21-65512 21 days |
| 35642 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Walks/Operations): `p.dropLast.length` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
12/1 |
Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean |
1 |
1 |
['github-actions', 'vlad902'] |
nobody |
7-80368 7 days ago |
9-76564 9 days ago |
9-76508 9 days |
| 31046 |
Thmoas-Guan author:Thmoas-Guan |
feat(Homology) : compatibility of map between `Ext` |
In this PR, we proved the compatibility of map between `Ext` induced by exact functor with
1: `mk_0` 2: `comp` 3: `extClass`
---
- [x] depends on: #31707
[](https://gitpod.io/from-referrer/) |
t-category-theory |
232/1 |
Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean |
4 |
20 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] |
eric-wieser assignee:eric-wieser |
7-70284 7 days ago |
7-70284 7 days ago |
16-14365 16 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 |
3 |
['MichaelStollBayreuth', 'bryangingechen', 'github-actions'] |
Vierkantor assignee:Vierkantor |
7-65724 7 days ago |
20-32401 20 days ago |
20-32345 20 days |
| 35631 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Walks/Operations): `p.dropLast.support` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
9/0 |
Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean |
1 |
2 |
['github-actions', 'vlad902'] |
nobody |
7-63480 7 days ago |
7-62871 7 days ago |
9-77668 9 days |
| 35493 |
xroblot author:xroblot |
feat(RamificationInertia): add `ramificationIdx_algebra_tower'` |
The result [Ideal.ramificationIdx_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.ramificationIdx_algebra_tower) is stated in a very general situation whereas most of its applications should be when there is a tower of prime ideals like in [Ideal.inertiaDeg_algebra_tower](https://leanprover-community.github.io/mathlib4_docs/Mathlib/NumberTheory/RamificationInertia/Basic.html#Ideal.inertiaDeg_algebra_tower).
This PR adds a version of `Ideal.ramificationIdx_algebra_tower` specialized to this case. The instances needed are stronger but there is no side condition. I believe that this corresponds to the more useful situation and thus I replaced all the use of `Ideal.ramificationIdx_algebra_tower` by the new version even if that means having to adjust the hypotheses.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
37/24 |
Mathlib/NumberTheory/NumberField/Cyclotomic/Ideal.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/Galois.lean,Mathlib/RingTheory/Localization/AtPrime/Extension.lean |
4 |
3 |
['MichaelStollBayreuth', 'github-actions', 'xroblot'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
7-54277 7 days ago |
7-53661 7 days ago |
7-53605 7 days |
| 35664 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): the adjacency matrix of empty and complete graphs |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
11/0 |
Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean |
1 |
2 |
['IvanRenison', 'github-actions'] |
nobody |
7-48169 7 days ago |
7-47457 7 days ago |
9-27562 9 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 |
7-30575 7 days ago |
17-62217 17 days ago |
17-75130 17 days |
| 35696 |
GrigorenkoPV author:GrigorenkoPV |
fix(Data/Rel): change what `image_eq_cod_of_dom_subset` states |
It used to be identical to its neighbor, `preimage_eq_dom_of_cod_subset`.
Both lemmas seem to have been introduced in #25587.
---
I think this is technically a breaking change? Not sure what has to be done here.
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
1/1 |
Mathlib/Data/Rel.lean |
1 |
2 |
['github-actions', 'vihdzp'] |
nobody |
7-28677 7 days ago |
unknown |
unknown |
| 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 |
64 |
['DavidLedvinka', 'RemyDegenne', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'kex-y', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'pfaffelh', 'themathqueen'] |
kex-y assignee:kex-y |
7-26871 7 days ago |
15-73687 15 days ago |
36-2488 36 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'] |
bryangingechen assignee:bryangingechen |
7-26186 7 days ago |
15-18851 15 days ago |
27-82721 27 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'] |
urkud assignee:urkud |
7-26185 7 days ago |
27-40376 27 days ago |
30-30548 30 days |
| 35042 |
JovanGerb author:JovanGerb |
chore: remove `meta` form `import Mathlib.Tactic...` |
This PR cleans up some imports of the form `import Mathlib.Tactic...`, by either removing them entirely, or removing the `meta` keyword. It should never be necessary to `meta import` a file from `Mathlib.Tactic`, because the relevant definitions should already have been marked as `meta`.
The motivation is to reduce the amount of files that are `meta` imported when writing e.g. `import Mathlib`, hence reducing the amount of stuff that needs to be loaded. There are more other `meta import`s that need to be removed, but this PR is a good start.
---
[](https://gitpod.io/from-referrer/)
|
large-import |
61/142 |
Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/Group/Action/Hom.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/CategoryTheory/Functor/Basic.lean,Mathlib/Data/List/ChainOfFn.lean,Mathlib/Dynamics/OmegaLimit.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean,Mathlib/Tactic/Algebraize.lean,Mathlib/Tactic/ApplyFun.lean,Mathlib/Tactic/ArithMult.lean,Mathlib/Tactic/Bound.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Normalize.lean,Mathlib/Tactic/CategoryTheory/Bicategory/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/CheckCompositions.lean,Mathlib/Tactic/CategoryTheory/Coherence/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean,Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/Elementwise.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/ToApp.lean,Mathlib/Tactic/Choose.lean,Mathlib/Tactic/DeclarationNames.lean,Mathlib/Tactic/DefEqTransformations.lean,Mathlib/Tactic/DeriveCountable.lean,Mathlib/Tactic/DeriveFintype.lean,Mathlib/Tactic/DeriveTraversable.lean,Mathlib/Tactic/ENatToNat.lean,Mathlib/Tactic/Explode.lean,Mathlib/Tactic/Explode/Pretty.lean,Mathlib/Tactic/FinCases.lean,Mathlib/Tactic/FunProp.lean,Mathlib/Tactic/FunProp/Attr.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/FunProp/Types.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Elab.lean,Mathlib/Tactic/Group.lean,Mathlib/Tactic/IrreducibleDef.lean,Mathlib/Tactic/Lift.lean,Mathlib/Tactic/Linarith.lean,Mathlib/Tactic/Linarith/Lemmas.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Gauss.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/SimplexAlgorithm.lean,Mathlib/Tactic/Linarith/Preprocessing.lean,Mathlib/Tactic/Linarith/Verification.lean,Mathlib/Tactic/LinearCombination/Lemmas.lean,Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean,Mathlib/Tactic/Linter/DocPrime.lean,Mathlib/Tactic/Linter/DocString.lean,Mathlib/Tactic/Linter/EmptyLine.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/Linter/GlobalAttributeIn.lean,Mathlib/Tactic/Linter/HashCommandLinter.lean,Mathlib/Tactic/Linter/Multigoal.lean,Mathlib/Tactic/Linter/OldObtain.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/TextBased/UnicodeLinter.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,Mathlib/Tactic/Linter/UnusedTacticExtension.lean,Mathlib/Tactic/MinImports.lean,Mathlib/Tactic/MoveAdd.lean,Mathlib/Tactic/Nontriviality/Core.lean,Mathlib/Tactic/NormNum/DivMod.lean,Mathlib/Tactic/NormNum/Ineq.lean,Mathlib/Tactic/NormNum/Prime.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/Order/CollectFacts.lean,Mathlib/Tactic/Order/Graph/Tarjan.lean,Mathlib/Tactic/PNatToNat.lean,Mathlib/Tactic/Peel.lean,Mathlib/Tactic/ProdAssoc.lean,Mathlib/Tactic/ProxyType.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/Qify.lean,Mathlib/Tactic/RSuffices.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Tactic/Ring/Common.lean,Mathlib/Tactic/Ring/Compare.lean,Mathlib/Tactic/Ring/PNat.lean,Mathlib/Tactic/Simproc/Divisors.lean,Mathlib/Tactic/Simproc/FinsetInterval.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/Subsingleton.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,Mathlib/Tactic/TautoSet.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/TagUnfoldBoundary.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CommDiag.lean,Mathlib/Tactic/Widget/CongrM.lean |
107 |
7 |
['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] |
dupuisf assignee:dupuisf |
7-26182 7 days ago |
10-75306 10 days ago |
14-52977 14 days |
| 35273 |
grunweg author:grunweg |
chore: replace `continuity` -> `fun_prop` in remaining auto-parameters |
Resurrected version of #13994. Let's look at the current fall-out and performance effect.
---
- [x] depends on: #35278
[](https://gitpod.io/from-referrer/)
|
t-topology |
23/16 |
Mathlib/Analysis/Convex/PathConnected.lean,Mathlib/Analysis/LocallyConvex/WeakSpace.lean,Mathlib/Analysis/SpecialFunctions/Arcosh.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/Category/ProfiniteGrp/Basic.lean,Mathlib/Topology/Algebra/ContinuousMonoidHom.lean,Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,Mathlib/Topology/Algebra/SeparationQuotient/Basic.lean,Mathlib/Topology/Category/TopCat/Limits/Products.lean,Mathlib/Topology/Category/TopCat/ULift.lean,Mathlib/Topology/ContinuousMap/Basic.lean,Mathlib/Topology/ContinuousMap/Defs.lean,Mathlib/Topology/FiberPartition.lean |
14 |
4 |
['github-actions', 'grunweg', 'leanprover-radar', 'mathlib-dependent-issues'] |
urkud assignee:urkud |
7-26181 7 days ago |
13-82519 13 days ago |
14-8830 14 days |
| 35481 |
FrankieeW author:FrankieeW |
chore(NumberTheory/Zsqrtd): inline duplicated order lemmas into instances |
This PR follows reviewer feedback by removing duplicated order/additive wrapper theorems in `Zsqrtd` and inlining the proofs into the corresponding typeclass instances.
Changes include:
- remove redundant wrappers such as `Zsqrtd.le_total`, `Zsqrtd.add_le_add_left`, `Zsqrtd.le_of_add_le_add_left`, `Zsqrtd.add_lt_add_left`, and `Zsqrtd.le_antisymm`
- keep the canonical API through `LinearOrder` / ordered additive structure fields
- update downstream use in `PellMatiyasevic` to the canonical theorem (`_root_.le_antisymm`)
This reduces namespace-level duplicate APIs and keeps proofs aligned with standard typeclass lemmas.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-number-theory
|
26/10 |
Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean |
2 |
8 |
['FrankieeW', 'github-actions', 'vihdzp'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
7-26178 7 days ago |
10-33618 10 days ago |
13-58988 13 days |
| 35565 |
felixpernegger author:felixpernegger |
feat(Topology): sequentially T2 spaces |
Adds typeclass for topoligcal spaces where convergent sequences have a unique limit. This lies between T2 and T1 and is occassionally useful when T2 is not strictly required.
An example of a non T2 space with unique limit is the one point compactification of Q.
There are some more implications not in this PR, see https://topology.pi-base.org/properties/P000099
In particular, (countably) compact sets are closed in sequentially T2 spaces.
|
t-topology |
135/0 |
Mathlib.lean,Mathlib/Topology/SequentiallyHausdorff.lean |
2 |
1 |
['github-actions'] |
urkud assignee:urkud |
7-26176 7 days ago |
11-72241 11 days ago |
11-72185 11 days |
| 35590 |
chrisflav author:chrisflav |
feat(Algebra): add `AlgHom.ulift` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
71/3 |
Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Ring/ULift.lean |
3 |
4 |
['chrisflav', 'github-actions', 'wwylele'] |
kim-em assignee:kim-em |
7-26171 7 days ago |
10-41005 10 days ago |
11-27081 11 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
|
67/0 |
Mathlib/Analysis/Polynomial/MahlerMeasure.lean |
1 |
12 |
['github-actions', 'j-loreaux', 'khwilson', 'mathlib-merge-conflicts'] |
j-loreaux assignee:j-loreaux |
7-19602 7 days ago |
7-18453 7 days ago |
17-22344 17 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
maintainer-merge
|
440/16 |
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/Order/UpperLower/Relative.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
8 |
30 |
['BoltonBailey', 'denisgorod', 'eric-wieser', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'peabrainiac'] |
j-loreaux assignee:j-loreaux |
7-13753 7 days ago |
7-10424 7 days ago |
19-6498 19 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 |
16 |
['YuvalFilmus', 'eric-wieser', 'github-actions', 'j-loreaux'] |
eric-wieser assignee:eric-wieser |
6-80311 6 days ago |
6-79529 6 days ago |
38-28286 38 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
|
215/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 |
7 |
['Komyyy', 'b-mehta', 'github-actions', 'joneugster', 'mathlib-merge-conflicts', 'zhuyizheng'] |
sgouezel assignee:sgouezel |
6-66375 6 days ago |
6-65510 6 days ago |
23-2880 23 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 |
6-64065 6 days ago |
6-62957 6 days ago |
56-75348 56 days |
| 30505 |
mariainesdff author:mariainesdff |
feat(NumberTheory/RatFunc/Ostrowski): prove Ostrowski's theorem for K(X) |
We prove Ostrowski's theorem for the field of rational functions `K(X)`, where `K` is any field.
Co-authored-by: @xgenereux
---
- [x] depends on: #30404
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-number-theory
label:t-algebra$ |
338/13 |
Mathlib.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/FieldTheory/RatFunc/Degree.lean,Mathlib/NumberTheory/FunctionField.lean,Mathlib/NumberTheory/RatFunc/Ostrowski.lean |
5 |
38 |
['MichaelStollBayreuth', 'alreadydone', 'github-actions', 'mariainesdff', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
6-60409 6 days ago |
6-60409 6 days ago |
9-12002 9 days |
| 34154 |
euprunin author:euprunin |
chore: golf using `grind` (and add four supporting `grind` annotations) |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `Orientation.nonneg_inner_and_areaForm_eq_zero_iff_sameRay`: 311 ms before, 284 ms after 🎉
* `UV.compression_self`: 29 ms before, 19 ms after 🎉
* `IsSepClosed.exists_root_C_mul_X_pow_add_C_mul_X_add_C`: 405 ms before, 291 ms after 🎉
* `InnerProductGeometry.norm_add_eq_add_norm_iff_angle_eq_zero`: 425 ms before, 309 ms after 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
9/30 |
Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Degree/Operations.lean,Mathlib/Analysis/InnerProductSpace/TwoDim.lean,Mathlib/Combinatorics/SetFamily/Compression/UV.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/Geometry/Euclidean/Angle/Unoriented/Basic.lean |
6 |
13 |
['Parcly-Taxel', 'euprunin', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'tb65536'] |
kim-em assignee:kim-em |
6-52539 6 days ago |
6-71717 6 days ago |
34-76153 34 days |
| 35740 |
LLaurance author:LLaurance |
chore(SimpleGraph/Basic): clean up and shorten |
Clean up and shorten some proofs
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
43/50 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
6-34483 6 days ago |
6-34744 6 days ago |
6-34688 6 days |
| 34760 |
astrainfinita author:astrainfinita |
chore: use `RelHomClass` in `IsChain.image` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
24/24 |
Counterexamples/AharoniKorman.lean,Mathlib/Order/Height.lean,Mathlib/Order/Preorder/Chain.lean |
3 |
5 |
['Vierkantor', 'astrainfinita', 'github-actions'] |
Vierkantor assignee:Vierkantor |
6-27845 6 days ago |
6-25497 6 days ago |
16-41149 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.
When generalizing to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
|
22/0 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
2 |
['github-actions'] |
urkud assignee:urkud |
6-26208 6 days ago |
9-35225 9 days ago |
15-66721 15 days |
| 31595 |
astrainfinita author:astrainfinita |
chore: redefine `Ideal.IsPrime` |
Redefine `Ideal.IsPrime` to make it correct for non-commutative cases
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
333/100 |
Mathlib/Algebra/Order/Ring/Ordering/Defs.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Noetherian.lean,Mathlib/RingTheory/Ideal/Oka.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/Ideal/Pointwise.lean,Mathlib/RingTheory/Ideal/Prime.lean,Mathlib/RingTheory/Ideal/Prod.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/IsPrimary.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean,Mathlib/RingTheory/Localization/Ideal.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean,Mathlib/RingTheory/Valuation/Basic.lean |
22 |
32 |
['alreadydone', 'artie2000', 'astrainfinita', 'erdOne', 'github-actions', 'leanprover-bot', 'leanprover-radar', 'mathlib4-merge-conflict-bot'] |
alreadydone assignee:alreadydone |
6-15097 6 days ago |
6-17725 6 days ago |
34-68388 34 days |
| 35530 |
xroblot author:xroblot |
feat(RingTheory): add the class `HasFiniteQuotients` |
As discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Rings.20with.20finite.20quotients/with/574554760), this PR add the class of commutative rings `R` such that, for all nonzero ideals `I` of `R`, the quotient `R ⧸ I` is finite and prove several results including:
- If `R` has finite quotients then it has dimension ≤ 1
- If `R` has finite quotients then it is a Noetherian ring
- Assume that `R` a finite quotients and that `S` is a domain and a finite `R`-module. Then `S` has finite quotients
- A domain that is also a finite `ℤ`-module has finite quotients.
Also add two instances:
- Assume that `S` is a finite `R`-module and that `S ⧸ J` is a `(R ⧸ I)`-module with `I`, resp. `J`, an ideal of `R`, resp. `S`, then `S ⧸ J` is a finite `(R ⧸ I)`-module.
- For nonzero `n` , `ℤ ⧸ Ideal.span {n}` is finite.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
121/0 |
Mathlib.lean,Mathlib/Data/ZMod/QuotientRing.lean,Mathlib/RingTheory/FiniteType.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean |
5 |
4 |
['github-actions', 'leanprover-radar', 'tb65536', 'xroblot'] |
chrisflav assignee:chrisflav |
5-84253 5 days ago |
unknown |
unknown |
| 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 |
171/0 |
Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Topology/KrullDimension.lean,Mathlib/Topology/Sets/Closeds.lean |
4 |
54 |
['Raph-DG', 'chrisflav', 'erdOne', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] |
erdOne assignee:erdOne |
5-80558 5 days ago |
5-79942 5 days ago |
42-17462 42 days |
| 33780 |
ooovi author:ooovi |
feat(Geometry/Convex/Cone): lineality space of pointed cones |
Define the lineality space `PointedCone.lineal` as the submodule `C ⊓ -C`. Prove that it is the largest submodule of the cone, which is sometimes used as an alternative definition.
Co-authored-by: Martin Winter
---
dependency of #33664
- [x] depends on #33761
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry |
42/1 |
Mathlib/Geometry/Convex/Cone/Pointed.lean |
1 |
19 |
['artie2000', 'eric-wieser', 'github-actions', 'martinwintermath', 'mathlib4-merge-conflict-bot', 'ooovi', 'vihdzp'] |
nobody |
5-71967 5 days ago |
5-74592 5 days ago |
17-17776 17 days |
| 35365 |
wwylele author:wwylele |
feat(LinearAlgebra/Simplex): closedInterior = interior + face.closedInterior |
Intermediate lemma towards #34826. This will be used to show the measure on `interior` and `closedInterior` are equal, as the difference is a zero-measure set.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
53/0 |
Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
1 |
4 |
['copilot-pull-request-reviewer', 'github-actions'] |
kim-em assignee:kim-em |
5-62199 5 days ago |
5-60908 5 days ago |
16-53294 16 days |
| 33449 |
yuanyi-350 author:yuanyi-350 |
feat(ProbabilityTheory): Add Poisson limit theorem |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
file-removed
maintainer-merge
|
127/3 |
Mathlib.lean,Mathlib/Probability/Distributions/Poisson/Basic.lean,Mathlib/Probability/Distributions/Poisson/PoissonLimitThm.lean,Mathlib/Probability/ProbabilityMassFunction/Binomial.lean,docs/1000.yaml |
5 |
24 |
['EtienneC30', 'github-actions', 'vihdzp'] |
EtienneC30 assignee:EtienneC30 |
5-55427 5 days ago |
5-54686 5 days ago |
39-23821 39 days |
| 35821 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice): `sInf s ≤ sSup t` for `(s ∩ t).Nonempty` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
27/1 |
Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean |
3 |
1 |
['github-actions'] |
nobody |
5-55279 5 days ago |
5-52373 5 days ago |
5-52317 5 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
maintainer-merge
|
57/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Group/Extension.lean |
2 |
3 |
['dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
5-44511 5 days ago |
21-48026 21 days ago |
21-70190 21 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$ |
170/6 |
Mathlib/RepresentationTheory/Character.lean,Mathlib/RepresentationTheory/Intertwining.lean,Mathlib/RepresentationTheory/Invariants.lean,Mathlib/RepresentationTheory/Irreducible.lean |
4 |
8 |
['github-actions', 'ocfnash', 'stepan2698-cpu'] |
ocfnash assignee:ocfnash |
5-41344 5 days ago |
5-41344 5 days ago |
21-22401 21 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'] |
kmill assignee:kmill |
5-26220 5 days ago |
22-49218 22 days ago |
22-49162 22 days |
| 35652 |
dennj author:dennj |
feat(LinearAlgebra/Matrix): add `Matrix.mul_eq_smul_one_symm` |
## Summary
- Add `Matrix.mul_eq_smul_one_symm`: if `M * N = c • 1` and `det M ≠ 0`, then `N * M = c • 1`
- A scalar generalisation of `mul_eq_one_symm` (the `c = 1` case) to arbitrary scalars, requiring `IsDomain` and `det M ≠ 0`
- The proof uses the adjugate identity `adjugate M * M = det M • 1` to derive `det M • (N * M) = det M • (c • 1)`, then cancels `det M` via `mul_left_cancel₀`
Theorem imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory |
t-algebra
new-contributor
label:t-algebra$ |
28/0 |
Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean |
1 |
2 |
['eric-wieser', 'github-actions'] |
joelriou assignee:joelriou |
5-26216 5 days ago |
9-47216 9 days ago |
9-47160 9 days |
| 35654 |
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 (differences <30 ms considered measurement noise):
* `CochainComplex.HomComplex.mem_coboundaries_iff`: unchanged 🎉
* `integral_cos_mul_complex`: unchanged 🎉
* `List.next_getLast_cons`: unchanged 🎉
* `foldl_argAux_mem`: unchanged 🎉
* `Equiv.Perm.support_swap`: unchanged 🎉
* `Fermat42.mul`: unchanged 🎉
* `Filter.high_scores`: 155 ms before, 108 ms after 🎉
* `IocProdIoc_preimage`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
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/)
|
|
11/65 |
Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/List/MinMax.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/NumberTheory/FLT/Four.lean,Mathlib/Order/Filter/AtTopBot/Finite.lean,Mathlib/Probability/Kernel/IonescuTulcea/Maps.lean |
8 |
3 |
['euprunin', 'github-actions', 'vihdzp'] |
kex-y assignee:kex-y |
5-26215 5 days ago |
9-37451 9 days ago |
9-40085 9 days |
| 35662 |
FrankieeW author:FrankieeW |
feat(NumberTheory/Zsqrtd): add Archimedean instance via le_arch |
This PR follows a suggestion made in #35606 , #35481
- add `Zsqrtd.le_arch_smul` in `Mathlib/NumberTheory/Zsqrtd/Basic.lean`
- use it to provide `instance : Archimedean (ℤ√d)` in the `Nonsquare` section
- refactor the proof using symmetry to reduce duplication while keeping checks clean
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
43/2 |
Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean |
2 |
6 |
['FrankieeW', 'github-actions', 'tb65536'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
5-26213 5 days ago |
8-54342 8 days ago |
9-28536 9 days |
| 35683 |
gasparattila author:gasparattila |
fix(Tactic/FunProp): detect `Continuous.subtype_mk` as compositional |
This PR changes `fun_prop` to detect some theorems involving dependent types, such as `Continous.subtype_mk` to be in compositional form. This lets `fun_prop` solve goals such as `Continuous fun x => (⟨x, trivial⟩ : {x : ℝ // True})`.
---
These theorems become compositional: `Continuous.subtype_mk`, `Topology.IsEmbedding.inclusion`, `Topology.IsOpenEmbedding.inclusion`, `Topology.IsClosedEmbedding.inclusion`, `Measurable.subtype_mk`, `Measurable.imp`, `Path.symm_continuous_family`, `Continuous.upperHalfPlaneMk`
These theorems become simple: `hasFDerivAt_prodMk_left`, `hasFDerivAt_prodMk_right`, `contDiff_prodMk_left`, `contDiff_prodMk_right`
[](https://gitpod.io/from-referrer/)
|
t-meta |
53/31 |
Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,MathlibTest/fun_prop_dev.lean |
4 |
1 |
['github-actions'] |
JovanGerb assignee:JovanGerb |
5-26211 5 days ago |
8-38902 8 days ago |
8-38846 8 days |
| 35573 |
antisubnoous author:antisubnoous |
feat(NumberTheory/Chebyshev): express the Chebyshev theta function in terms of the prime counting function |
This is a sibling theorem to Chebyshev.primeCounting_eq_theta_div_log_add_integral.
---
This is my first mathlib4 commit. I am working through some exercises and results in Apostol's ANT book as a means to practice Lean, and this result seemed like an opportunity to practice the mechanics of contributing to Mathlib because the new theorem mirrors closely the sibling theorem above (both appear in Apostol Theorem 4.3).
[](https://gitpod.io/from-referrer/) |
t-number-theory
new-contributor
|
36/1 |
Mathlib/NumberTheory/Chebyshev.lean |
1 |
2 |
['github-actions'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
5-21499 5 days ago |
5-19880 5 days ago |
11-56579 11 days |
| 34507 |
metakunt author:metakunt |
feat(NumberTheory/AKSPrimality): Adds the AKS primality test |
Adds the completed proof for the AKS primality test.
Everything except the final theorem is marked private as it's only needed for the final proof.
Also everything except the final theorem is namespaced with AKS.
----
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Aks.20primality.20Theorem.206.2E1.20Claim.20.28i.29.20proven |
t-number-theory |
653/0 |
Mathlib.lean,Mathlib/NumberTheory/AKSPrimality.lean |
2 |
28 |
['github-actions', 'jcommelin', 'kim-em', 'metakunt', 'vihdzp'] |
kim-em assignee:kim-em |
5-8951 5 days ago |
5-8334 5 days ago |
8-76554 8 days |
| 35713 |
Parcly-Taxel author:Parcly-Taxel |
feat: Bird–Wadler duality theorems |
Forms of these three theorems already exist in mathlib and the Lean standard library, but they are scattered about. Bring them together in one file, deprecating the _ad hoc_ names for the first and second theorems. |
t-data |
167/82 |
Mathlib.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/BirdWadler.lean,docs/references.bib |
4 |
1 |
['github-actions'] |
nobody |
5-7895 5 days ago |
5-4981 5 days ago |
7-64405 7 days |
| 35656 |
euprunin author:euprunin |
chore(ModelTheory): golf proofs |
This PR removes unused `have`/`haveI`/`let`/`letI` calls.
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 <30 ms considered measurement noise):
* `FirstOrder.Field.realize_genericMonicPolyHasRoot`: unchanged 🎉
* `FirstOrder.Language.exists_cg_is_age_of`: unchanged 🎉
* `FirstOrder.Language.Theory.models_formula_iff_onTheory_models_equivSentence`: unchanged 🎉
* `FirstOrder.Language.Sentence.realize_cardGe`: unchanged 🎉
* `FirstOrder.Language.Ultraproduct.boundedFormula_realize_cast`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
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-logic |
3/16 |
Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean,Mathlib/ModelTheory/Fraisse.lean,Mathlib/ModelTheory/Satisfiability.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Ultraproducts.lean |
5 |
6 |
['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] |
nobody |
5-5882 5 days ago |
8-32612 8 days ago |
9-36993 9 days |
| 35677 |
euprunin author:euprunin |
chore(SetTheory): golf proofs |
This PR removes unused `have`/`haveI`/`let`/`letI` calls + some small similar cleanups.
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 <30 ms considered measurement noise):
* `Cardinal.mul_eq_self`: unchanged 🎉
* `Cardinal.succ_natCast`: unchanged 🎉
* `Ordinal.exists_fundamental_sequence`: unchanged 🎉
* `Cardinal.mk_subtype_le_of_countable_eventually_mem`: unchanged 🎉
* `Nat.card_image_of_injOn`: unchanged 🎉
* `mul_le_of_limit_aux`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
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-set-theory |
2/11 |
Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/CountableCover.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/ZFC/PSet.lean |
7 |
4 |
['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] |
nobody |
5-5774 5 days ago |
8-85317 8 days ago |
8-85261 8 days |
| 35552 |
vihdzp author:vihdzp |
chore(SetTheory/Ordinal/Basic): remove `backward.privateInPublic` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
tech debt
|
7/27 |
Mathlib/SetTheory/Ordinal/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
4-85172 4 days ago |
4-83637 4 days ago |
12-25780 12 days |
| 35853 |
vihdzp author:vihdzp |
chore(SetTheory/Ordinal): deprecate more theorems on `succ` |
---
- [x] depends on: #35844
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
39/37 |
Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Ordinal.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/SetTheory/Ordinal/Principal.lean,Mathlib/SetTheory/Ordinal/Topology.lean |
9 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
4-79337 4 days ago |
4-77795 4 days ago |
4-77836 4 days |
| 35084 |
edegeltje author:edegeltje |
feat(Combinatorics/SimpleGraph): The Cayley graph for structures with `Mul`/`Add` |
This pr:
- adds the definition `SimpleGraph.mulCayley`, where `x` is adjacent to a distinct `y` when there is `g` such that `x * g = y` or `x = y * g`,
- proves various lemmas about the above,
- adds/proves the additive versions of all of the above
some related zulip conversation: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Cayley.20and.20circulant.20graph/with/572839048
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
106/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cayley.lean |
2 |
27 |
['SnirBroshi', 'edegeltje', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
4-71690 4 days ago |
4-71156 4 days ago |
21-57965 21 days |
| 35865 |
vihdzp author:vihdzp |
chore: review `Cardinal.ord` API |
This PR does the following:
- Mark `Cardinal.ord` as no expose.
- Prove the defining property `gciOrdCard` earlier.
- Deprecate the unused `ord.orderEmbedding` (it simply restates that the function is strictly monotonic).
- Rename `ord_nat` → `ord_natCast`.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
45/39 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
4 |
1 |
['github-actions'] |
nobody |
4-69769 4 days ago |
4-68216 4 days ago |
4-68160 4 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
|
46/0 |
Mathlib/ModelTheory/ElementaryMaps.lean,Mathlib/ModelTheory/LanguageMap.lean |
2 |
7 |
['Citronhat', 'NoneMore', 'fpvandoorn', 'github-actions'] |
fpvandoorn assignee:fpvandoorn |
4-67357 4 days ago |
4-66881 4 days ago |
60-73341 60 days |
| 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 |
5 |
['BryceT233', 'WenrongZou', 'github-actions'] |
mariainesdff assignee:mariainesdff |
4-66952 4 days ago |
15-470 15 days ago |
15-414 15 days |
| 35415 |
joneugster author:joneugster |
feat(Cache): enable partial cache in downstream projects |
Migrated to fork from: #21238.
Add features to `cache` and cleanup code:
* enable partial cache retrieval in downstream projects: `lake exe cache get MyProject.Basic` downloads only the relevant cache to build `MyProject/Basic.lean`
---
- [x] depends on: #21834
### Notes:
- replaces: #21195
- should address: #8767
- should address: #20568
### Completed:
- [x] depends on: #21632
- [x] ~~depends on: #21663~~
- [x] depends on: #21666
- [x] depends on: #21701
- [x] depends on: #21703
- [x] depends on: #21704
- [x] depends on: #21705
- [x] depends on: #21707
- [x] depends on: #21711
- [x] depends on: #21750
- [x] depends on: #21815
- [x] depends on: #21816
- [x] depends on: #21817
- [x] depends on: #21818
- [x] depends on: #21822
- [x] depends on: #21830
- #21848
[](https://gitpod.io/from-referrer/)
|
CI
t-meta
|
34/15 |
Cache/Hashing.lean,Cache/IO.lean,Cache/Main.lean |
3 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
4-63339 4 days ago |
4-62826 4 days ago |
4-62770 4 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 (`powerset_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
|
81/0 |
Mathlib/Data/List/Perm/Subperm.lean,Mathlib/Data/List/Sublists.lean,Mathlib/Data/Multiset/Powerset.lean |
3 |
28 |
['MixedMatched', 'eric-wieser', 'github-actions', 'joneugster', 'vihdzp'] |
joneugster assignee:joneugster |
4-61626 4 days ago |
11-11677 11 days ago |
11-53883 11 days |
| 34583 |
adomani author:adomani |
feat: basic properties of subnormal subgroups |
This is a follow up to #34284.
Co-authored-by: Inna Capdeboscq
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-group-theory
|
107/3 |
Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Subgroup/Pointwise.lean,Mathlib/GroupTheory/IsSubnormal.lean |
3 |
38 |
['LLaurance', 'adomani', 'github-actions', 'tb65536'] |
mattrobball assignee:mattrobball |
4-59463 4 days ago |
4-58506 4 days ago |
20-33755 20 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$ |
11/1 |
Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean |
2 |
4 |
['dagurtomas', 'github-actions', 'tb65536'] |
dagurtomas assignee:dagurtomas |
4-59243 4 days ago |
4-59243 4 days ago |
17-73623 17 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
|
524/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/Bases.lean,docs/references.bib |
3 |
181 |
['Ruben-VandeVelde', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'mike1729', 'sgouezel', 'themathqueen'] |
sgouezel assignee:sgouezel |
4-58647 4 days ago |
4-58654 4 days ago |
23-44310 23 days |
| 35653 |
pepamontero author:pepamontero |
feat: add ChartedSpace structure on orbit space |
feat: add ChartedSpace structure on orbit space
Add topological preliminaries for properly discontinuous group actions, and use them to equip the orbit space `orbitRel.Quotient G M` with a `ChartedSpace` structure.
In particular:
- Show that the quotient map `Quotient.mk _ : M → orbitRel.Quotient G M` is a covering map and hence a local homeomorphism.
- Construct chosen local inverses of the quotient map and establish properties over them.
- Define a `ChartedSpace` instance on the quotient by composing these local inverses with charts of M.
This started as an ItaLean2025 project; here is the [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Quotient.20Manifolds/with/575121158) dedicated to it.
---
|
new-contributor
t-differential-geometry
|
186/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Instances/OrbitSpace.lean,Mathlib/Topology/Algebra/OrbitSpace.lean |
3 |
2 |
['github-actions'] |
grunweg assignee:grunweg |
4-57506 4 days ago |
9-44613 9 days ago |
9-44557 9 days |
| 35608 |
BoltonBailey author:BoltonBailey |
chore(Computability): move TM files to a single folder |
This PR takes files relevant to Turing machines and moves them to a single folder for better organization.
In the process, we do some renaming of these files
* We remove the "TM" from the front of these files, as it's now redundant.
* TuringMachine.lean --> TuringMachine/StackMachine.lean
* (really the key difference between the TM2 model presented in this file, and the TM1 model from the previous, is the introduction of stacks instead of tapes)
I also remove `EvalsTo` and friends from TuringMachine.Computable, as these in #33291 were moved out of the TM namespace.
---
[](https://gitpod.io/from-referrer/)
|
t-computability
file-removed
|
21/58 |
Mathlib.lean,Mathlib/Computability/StateTransition.lean,Mathlib/Computability/TuringMachine/Computable.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Computability/TuringMachine/PostTuringMachine.lean,Mathlib/Computability/TuringMachine/StackMachine.lean,Mathlib/Computability/TuringMachine/Tape.lean,Mathlib/Computability/TuringMachine/ToPartrec.lean |
8 |
3 |
['BoltonBailey', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
4-48025 4 days ago |
4-47417 4 days ago |
10-9803 10 days |
| 35630 |
SnirBroshi author:SnirBroshi |
feat(Data/List/Basic): relate `dropLast` and `concat` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
8/0 |
Mathlib/Data/List/Basic.lean |
1 |
4 |
['SnirBroshi', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
4-40949 4 days ago |
4-48158 4 days ago |
9-78807 9 days |
| 35830 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Data/Nat/Choose/Plurinomial): plurinomial coefficients |
Define the multinomial coefficients, a variant of `Nat.multinomial`.
- `Multiset.plurinomial`.
Given a multiset `m` of natural numbers, `m.plurinomial` is the
multinomial coefficient defined by (m.sum) ! / ∏ i ∈ m, m i !.
As an example, `Multiset.plurinomial {1, 2, 2} = 30`.
This is the exponent of $x y^2 z^2$ in $(x+y+z)^5$.
This should not be confused with the existing `Multiset.multinomial` which gives a different answer,
for example, `Multiset.multinomial {1, 2, 2} = 3`.
We chose the name “plurinomial” by changing the Greek root “multi” to its Latine version “pluri”.
- `Multiset.plurinomial_cons` proves that
`(x ::ₘ m).plurinomial = Nat.choose (x + m.sum) x * m.plurinomial`
- `Multiset.plurinomial_add` proves that
`(m + m').plurinomial = Nat.choose (m + m').sum m.sum * m.plurinomial * m'.plurinomial`
co-authored with @mariainesdff
---
[](https://gitpod.io/from-referrer/)
|
t-data |
179/20 |
Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Data/List/ToFinsupp.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean |
4 |
9 |
['AntoineChambert-Loir', 'github-actions', 'vihdzp'] |
nobody |
4-38762 4 days ago |
4-38052 4 days ago |
4-71278 4 days |
| 35857 |
AlexeyMilovanov author:AlexeyMilovanov |
feat(Logic.Equiv.BijectiveBase2): add bijective base-2 numeration |
This PR introduces a formalization of the bijective base-2 numeration system.
Unlike standard binary representation, bijective base-2 avoids the "leading zeros" problem, providing a strict mathematical bijection between natural numbers (`ℕ`) and lists of booleans (`List Bool`).
**Main additions:**
* `Equiv.BijectiveBase2.toBits`: Encodes `ℕ` to `List Bool`.
* `Equiv.BijectiveBase2.ofBits`: Decodes `List Bool` to `ℕ`.
* `equivBijectiveBase2`: The formal `ℕ ≃ List Bool` equivalence.
*(Note: This replaces my previously closed PR to avoid the terminology clash between "Dyadic" and dyadic rationals. The namespace and definitions have been updated accordingly).*
*(Note: Used AI to assist with standardizing proof structures).* |
t-logic
new-contributor
|
95/0 |
Mathlib.lean,Mathlib/Logic/Equiv/ListNatBijective.lean |
2 |
4 |
['AlexeyMilovanov', 'SnirBroshi', 'github-actions'] |
nobody |
4-38340 4 days ago |
4-39684 4 days ago |
4-45981 4 days |
| 35776 |
IvanRenison author:IvanRenison |
feat(Combinatorics): define `HasAdj` for capturing the common structure of different kinds of (simple) graphs |
We add a vertex set considering that we want to refactor `SimpleGraph` to also use one
---
This pr replaces #4127
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
101/0 |
Mathlib.lean,Mathlib/Combinatorics/Digraph/HasAdj.lean,Mathlib/Combinatorics/HasAdj/Basic.lean,Mathlib/Combinatorics/SimpleGraph/HasAdj.lean |
4 |
1 |
['github-actions'] |
nobody |
4-36420 4 days ago |
4-36420 4 days ago |
4-36364 4 days |
| 35822 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice): `sSup (f '' s) ≤ f (sSup s)` |
---
#35260 will add `iSup` versions.
Future work: `Antitone`, `MonotoneOn`, `AntitoneOn`
[](https://gitpod.io/from-referrer/)
|
t-order |
39/1 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean |
2 |
5 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
4-32754 4 days ago |
5-51946 5 days ago |
5-51890 5 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/)
|
t-algebra label:t-algebra$ |
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 |
9 |
['Rob23oba', 'eric-wieser', 'github-actions', 'joneugster', 'loefflerd'] |
thorimur assignee:thorimur |
4-31975 4 days ago |
14-58429 14 days ago |
15-17174 15 days |
| 34742 |
Brian-Nugent author:Brian-Nugent |
feat(SheafCohomology): add API for Sheaf Cohomology |
Defines the long exact sequence on cohomology associated to a short exact sequence of sheaves `H.longSequence`. Also defines `H.equiv₀`, the additive equivalence between `H F 0` and `((sheafSections J AddCommGrpCat).obj (op T)).obj F` when the category has a terminal object `T`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-category-theory
|
76/2 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
3 |
16 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joneugster'] |
adamtopaz assignee:adamtopaz |
4-30944 4 days ago |
4-30222 4 days ago |
22-30997 22 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'] |
kmill assignee:kmill |
4-26232 4 days ago |
18-381 18 days ago |
18-66117 18 days |
| 35540 |
tb65536 author:tb65536 |
feat(GroupTheory/ResiduallyFinite): define residually finite groups |
This PR defines residually finite groups, provides some basic API, and gives the connection with profinite completion.
Some to_additivizing is still waiting on #34784.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
91/1 |
Mathlib.lean,Mathlib/GroupTheory/FiniteIndexNormalSubgroup.lean,Mathlib/GroupTheory/ResiduallyFinite.lean,Mathlib/Topology/Algebra/Category/ProfiniteGrp/Completion.lean |
4 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
4-26230 4 days ago |
12-45426 12 days ago |
12-45370 12 days |
| 35592 |
SnirBroshi author:SnirBroshi |
chore(Order/Defs/Unbundled): deprecate `def Transitive` in favor of `class IsTrans` |
---
[`def Transitive`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#Transitive)
[`class IsTrans`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#IsTrans)
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Relation.20properties.20duplication/near/544638270)
[](https://gitpod.io/from-referrer/)
|
t-order |
141/110 |
Mathlib/Algebra/Group/Semiconj/Defs.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,Mathlib/Computability/Reduce.lean,Mathlib/Data/List/MinMax.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/WSeq/Relation.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/Logic/Relation.lean,Mathlib/ModelTheory/Order.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/Order/Quotient.lean,Mathlib/Order/RelClasses.lean,Mathlib/Topology/Connected/Clopen.lean,Mathlib/Topology/Metrizable/Uniformity.lean |
20 |
1 |
['github-actions', 'vihdzp'] |
pechersky assignee:pechersky |
4-26228 4 days ago |
10-38820 10 days ago |
11-12365 11 days |
| 35610 |
IvanRenison author:IvanRenison |
feat(Data/Fin): add several lemmas about subtraction of `Fin.{castLT, castAdd, castSucc, castPred}` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
79/0 |
Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/SuccPred.lean |
2 |
3 |
['github-actions', 'wwylele'] |
TwoFX assignee:TwoFX |
4-26226 4 days ago |
9-73294 9 days ago |
9-82353 9 days |
| 35672 |
dennj author:dennj |
feat(RingTheory/Polynomial/Cyclotomic): vanishing sums and fiber equidistribution at primitive roots |
## Summary
Building on `sum_eq_zero_iff_forall_eq` from #34592, this PR adds:
- `cyclotomic_prime_coeff_eq_one`: for prime `p`, all coefficients of `cyclotomic p R` equal `1`.
- `eq_nsmul_cyclotomic_of_nonneg_coeff`: a nonneg-coefficient polynomial vanishing at a primitive root is a positive scalar multiple of the cyclotomic polynomial.
- `card_fiber_eq_card_div`: if a function `d : A → ZMod p` satisfies `∑ ζ^(d a) = 0`, then every fiber has cardinality `|A| / p`.
These results are useful for combinatorial applications involving exponential sums and equidistribution over cyclic groups.
Theorems imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory |
t-ring-theory
new-contributor
|
101/1 |
Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean |
2 |
2 |
['github-actions'] |
chrisflav assignee:chrisflav |
4-26224 4 days ago |
9-12683 9 days ago |
9-12627 9 days |
| 35720 |
tb65536 author:tb65536 |
feat(NumberTheory/FunctionField): add instances on `FqtInfty` |
This PR proves the relevant instances on `FqtInfty` by locally replacing the existing valued instance `RatFunc.valuedRatFunc` coming from the ideal `X` with the required `UniformSpace` instance coming from the valuation at infinity and then deriving the relevant instances.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-algebra
label:t-algebra$ |
16/9 |
Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/NumberTheory/FunctionField.lean |
2 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
4-26222 4 days ago |
7-53943 7 days ago |
7-57250 7 days |
| 35721 |
chrisflav author:chrisflav |
chore: fix delaborators for `[Comm][Semi]RingCat` and some more |
Since #31622 terms of type `CommRingCat` are pretty printed as `{ carrier := R, commRing := inst }`. We make it pretty print as `CommRingCat.of R` again, which was the previous behaviour.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
77/0 |
Mathlib/Algebra/Category/Ring/Basic.lean,Mathlib/CategoryTheory/FintypeCat.lean,Mathlib/Topology/Category/TopCat/Basic.lean,Mathlib/Topology/Category/TopCommRingCat.lean |
4 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
4-26221 4 days ago |
7-55753 7 days ago |
7-55697 7 days |
| 35628 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Maps): characterize `neighborSet` and `edgeSet` across an embedding |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
40/0 |
Mathlib/Combinatorics/SimpleGraph/Maps.lean |
1 |
1 |
['github-actions'] |
nobody |
4-13070 4 days ago |
4-12392 4 days ago |
10-13312 10 days |
| 35878 |
Parcly-Taxel author:Parcly-Taxel |
chore: use `induction` for `Quotient.induction` invocations |
Found through the regex `(refine|apply|exact).*Quotient.induction`. Includes the multiple-argument variants. |
tech debt |
93/102 |
Mathlib/Algebra/GroupWithZero/Associated.lean,Mathlib/Algebra/Lie/Quotient.lean,Mathlib/Algebra/Module/ZLattice/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/Basic.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/Monoidal/Free/Basic.lean,Mathlib/CategoryTheory/Subobject/Basic.lean,Mathlib/Combinatorics/Tiling/Tile.lean,Mathlib/Computability/Tape.lean,Mathlib/Data/Multiset/Functor.lean,Mathlib/Data/Multiset/Sym.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/FieldTheory/Fixed.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/LinearAlgebra/Alternating/DomCoprod.lean,Mathlib/LinearAlgebra/Quotient/Pi.lean,Mathlib/Logic/Equiv/Basic.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/Order/Category/PartOrd.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/Topology/Algebra/InfiniteSum/Module.lean |
28 |
1 |
['github-actions'] |
nobody |
4-10857 4 days ago |
4-7700 4 days ago |
4-7644 4 days |
| 35841 |
astrainfinita author:astrainfinita |
chore(Order/Defs/LinearOrder): avoid `grind` in very fundamental lemmas |
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2334013.20chore.3A.20golf.20with.20grind.20to.20reduce.20explicit.20lemma.20refer/near/570429476)
[](https://gitpod.io/from-referrer/)
|
t-order |
40/19 |
Mathlib/Order/Defs/LinearOrder.lean |
1 |
2 |
['github-actions', 'grunweg'] |
nobody |
4-9557 4 days ago |
unknown |
unknown |
| 26770 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): subgraph relations on `Graph` |
This PR creates a new file `Combinatorics/Graph/Subgraph.lean`. In it, the PR introduces a partial order on graphs by subgraph relation, defines relations `IsInducedSubgraph`, `IsSpanningSubgraph` and `IsClosedSubgraph`.
Co-authored-by: Peter Nelson
---
- [x] depends on: #34783
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
325/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Subgraph.lean |
2 |
60 |
['Jun2M', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
YaelDillies assignee:YaelDillies |
4-6824 4 days ago |
4-8105 4 days ago |
7-81677 7 days |
| 35880 |
astrainfinita author:astrainfinita |
feat(Order/Defs/LinearOrder): `min_ind` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
5/0 |
Mathlib/Order/Defs/LinearOrder.lean |
1 |
1 |
['github-actions'] |
nobody |
4-6692 4 days ago |
4-3483 4 days ago |
4-3427 4 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/18 |
Mathlib/NumberTheory/LucasLehmer.lean |
1 |
14 |
['eric-wieser', 'euprunin', 'github-actions', 'leanprover-radar', 'robin-carlier'] |
eric-wieser assignee:eric-wieser |
3-80516 3 days ago |
3-80516 3 days ago |
36-57173 36 days |
| 35840 |
SnirBroshi author:SnirBroshi |
feat(SetTheory/Ordinal/Arithmetic): `typein (· < ·) = natCast` for `ℕ` and `Fin n` |
Co-authored-by: Matt Diamond
---
[#Is there code for X? > `Ordinal.typein = NatCast`](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Ordinal.2Etypein.20.3D.20NatCast.60/with/576057726)
The same statement but for ordinals exists as [Ordinal.typein_ordinal](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Ordinal/Arithmetic.html#Ordinal.typein_ordinal).
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
25/0 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
2 |
16 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
vihdzp assignee:vihdzp |
3-80424 3 days ago |
3-78905 3 days ago |
4-77328 4 days |
| 35716 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Connectivity): add lemmas about reachable, degree and neighbor set |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
28/6 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean |
1 |
10 |
['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
3-72847 3 days ago |
3-72242 3 days ago |
7-64026 7 days |
| 35829 |
IvanRenison author:IvanRenison |
refactor(Data/Last): move `Mathlib.Tactic.BicategoryLike.pairs` to `List.consecutivePairs` |
Moves:
- Mathlib.Tactic.BicategoryLike.pairs -> List.consecutivePairs
---
[](https://gitpod.io/from-referrer/)
|
t-data |
12/6 |
Mathlib/Data/List/Defs.lean,Mathlib/Tactic/Widget/StringDiagram.lean |
2 |
5 |
['IvanRenison', 'SnirBroshi', 'github-actions', 'robin-carlier'] |
nobody |
3-72705 3 days ago |
4-33556 4 days ago |
5-11494 5 days |
| 33878 |
xroblot author:xroblot |
feat(MulChar): generalize duality results on finite abelian groups to multiplicative characters |
---
- [x] depends on: #33792
[](https://gitpod.io/from-referrer/)
|
large-import
t-number-theory
|
116/5 |
Mathlib/Algebra/Group/Submonoid/Units.lean,Mathlib/NumberTheory/MulChar/Basic.lean,Mathlib/NumberTheory/MulChar/Duality.lean,Mathlib/NumberTheory/MulChar/Lemmas.lean |
4 |
13 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536', 'xroblot'] |
tb65536 assignee:tb65536 |
3-64607 3 days ago |
3-63177 3 days ago |
12-55744 12 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.
---
- [x] depends on: #35483
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
31/0 |
Mathlib/NumberTheory/RamificationInertia/Basic.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
alexjbest assignee:alexjbest |
3-64277 3 days ago |
3-63625 3 days ago |
14-78355 14 days |
| 35774 |
astrainfinita author:astrainfinita |
chore: use `IsLUB` `IsGLB` in `ConditionallyCompleteLattice` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
142/197 |
Mathlib/Algebra/Tropical/Lattice.lean,Mathlib/Data/Int/ConditionallyCompleteOrder.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Copy.lean |
9 |
8 |
['astrainfinita', 'github-actions', 'vihdzp'] |
nobody |
3-62877 3 days ago |
3-60242 3 days ago |
6-46100 6 days |
| 35098 |
b-mehta author:b-mehta |
feat(Analysis/Normed): relate compactness of operators to locally compact spaces |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
16/1 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean |
1 |
8 |
['b-mehta', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts'] |
j-loreaux assignee:j-loreaux |
3-61233 3 days ago |
3-60262 3 days ago |
8-35232 8 days |
| 35769 |
SnirBroshi author:SnirBroshi |
feat(Order/WellFounded): the cardinality of a set is an upper-bound for the amount of elements before the set's mex |
The "mex" of a set is its minimum excluded value, see https://en.wikipedia.org/wiki/Mex_(mathematics)
---
Extracted from #35669
[](https://gitpod.io/from-referrer/)
|
t-order |
19/0 |
Mathlib/Order/WellFounded.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
3 |
1 |
['github-actions'] |
nobody |
3-56549 3 days ago |
3-54931 3 days ago |
6-53898 6 days |
| 35893 |
b-mehta author:b-mehta |
feat(Data/Nat/Choose/Lucas): add choose_mul_mul and choose_pow_mul_pow_mul modular congruence lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
32/1 |
Mathlib/Data/Nat/Choose/Lucas.lean |
1 |
1 |
['github-actions'] |
nobody |
3-55848 3 days ago |
3-55156 3 days ago |
3-55100 3 days |
| 34963 |
Parcly-Taxel author:Parcly-Taxel |
feat(Archive): proof of the Robbins conjecture |
Cf. [#mathlib4 > Alternative axiomatization of boolean algebras @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Alternative.20axiomatization.20of.20boolean.20algebras/near/558900960) and #31924. |
t-algebra label:t-algebra$ |
610/0 |
Archive.lean,Archive/Robbins.lean |
2 |
1 |
['github-actions'] |
dwrensha assignee:dwrensha |
3-54027 3 days ago |
23-62373 23 days ago |
24-17592 24 days |
| 33363 |
BoltonBailey author:BoltonBailey |
feat: add `empty_eq_image` simp lemmas |
Creates new simp lemmas `empty_eq_image`, similar to existing simp lemmas, but with the LHS equality reversed, so that simp can identify these when in this form.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
26/0 |
Mathlib/Data/Finset/Image.lean,Mathlib/Data/Multiset/MapFold.lean,Mathlib/Data/Option/Basic.lean,Mathlib/Data/Set/Image.lean,Mathlib/Order/Filter/Map.lean |
5 |
7 |
['BoltonBailey', 'github-actions', 'joneugster', 'urkud'] |
joneugster and urkud assignee:urkud assignee:joneugster |
3-49591 3 days ago |
3-49591 3 days ago |
33-33214 33 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
|
26/0 |
Mathlib/Analysis/Analytic/Order.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'j-loreaux', 'mkaratarakis'] |
j-loreaux assignee:j-loreaux |
3-47567 3 days ago |
3-46815 3 days ago |
17-6529 17 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
t-analysis
|
62/0 |
Mathlib/Analysis/Complex/CauchyIntegral.lean |
1 |
7 |
['MichaelStollBayreuth', 'github-actions', 'mkaratarakis'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
3-47548 3 days ago |
3-46829 3 days ago |
16-35371 16 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 |
94/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 |
6 |
['erdOne', 'github-actions', 'harahu', 'mathlib-merge-conflicts'] |
erdOne assignee:erdOne |
3-41884 3 days ago |
3-41121 3 days ago |
12-43747 12 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
|
28/0 |
Mathlib/Topology/Instances/EReal/Lemmas.lean |
1 |
13 |
['github-actions', 'j-loreaux', 'jvanwinden', 'mathlib-merge-conflicts', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
3-41430 3 days ago |
3-40069 3 days ago |
7-75026 7 days |
| 35892 |
vlad902 author:vlad902 |
feat(Data): lemmas for `List.bagInter` |
Basic API lemmas for `List.bagInter` and correct a few misnamed lemmas.
Co-authored-by: Aristotle (Harmonic)
---
[](https://gitpod.io/from-referrer/)
|
t-data |
60/5 |
Mathlib/Data/List/Lattice.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/Multiset/UnionInter.lean |
3 |
1 |
['github-actions'] |
nobody |
3-33999 3 days ago |
3-31080 3 days ago |
3-31024 3 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
|
414/1 |
Mathlib.lean,Mathlib/Data/Finsupp/Antidiagonal.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/Order/Filter/Cofinite.lean,Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean |
8 |
36 |
['BryceT233', 'Komyyy', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] |
erdOne and riccardobrasca assignee:riccardobrasca assignee:erdOne |
3-29052 3 days ago |
3-26738 3 days ago |
46-35830 46 days |
| 34246 |
staroperator author:staroperator |
feat(SetTheory/Cardinal): Δ-system lemma |
We prove the Δ-system lemma, which says for any regular cardinal `θ` and infinite cardinal `κ < θ`, if `∀ c < θ, c ^< κ < θ`, any `θ`-sized family of sets whose cardinalities are less than `κ` must contain a `θ`-sized Δ-system (this condition is called Δ-system property for `θ` and `κ`, noted as `Δ(θ, k)`). As a special case, `Δ(ℵ₁, ℵ₀)` ensures any uncountable family of finite sets must contain an uncountable Δ-system.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
384/0 |
Mathlib.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/DeltaSystem.lean,Mathlib/SetTheory/Cardinal/Pigeonhole.lean,docs/references.bib |
6 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
3-26108 3 days ago |
9-49695 9 days ago |
9-49639 9 days |
| 34621 |
homeowmorphism author:homeowmorphism |
feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ` |
feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ`.
Originally, the PR showed that `FreeGroup Empty ≃* Unit` and `FreeGroup α ≃* Multiplicative ℤ`. During the review process, I was asked to generalized `Unit` to any `Unique` type and `Empty` to `IsEmpty`. Through working on this, it has been realized that the pre-existing `FreeGroup Empty ≃ Unit` should be deprecated using `Equiv.ofUnique` and a multiplicative version `FreeGroup Empty ≃* Unit` can be obtained similarly using `MulEquiv.ofUnique` and there was no need to explicitly upgrade the equivalence. The title has been changed to reflect this.
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 |
39 |
['b-mehta', 'copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'kbuzzard', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
3-26107 3 days ago |
15-47953 15 days ago |
22-51023 22 days |
| 35528 |
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 (differences <20 ms considered measurement noise):
* `CochainComplex.HomComplex.mem_coboundaries_iff`: <20 ms before, 43 ms after
* `Affine.Simplex.Scalene.dist_ne`: unchanged 🎉
* `List.next_getLast_cons`: unchanged 🎉
* `AbsolutelyContinuousOnInterval.biUnion_uIoc_subset_of_mem_disjWithin`: unchanged 🎉
* `Filter.high_scores`: 109 ms before, 139 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/55 |
Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean,Mathlib/Analysis/Normed/Affine/Simplex.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Chunk.lean,Mathlib/Data/List/Cycle.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/Order/Filter/AtTopBot/Finite.lean |
6 |
1 |
['github-actions', 'vihdzp'] |
adamtopaz assignee:adamtopaz |
3-26105 3 days ago |
12-81261 12 days ago |
12-81205 12 days |
| 35567 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Golfs |
This PR cleans up the proofs in
Analysis/Normed/Module/PiTensorProduct/{InjectiveSeminorm.lean, ProjectiveSeminorm.lean}
In addition, it performs the following minor structural changes:
* Weaken assumptions from `NontriviallyNormedField 𝕜` to `NormedField 𝕜` where possible
* The proofs showing that `projectiveSeminorm` actually defines a `Seminorm` are split off into separate lemmas. This mimics the idiom used e.g. in `Analysis.Normed.Modula.Operator.Basic` to define the operator norm.
* Register a `Nonempty x.lifts` instance in PiTensorProduct.lean, to avoid creating a half-dozen local instances.
This is the first in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633).
---
Co-authored-by: Davood H. T. Tehrani
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
new-contributor
|
101/158 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean |
3 |
10 |
['github-actions', 'goliath-klein', 'leanprover-radar', 'tb65536'] |
sgouezel assignee:sgouezel |
3-26104 3 days ago |
11-63936 11 days ago |
11-63891 11 days |
| 35745 |
khwilson author:khwilson |
feat(Mathlib/Analysis/Asymptotics/Defs): congr lemmas for IsBigO* |
This PR primarily provides two calculational lemmas that are commonly used in bounding functions.
First, it provides `IsBigO*.sum_congr`. This theorem allows the user to bound each term of a (finite) sum individually. This is different than `IsBigO.sum` which requires all terms to be bound by the _same_ function.
Second, it provides `IsBigO*.sum_congr'`. This theorem allows the user to bound the terms of a sum individually _when the length of the sum changes with respect to the running variable_. This is a common setup with certain techniques such as the method of the hyperbola.
Note: This makes the overall length of this file go above 1500 lines. I'm happy to break it up at the request of reviewers, but that's a bigger change to the API.
AI Usage: Looking up various lemma names in Google Gemini.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
92/1 |
Mathlib/Analysis/Asymptotics/Defs.lean |
1 |
2 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
3-26097 3 days ago |
7-18147 7 days ago |
7-18091 7 days |
| 35767 |
kebekus author:kebekus |
feat: asymptotics of the `logCounting` function of Value Distribution Theory |
If `f` is meromorphic over a field `𝕜`, show that the logarithmic counting function for the poles of `f` is asymptotically bounded if and only if `f` has only removable singularities.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
150/0 |
Mathlib.lean,Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean |
2 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
3-26095 3 days ago |
6-56998 6 days ago |
6-56942 6 days |
| 35771 |
euprunin author:euprunin |
chore: golf using `exact` |
The goal of this 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 <30 ms considered measurement noise):
* `IsBaseChange.comp`: 132 ms before, 98 ms after 🎉
* `Cardinal.powerlt_aleph0`: unchanged 🎉
* `ONote.fastGrowing_one`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This 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/RingTheory/IsTensorProduct.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Notation.lean |
3 |
1 |
['github-actions', 'vihdzp'] |
EtienneC30 assignee:EtienneC30 |
3-26092 3 days ago |
6-54208 6 days ago |
6-54152 6 days |
| 35763 |
kim-em author:kim-em |
chore(scripts): make rm_set_option cache opt-in via --resume |
This PR changes `scripts/rm_set_option.py` so the progress cache is only used when explicitly requested via `--resume`, rather than being on by default (with `--no-resume` to disable).
The previous default was unsafe: the cache only checks that the target module's own SHA256 is unchanged, so edits to upstream modules between runs would be silently ignored, causing the script to skip modules that should be reprocessed.
🤖 Prepared with Claude Code |
|
4/4 |
scripts/README.md,scripts/rm_set_option.py |
2 |
1 |
['github-actions'] |
nobody |
3-25645 3 days ago |
6-71635 6 days ago |
6-71579 6 days |
| 35858 |
vihdzp author:vihdzp |
doc(SetTheory/Ordinal/Arithmetic): improve documentation |
This PR does the following:
- Use better variable names in the docs (instead of just variants of the letter `o`).
- Remove mentions of things defined in other files, or specify that they are defined on other files.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-set-theory
|
14/21 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean |
1 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
3-23377 3 days ago |
3-21838 3 days ago |
4-24957 4 days |
| 35905 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): Add definitions for small graphs (noEdge, bouquet, banana) |
This pull request adds new constructors and supporting lemmas for special types of graphs in the `Mathlib/Combinatorics/Graph/Basic.lean` file.
It introduces:
* `Graph.noEdge V`: The graph with vertex set V and empty edge set.
* `Graph.bouquet v E`: The graph with vertex set {v} and edge set E, where all edges are loops at v.
* `Graph.banana u v E`: The graph with vertex set {u, v} and edge set E, where all edges connect u and v.
along with various properties and characterizations for these graphs.
Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
126/0 |
Mathlib/Combinatorics/Graph/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
3-18762 3 days ago |
3-18161 3 days ago |
3-18105 3 days |
| 35907 |
JJYYY-JJY author:JJYYY-JJY |
fix(Topology/Defs/Basic): preserve noncanonical topology instances in delaboration |
Preserve noncanonical topology instances in delaboration.
Restore local instances before checking whether topology arguments can be omitted during delaboration, and print `IsOpen[t]`, `IsClosed[t]`, `closure[t]`, and `Continuous[t₁, t₂]` when the topology instances are not canonical in the current local-instance context.
Previously, pretty-printing could silently drop noncanonical topology arguments, so declarations such as `LinearMap.mem_span_iff_continuous_of_finite` were rendered as if they used the default topology.
Closes #33238 |
t-topology
new-contributor
|
111/0 |
Mathlib/Topology/Defs/Basic.lean,MathlibTest/TopologyNonstandardNotation.lean |
2 |
4 |
['copilot-pull-request-reviewer', 'github-actions'] |
nobody |
3-16897 3 days ago |
3-15309 3 days ago |
3-15253 3 days |
| 35908 |
vihdzp author:vihdzp |
chore(FieldTheory/AbelRuffini): simpler definition of `solvableByRad` |
We redefine `solvableByRad F E` as the smallest intermediate field closed under n-th roots. This makes the predicate `IsSolvableByRad` redundant, and so we deprecate it.
We also private/remove various auxiliary results, and change the statement of the Abel-Ruffini theorem to be about an element of the field, rather than the subtype.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
134/164 |
Archive/Wiedijk100Theorems/AbelRuffini.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/FieldTheory/AbelRuffini.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean |
4 |
5 |
['github-actions', 'plp127', 'vihdzp'] |
nobody |
3-9910 3 days ago |
3-9179 3 days ago |
3-9799 3 days |
| 35665 |
BryceT233 author:BryceT233 |
feat(RingTheory/AdicCompletion): introduce AdicCompletion.finsuppSum |
This is split from #34936 to make the review process easier.
It introduces `AdicCompletion.finsuppSum`, which is a `Finsupp` version of `AdicCompletion.sum`.
---
- [x] depends on: #35595
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
93/0 |
Mathlib/LinearAlgebra/Finsupp/LSum.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean |
2 |
4 |
['github-actions', 'joneugster', 'mathlib-dependent-issues'] |
nobody |
3-7514 3 days ago |
3-6793 3 days ago |
8-13234 8 days |
| 35910 |
LLaurance author:LLaurance |
chore(Probability): remove deprecated items, shorten proofs |
Remove deprecated items, shorten proofs, use dot notation where possible, style
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
63/129 |
Mathlib/Probability/Distributions/Exponential.lean,Mathlib/Probability/Distributions/Gamma.lean,Mathlib/Probability/Distributions/Geometric.lean,Mathlib/Probability/Distributions/Pareto.lean,Mathlib/Probability/Distributions/Poisson.lean,Mathlib/Probability/Distributions/Uniform.lean |
6 |
1 |
['github-actions'] |
nobody |
2-85817 2 days ago |
2-85228 2 days ago |
2-85189 2 days |
| 35912 |
WenrongZou author:WenrongZou |
feat(RingTheory/FormalGroup): definition and examples of formal group |
---
Definition of one dimensional formal group law over commutative ring and some examples of formal group law.
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
192/0 |
Mathlib.lean,Mathlib/RingTheory/FormalGroup/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
2-77815 2 days ago |
2-77242 2 days ago |
2-77186 2 days |
| 35539 |
xgenereux author:xgenereux |
feat(DedekindDomain/Factorization): add `iInf` version of `finprod_heightOneSpectrum_factorization` |
This PR adds an `iInf` version of `finprod_heightOneSpectrum_factorization`. This requires two lemmas:
- `prod_eq_iInf_of_coprime` - An `iInf` version of `mul_eq_inf_of_coprime`.
- `HeightOneSpectrum.pow_sup_pow_eq_top` - Bundled up version of `Ideal.IsMaximal.coprime_of_ne` + `Ideal.pow_sup_pow_eq_top` for `HeightOneSpectrum`.
------
I noticed that these lemmas simplify a bit the work on the Chinese remainder theorem done in the file. The last commit of this PR is this simplification. I can remove it if this is not relevant.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
73/42 |
Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Operations.lean |
3 |
10 |
['erdOne', 'github-actions', 'xgenereux'] |
chrisflav assignee:chrisflav |
2-76262 2 days ago |
2-74560 2 days ago |
11-85295 11 days |
| 34938 |
peabrainiac author:peabrainiac |
feat(Geometry/Manifold): interior and boundary are preserved by (local) diffeomorphisms |
If `f` is a local diffeomorphism at `x`, `f x` is an interior point iff `x` is. We prove this and a bunch of corollaries, in particular that `BoundarylessManifold` is invariant under diffeomorphisms which we need for subsequent work.
---
- [x] depends on: #33189
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
133/5 |
Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean |
2 |
8 |
['github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'peabrainiac'] |
nobody |
2-74296 2 days ago |
3-14732 3 days ago |
3-14676 3 days |
| 35705 |
jdhart81 author:jdhart81 |
feat(Data/ENNReal, Probability/Independence): division decomposition and self-independence |
Two general-purpose lemmas extracted from a formal verification of "The Intelligence Bound" (Hart 2025).
---
### New lemmas
- `ENNReal.div_eq_div_mul_div`: Division decomposition `a / c = a / b * (b / c)` when `b ≠ 0` and `b ≠ ⊤`. Added to `Mathlib.Data.ENNReal.Inv`.
- `IndepFun.of_self`: If `Y` is independent of itself under a probability measure, then `X` and `Y` are independent. Self-independence implies `Y` is a.e. constant. Added to `Mathlib.Probability.Independence.Basic`.
### Context
These lemmas arose in formalizing information-theoretic results where:
- The ENNReal division identity is needed for decomposing rate expressions (limsup of ratios)
- The self-independence result bridges entropy = 0 and measure-theoretic independence
### References
- Formal verification: https://github.com/jdhart81/intelligence-bound-lean
- Paper: "The Intelligence Bound" (Hart 2025) |
new-contributor
t-data
|
47/0 |
Mathlib/Data/ENNReal/Inv.lean,Mathlib/Probability/Independence/Basic.lean |
2 |
10 |
['SnirBroshi', 'github-actions', 'jdhart81', 'joneugster', 'kbuzzard'] |
nobody |
2-71064 2 days ago |
3-66224 3 days ago |
7-24607 7 days |
| 34477 |
spanning-tree author:spanning-tree |
refactor(Order): make CompletePartialOrder extend OrderBot |
Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly.
Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor.
See discussion in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20complete.20partial.20order.20and.20domain.20theory.20formalization).
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
15/1 |
Mathlib/Order/CompletePartialOrder.lean |
1 |
3 |
['Citronhat', 'github-actions', 'mathlib-merge-conflicts'] |
pechersky assignee:pechersky |
2-65499 2 days ago |
2-64898 2 days ago |
23-36079 23 days |
| 35921 |
grunweg author:grunweg |
chore: remove some superfluous parens |
Found by manually auditing the output of regex-searching for '\([A-Za-z0-9_][A-Za-z0-9_]+\)'. Most results are false positives (such as, documentation or export statements), a few are more interesting.
Not exhaustive, I looked at perhaps a fifth or a tenth of all results.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
14/14 |
Counterexamples/AharoniKorman.lean,Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Pullback.lean,Mathlib/Algebra/Category/Ring/Basic.lean,Mathlib/Algebra/Group/Pointwise/Finset/BigOperators.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Lie/Semisimple/Lemmas.lean,Mathlib/Algebra/Order/Antidiag/Nat.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean |
11 |
1 |
['github-actions'] |
nobody |
2-60488 2 days ago |
2-58242 2 days ago |
2-58186 2 days |
| 33714 |
idontgetoutmuch author:idontgetoutmuch |
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II |
Supersedes https://github.com/leanprover-community/mathlib4/pull/33519
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
680/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean |
3 |
200 |
['github-actions', 'grunweg', 'idontgetoutmuch'] |
grunweg assignee:grunweg |
2-58657 2 days ago |
2-57930 2 days ago |
16-84409 16 days |
| 34875 |
banrovegrie author:banrovegrie |
feat(LinearAlgebra/Matrix): add Sherman-Morrison formula |
Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap.
- Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}`
- Add `Matrix.inv_sub_vecMulVec`: subtraction variant
- Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses
## Test plan
- [x] `lake build` passes
- [x] Lines within 100 char limit
- [x] All declarations have docstrings |
t-algebra
new-contributor
label:t-algebra$ |
135/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean |
2 |
11 |
['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
kim-em assignee:kim-em |
2-57103 2 days ago |
25-4217 25 days ago |
26-56615 26 days |
| 35916 |
themathqueen author:themathqueen |
feat(Analysis/CStarAlgebra): `IsIdempotentElem a ↔ spectrum R a ⊆ {0, 1}` |
... also adds a tfae for `IsStarProjection` in C*-algebras and that if `star x * x` is idempotent then so is `x * star x`.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
large-import
|
58/4 |
Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Basic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/NonUnital.lean,Mathlib/Analysis/CStarAlgebra/Projection.lean |
3 |
2 |
['github-actions', 'themathqueen'] |
nobody |
2-51969 2 days ago |
2-53751 2 days ago |
2-65660 2 days |
| 30339 |
grunweg author:grunweg |
feat: extend a tangent vector for a locally smooth vector field |
Given a vector bundle `V` over `M` and a vector `X` in the fibre `E x` some point `x`,
construct a section of `V` which is smooth near `x` and has value `X` at `x`.
This will be used to prove the tensoriality of covariant derivatives.
From the path towards geodesics and the Levi-Civita connection.
Co-authored-by: Patrick Massot [patrickmassot@free.fr](mailto:patrickmassot@free.fr)
---
Open questions I'd like a second opinion on:
- should this definition be generalised to any local frame (on some set `U ∋ x`)? this would be easy; at the moment, I don't see how we would need that
- should the new definition be namespaced, e.g. in the Trivialization namespace?
- order of the explicit arguments: first e then b, or the other way around? might be resolved by the previous point
- [x] depends on: #30083
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
95/3 |
Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean |
1 |
8 |
['github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'ocfnash'] |
ocfnash assignee:ocfnash |
2-50516 2 days ago |
2-50568 2 days ago |
2-52691 2 days |
| 29982 |
hrmacbeth author:hrmacbeth |
feat: new `isolate` tactic |
This PR adds a new tactic, `isolate`, which "solves for x" in an equation or relation. For example:
```lean
example (a b : ℝ) (f : ℝ → ℝ) : 5 * f a - 3 < b := by
isolate f a
-- new goal: `⊢ f a < (b + 3) / 5`
```
The `isolate` tactic may generate side goals, if these are necessary to justify the transformation. The tactic will attempt to justify such side goals using `positivity` (as in the above example), unification, or type class inference, but if unsuccessful will present them to the user. For example:
```lean
example (a b c : ℝ) (f : ℝ → ℝ) : c * f a - 3 < b := by
isolate f a
-- new goal: `⊢ f a < (b + 3) / c`
-- second (side) new goal: `⊢ 0 < c`
```
The `isolate` tactic is extensible. Coverage may be extended to new relations and new operations-to-be-undone by tagging appropriate lemmas with the new `@[isolate]` attribute.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-meta
|
943/1 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Data/Real/Sqrt.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Isolate.lean,Mathlib/Tactic/Isolate/Core.lean,Mathlib/Tactic/Isolate/Tagging.lean,Mathlib/Tactic/Relation/Symm.lean,MathlibTest/Isolate/Heavyweight.lean,MathlibTest/Isolate/Lightweight.lean,scripts/noshake.json |
12 |
45 |
['JovanGerb', 'PatrickMassot', 'Vierkantor', 'github-actions', 'hrmacbeth', 'kim-em', 'mathlib4-merge-conflict-bot'] |
JovanGerb assignee:JovanGerb |
2-46381 2 days ago |
2-46381 2 days ago |
51-33575 51 days |
| 35834 |
homeowmorphism author:homeowmorphism |
feat(Mathlib/GroupTheory/PresentedGroup): every group has a presentation |
We show that every group has a presentation defined by taking the free group with all of the group elements as the generators, and defining the relations as the kernel of the induced subjective homomorphism from that free group to the group itself.
Use of AI: This has been vibe-coded with GPT-Codex-5.3, was updated through review, and was double-checked by the author.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-group-theory
large-import
|
29/1 |
Mathlib/GroupTheory/PresentedGroup.lean |
1 |
12 |
['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'mathlib-bors', 'plp127', 'tb65536'] |
nobody |
2-37786 2 days ago |
2-68446 2 days ago |
2-68390 2 days |
| 35639 |
vihdzp author:vihdzp |
chore(Order/SuccPred/Limit): use `to_dual` on everything that was missing |
---
- [x] depends on: #34882
[](https://gitpod.io/from-referrer/)
|
maintainer-merge |
36/135 |
Mathlib/Data/Fintype/Card.lean,Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/SuccPred/Limit.lean |
3 |
4 |
['JovanGerb', 'github-actions', 'mathlib-dependent-issues'] |
adamtopaz assignee:adamtopaz |
2-35223 2 days ago |
9-30911 9 days ago |
9-60743 9 days |
| 35944 |
euprunin author:euprunin |
chore: replace uses of `omega` with `lia` |
As [previously discussed](https://github.com/leanprover-community/mathlib4/pull/32666), the plan is to migrate from `omega` to `lia`, the linear integer arithmetic component of `grind`.
Trace profiling results (differences <30 ms considered measurement noise):
* `AnalyticAt.analyticOrderAt_sub_eq_one_of_deriv_ne_zero`: 1094 ms before, 979 ms after 🎉
* `CategoryTheory.Pretriangulated.shiftFunctorCompIsoId_op_inv_app`: unchanged 🎉
* `Lagrange.leadingCoeff_eq_sum`: unchanged 🎉
* `Finset.intervalGapsWithin_snd_of_lt`: unchanged 🎉
* `Finset.intervalGapsWithin_le_fst`: unchanged 🎉
* `Ideal.exists_radical_pow_le_of_fg`: unchanged 🎉
* `PowerSeries.coeff_X_mul_largeSchroderSeriesSeries_sq`: unchanged 🎉
---
[](https://gitpod.io/from-referrer/)
|
|
9/9 |
Mathlib/Analysis/Analytic/Order.lean,Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean,Mathlib/LinearAlgebra/Lagrange.lean,Mathlib/Order/Interval/Finset/Gaps.lean,Mathlib/RingTheory/Finiteness/Ideal.lean,Mathlib/RingTheory/PowerSeries/Schroder.lean |
6 |
1 |
['github-actions'] |
nobody |
2-34857 2 days ago |
2-33548 2 days ago |
2-33492 2 days |
| 35325 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Acyclic): `ENat.card V ≤ 2 → G.IsAcyclic` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
26/3 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Data/Finite/Card.lean |
2 |
2 |
['Rida-Hamadani', 'github-actions'] |
nobody |
2-33883 2 days ago |
2-31898 2 days ago |
16-84550 16 days |
| 35772 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this 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 <30 ms considered measurement noise):
* `CategoryTheory.Precoverage.toGrothendieck_toCoverage`: unchanged 🎉
* `Int.nonneg_or_nonpos_of_mul_nonneg`: unchanged 🎉
* `Associated.separable`: 113 ms before, 67 ms after 🎉
* `ModelWithCorners.isInteriorPoint_disjointUnion_left`: unchanged 🎉
* `ModelWithCorners.isInteriorPoint_disjointUnion_right`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This 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/)
|
|
5/49 |
Mathlib/CategoryTheory/Sites/Coverage.lean,Mathlib/Data/Int/Order/Basic.lean,Mathlib/FieldTheory/Separable.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean |
4 |
1 |
['github-actions', 'vihdzp'] |
nobody |
2-28201 2 days ago |
6-49873 6 days ago |
6-49817 6 days |
| 34554 |
SnirBroshi author:SnirBroshi |
feat(Data/Nat/Factorization/Divisors): calculate divisors using prime factorization |
---
There are over 200 files that import both `divisors` and `factorization`, but none of them seemed to fit, so I created a new file for this.
(`Data.Nat.Factorization.PrimePow` and `NumberTheory.ArithmeticFunction.Misc` are the best I found)
[](https://gitpod.io/from-referrer/)
|
t-data |
91/0 |
Mathlib.lean,Mathlib/Data/Nat/Factorization/Divisors.lean |
2 |
20 |
['SnirBroshi', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'jcommelin', 'mathlib-bors', 'plp127'] |
joneugster assignee:joneugster |
2-26213 2 days ago |
6-81203 6 days ago |
7-40372 7 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'] |
adamtopaz assignee:adamtopaz |
2-26212 2 days ago |
20-80523 20 days ago |
20-80467 20 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'] |
dwrensha assignee:dwrensha |
2-26212 2 days ago |
16-84269 16 days ago |
19-50690 19 days |
| 35756 |
mariainesdff author:mariainesdff |
feat(Data/Nat/Choose/Multinomial): add lemmas |
Co-authored-by: @AntoineChambert-Loir.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
t-data
|
25/0 |
Mathlib/Data/Nat/Choose/Multinomial.lean |
1 |
1 |
['github-actions'] |
Vierkantor assignee:Vierkantor |
2-26210 2 days ago |
6-78434 6 days ago |
6-78378 6 days |
| 35764 |
YaelDillies author:YaelDillies |
feat(Data/Finsupp): characterise when `Finsupp` is `Nontrivial` |
From ClassFieldTheory
---
[](https://gitpod.io/from-referrer/)
|
t-data |
15/6 |
Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Single.lean |
2 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
2-26209 2 days ago |
6-68696 6 days ago |
6-68640 6 days |
| 35804 |
mariainesdff author:mariainesdff |
feat(RingTheory/DividedPowerAlgebra/Init): add universal divided power algebra |
We define the universal divided power algebra of an `R`-module `M`.
Co-authored by @AntoineChambert-Loir
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
281/0 |
Mathlib.lean,Mathlib/RingTheory/DividedPowerAlgebra/Init.lean |
2 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
2-26203 2 days ago |
5-64034 5 days ago |
5-63978 5 days |
| 35807 |
Raph-DG author:Raph-DG |
chore(Topology): Generalised some of the instances for Function.locallyFinsuppWithin |
In this PR, we generalised the various instances for locally fin supp functions. These changes were originally made on the PR #26304 about algebraic cycles, but it was decided that these changes are more appropriate in their own PR.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
57/23 |
Mathlib/Topology/LocallyFinsupp.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
2-26202 2 days ago |
5-71303 5 days ago |
5-71247 5 days |
| 35818 |
Vierkantor author:Vierkantor |
chore(Tactic): rewrite `finiteness` tactic docstring |
This PR (re)writes the docstrings for the `finiteness` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long.
A bit of restructuring and clarification.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
18/5 |
Mathlib/Tactic/Finiteness.lean |
1 |
1 |
['github-actions'] |
adamtopaz assignee:adamtopaz |
2-26198 2 days ago |
5-55234 5 days ago |
5-55178 5 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 |
265/7 |
Mathlib/Geometry/Euclidean/Sphere/OrthRadius.lean,Mathlib/Geometry/Euclidean/Sphere/Tangent.lean |
2 |
28 |
['Parcly-Taxel', 'eric-wieser', 'github-actions', 'jsm28', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot'] |
JovanGerb assignee:JovanGerb |
2-26051 2 days ago |
13-68335 13 days ago |
101-76441 101 days |
| 35884 |
Parcly-Taxel author:Parcly-Taxel |
chore: fix induction and recursor names |
* `Finset.induction_on_{min,max}`, `Finset.induction_on_{min,max}_value`
* `FreeAbelianGroup.induction_on`, `FreeAbelianGroup.induction_on'`
Applications of these induction principles are also fixed. |
tech debt |
109/112 |
Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Data/Finset/Max.lean,Mathlib/GroupTheory/FreeAbelianGroup.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean |
5 |
6 |
['Parcly-Taxel', 'chenson2018', 'github-actions'] |
nobody |
2-26034 2 days ago |
2-24033 2 days ago |
3-79821 3 days |
| 35954 |
mcdoll author:mcdoll |
feat(Analysis/Fourier): the Fourier transform as bounded continuous function |
This is the main step in proving that the Fourier transform defined via the integral is equal to the Fourier transform on `L1` via extension of Schwartz functions. We do not use the Riemann-Lebesgue lemma here to define the map into `ZeroAtInftyContinuousMap` because it is possible to deduce Riemann-Lebesgue from embedding of Schwartz functions.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
87/5 |
Mathlib/Analysis/Fourier/FourierTransform.lean |
1 |
1 |
['github-actions'] |
nobody |
2-14580 2 days ago |
2-13863 2 days ago |
2-13807 2 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'] |
nobody |
2-13865 2 days ago |
2-13277 2 days ago |
32-17023 32 days |
| 35069 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): simple polygons and boundary map |
This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution.
- [ ] depends on: #34598
---
|
new-contributor
t-euclidean-geometry
|
360/0 |
Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean |
4 |
29 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] |
nobody |
2-11718 2 days ago |
6-44736 6 days ago |
8-80075 8 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 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
eric-wieser assignee:eric-wieser |
2-7555 2 days ago |
2-7555 2 days ago |
6-74023 6 days |
| 35851 |
vihdzp author:vihdzp |
chore(SetTheory/Ordinal/Arithmetic): remove `backward.privateInPublic` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
tech debt
|
12/17 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean |
1 |
5 |
['github-actions', 'plp127', 'vihdzp'] |
nobody |
2-7404 2 days ago |
2-5881 2 days ago |
4-82117 4 days |
| 35956 |
Scarlett-le author:Scarlett-le |
feat: add orthogonality lemmas for inner product spacesonal |
## Summary
Adds two lemmas about orthogonality in inner product spaces.
## New declarations
- `real_inner_sub_smul_div_inner_self_eq_zero` (`Mathlib.Analysis.InnerProductSpace.Basic`): the inner product of `u - (⟪u, d⟫_ℝ / ⟪d, d⟫_ℝ) • d` with `d` is zero; subtracting the orthogonal projection of `u` onto `d` yields a vector orthogonal to `d`. Holds unconditionally including when `d = 0`.
- `mem_span_singleton_of_inner_eq_zero_of_inner_eq_zero` (`Mathlib.Analysis.InnerProductSpace.Projection.FiniteDimensional`): in a two-dimensional inner product space, if nonzero vectors `w` and `u` are both orthogonal to the same nonzero vector `v`, then `u` lies in the span of `w`. |
t-analysis |
25/0 |
Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean |
2 |
1 |
['github-actions'] |
nobody |
2-6396 2 days ago |
2-5483 2 days ago |
2-5427 2 days |
| 28685 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): prove the minimal-degree version of the Erdős-Stone theorem |
Proves the minimal degree-version of the Erdős-Stone theorem:
If `G` has a minimal degree of at least `(1 - 1 / r + o(1)) * card V`, then `G` contains a copy of a `completeEquipartiteGraph` in `r + 1` parts each of size `t`.
The double-counting construction from the proof is available in `namespace ErdosStone`.
---
- [x] depends on: #25843
- [x] depends on: #27597
- [x] depends on: #27599
- [x] depends on: #28443
- [x] depends on: #28445
- [x] depends on: #28446
- [x] depends on: #28447
This is the first of several pull requests towards the full Erdős-Stone(-Simonovits) theorem, hence the name of the file.
[](https://gitpod.io/from-referrer/) |
t-combinatorics |
323/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
nobody |
2-5697 2 days ago |
2-5201 2 days ago |
2-5145 2 days |
| 32987 |
kim-em author:kim-em |
feat: pipeline downloads and decompression in `cache get` |
This PR modifies `lake exe cache get` to decompress files as they download, rather than waiting for all downloads to complete first.
Previously the cache system had two sequential phases: download all files using `curl --parallel`, then decompress all files using a single `leantar` call. Now a background task spawns sequential batched `leantar` calls to decompress files as downloads complete, pipelining network I/O and disk I/O.
🤖 Prepared with Claude Code
- [x] depends on: #34667 |
t-meta
maintainer-merge
|
190/35 |
Cache/IO.lean,Cache/Requests.lean |
2 |
65 |
['Vierkantor', 'eric-wieser', 'github-actions', 'joneugster', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
2-3149 2 days ago |
2-28576 2 days ago |
60-59736 60 days |
| 35947 |
euprunin author:euprunin |
chore: replace `aesop` with `grind` where the latter is significantly faster |
This experiment investigates the impact of replacing particularly heavy `aesop` calls with `grind`, specifically how this change affects the instruction count as measured by the benchmarking infrastructure.
Trace profiling results (differences <30 ms considered measurement noise):
* `Submonoid.mem_closure_image_one_lt_iff`: 125 ms before, 61 ms after 🎉
* `SimpleGraph.Connected.connected_delete_edge_of_not_isBridge`: 230 ms before, 51 ms after 🎉
* `SimpleGraph.Subgraph.IsMatching.exists_of_disjoint_sets_of_equiv`: 899 ms before, 666 ms after 🎉
* `SimpleGraph.IsCycles.existsUnique_ne_adj`: 855 ms before, 599 ms after 🎉
* `SimpleGraph.Walk.IsPath.isCycles_spanningCoe_toSubgraph_sup_edge`: 962 ms before, 619 ms after 🎉
* `SimpleGraph.IsAlternating.sup_edge`: 2854 ms before, 1615 ms after 🎉
* `SimpleGraph.Subgraph.IsPerfectMatching.symmDiff_of_isAlternating`: 3103 ms before, 1734 ms after 🎉
* `SimpleGraph.edgeSet_replaceVertex_of_not_adj`: 1525 ms before, 933 ms after 🎉
* `SimpleGraph.edgeSet_replaceVertex_of_adj`: 2194 ms before, 1605 ms after 🎉
* `SimpleGraph.tutte_exists_isPerfectMatching_of_near_matchings`: 3161 ms before, 1652 ms after 🎉
* `RootPairing.Base.sub_notMem_range_root`: 1025 ms before, 978 ms after 🎉
* `RootPairing.EmbeddedG2.mem_allRoots`: 3832 ms before, 3255 ms after 🎉
* `RootSystem.GeckConstruction.Lemmas.0.RootPairing.chainBotCoeff_mul_chainTopCoeff.aux_2`: 3572 ms before, 2631 ms after 🎉
* `isCompact_generateFrom`: 1987 ms before, 763 ms after 🎉
* `IsCompactOpenCovered.of_isCompact_of_forall_exists_isCompactOpenCovered`: 2279 ms before, 2009 ms after 🎉
* `UniformContinuousOn.comp_tendstoUniformly_eventually`: 416 ms before, 151 ms after 🎉
Profiled using `set_option trace.profiler true in`.
This 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/)
|
|
27/27 |
Mathlib/Algebra/Group/Irreducible/Indecomposable.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/LinearAlgebra/RootSystem/Base.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Sets/CompactOpenCovered.lean,Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean |
11 |
4 |
['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] |
nobody |
2-319 2 days ago |
2-28360 2 days ago |
2-28304 2 days |
| 35632 |
SnirBroshi author:SnirBroshi |
feat(Data/List/TakeDrop): `take`/`drop` + `tail`/`dropLast` almost commute |
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/List.2Etail.2FList.2EdropLast.20.2B.20List.2Etake/with/572294698)
[](https://gitpod.io/from-referrer/)
|
t-data |
22/0 |
Mathlib/Data/List/TakeDrop.lean |
1 |
3 |
['SnirBroshi', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
1-86292 1 day ago |
10-8406 10 days ago |
10-8350 10 days |
| 35962 |
euprunin author:euprunin |
chore: golf using `simp` |
The goal of this 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 <30 ms considered measurement noise):
* `CategoryTheory.MonoidalCategory.leftUnitor_monoidal`: unchanged 🎉
* `MeasureTheory.Measure.haar.is_left_invariant_index`: unchanged 🎉
* `Ideal.Filtration.submodule_fg_iff_stable`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This 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/)
|
|
4/10 |
Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/Basic.lean,Mathlib/RingTheory/Filtration.lean |
3 |
1 |
['github-actions'] |
nobody |
1-85384 1 day ago |
1-84318 1 day ago |
1-84262 1 day |
| 35960 |
vihdzp author:vihdzp |
chore(Order/ConditionallyCompleteLattice/Basic): remove `backward.isDefEq.respectTransparency` |
---
[](https://gitpod.io/from-referrer/)
|
t-order
easy
|
0/8 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
1-84175 1 day ago |
1-84175 1 day ago |
1-84119 1 day |
| 34758 |
Hagb author:Hagb |
feat(RingTheory/MvPolynomial/MonomialOrder): misc lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
52/2 |
Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
1 |
7 |
['Hagb', 'erdOne', 'github-actions'] |
mattrobball assignee:mattrobball |
1-83690 1 day ago |
1-82998 1 day ago |
20-53828 20 days |
| 35896 |
harahu author:harahu |
chore(misc): fix typos |
The typos were identified by `PyCharm`'s proofreading inspection.
---
[](https://gitpod.io/from-referrer/)
|
|
90/90 |
Mathlib/Algebra/Category/ModuleCat/Ulift.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Homology/BifunctorShift.lean,Mathlib/Algebra/Homology/Embedding/ExtendHomotopy.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplexSingle.lean,Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/Lie/EngelSubalgebra.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Algebra/Order/SuccPred/TypeTags.lean,Mathlib/Algebra/Polynomial/PartialFractions.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/AlgebraicGeometry/Morphisms/Flat.lean,Mathlib/AlgebraicGeometry/Normalization.lean,Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/GeneratorsRelations/EpiMono.lean,Mathlib/AlgebraicTopology/SimplicialSet/HoFunctorMonoidal.lean,Mathlib/Analysis/Analytic/Composition.lean,Mathlib/Analysis/Calculus/DifferentialForm/VectorField.lean,Mathlib/Analysis/Calculus/TangentCone/Seq.lean,Mathlib/Analysis/Complex/Positivity.lean,Mathlib/Analysis/Complex/UnitDisc/Basic.lean,Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean,Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/Distribution.lean,Mathlib/Analysis/InnerProductSpace/Coalgebra.lean,Mathlib/Analysis/InnerProductSpace/OfNorm.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Algebra/GelfandMazur.lean,Mathlib/Analysis/Normed/Module/ContinuousInverse.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/RCLike/Real.lean,Mathlib/Analysis/Normed/Operator/ContinuousAlgEquiv.lean,Mathlib/Analysis/Normed/Unbundled/FiniteExtension.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/Extremal.lean,Mathlib/CategoryTheory/Abelian/Injective/Resolution.lean,Mathlib/CategoryTheory/Comma/Over/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/Categorical/Basic.lean,Mathlib/CategoryTheory/LocallyCartesianClosed/ExponentiableMorphism.lean,Mathlib/CategoryTheory/Sites/Descent/DescentDataAsCoalgebra.lean,Mathlib/CategoryTheory/Sites/Point/Over.lean,Mathlib/CategoryTheory/Sites/SheafOfTypes.lean,Mathlib/Combinatorics/Matroid/Map.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Condensed/Light/InternallyProjective.lean,Mathlib/Data/Matrix/ColumnRowPartitioned.lean,Mathlib/Data/Seq/Defs.lean,Mathlib/Data/Set/Operations.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/LinearAlgebra/TensorPower/Symmetric.lean,Mathlib/LinearAlgebra/Transvection.lean,Mathlib/NumberTheory/Chebyshev.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Def.lean,Mathlib/Probability/Independence/Process.lean,Mathlib/RingTheory/Extension/Cotangent/Basic.lean,Mathlib/RingTheory/Flat/TorsionFree.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean,Mathlib/RingTheory/IntegralClosure/Algebra/Ideal.lean,Mathlib/RingTheory/PowerSeries/Expand.lean,Mathlib/RingTheory/QuasiFinite/Basic.lean,Mathlib/RingTheory/Smooth/Fiber.lean,Mathlib/RingTheory/ZariskisMainTheorem.lean,Mathlib/Topology/MetricSpace/CoveringNumbers.lean,Mathlib/Topology/MetricSpace/PartitionOfUnity.lean |
69 |
1 |
['github-actions'] |
nobody |
1-83029 1 day ago |
1-82357 1 day ago |
1-82301 1 day |
| 35928 |
xgenereux author:xgenereux |
feat(Subalgebra/Lattice): add notation for Algebra.adjoin |
This PR proposes a scoped notation for Algebra.adjoin, `R[a]`, inspired from `IntermediateField.adjoin`.
See [here](https://live.lean-lang.org/#codez=JYWwDg9gTgLgBAWQIYwBYBtgCMBQOC0+cAggCZJgwCmpcAxhKVXAGZQQhwAGAkgHbUoIGsBRUAYsCrpSXAHQ4+SYQGcwSOs2LoA5lSxQkeCGCp84AGSpJzwPjgD0hOAGUArmEiw7O1m750MMAQ5izQcGjMXABKANoAHoCBBAA08YBBBMlyWamAmQQAulxwSKQAVv6BweZ8EDAolXJw+A44YFDAAG5icMK1cEws3QDW/CpUsAAqY5wA3pwAXHDjAJ6mcIBJhIsrVAC+cLEIIcXdeXsHSqQAim41dSHHOHCPcAAU8SpwC+MuSwJI8cRQQxLbiCEAASg+3UWUw+AF44FB/HAAAxwADuqDGVAeCKRz2AkIAcigIQtOJMhHC+hAcY9gANUJCCQBqOAARjg8LechUwAAXsxIvYnk8uFxnry+Dp0FQYHcACSvFSxYB5MFg2lwaSjOD0uCMhYEgA8cG5vIFEUxwpF3HFdlGsDgireKrVTuegATCXHmfFwVls9UakXa7E223PACi4BgSwAwhB0DKKiE5FRo3GE0mgiENY5nDwBlwkqa0nAsg14jlIcRCkLuHEkqkMuXcgVde9Itx3FgkLp9IY4NESFwcHo+GMxLQsMDIjrpGmzDAVA0mjgVAxTLQQBp2HMAJxs5GogDSc1BcAARLEL6aVGepskAFSXvI3hbn2EAPmp4eKJQgdhOse7peiAwx8A6MAUpw3J6DAEYyiAKjqsYpjmFYNhwAAClAsoxjhdiCHIAAi0hIFg0AoOE3YRvErS6vYAACsQUGAAD6TDoORJB9gYSByH+AF8HkOA9EgcDqN4vZ9FQAyceRZD/nYhI3Nm5gLKRXFYFSGJmFhWEAPKUJUcBwfpKm1Gp1I4jK8DMF6cG0a0OI6G4SBQLQRoAD5anIwAqMQngGSwALADGtqCYBABsNmynA4hwF6aJhagxJQEsAK+Ki8m4I8tm3ol6IpWlGVQL4ACsMlaSMYwwACQI4uK8riLEzrLnK9VIEsYJPmqOC6bhOI5TVsCdcCGlkVgCAvBY/nwNBpLwqQNIivl9mmbKTlQJqepUH5AVBSFbThWKUaUBmiZUMmfCpum8aXddcAAEyWmYmqPLhMBuFA5ixCJwboDqu37YFYDBaFJ1cJK0qyncAAsr3WqtcXxIVyVoCVmVwAAzFV5HvQisrfb98T/U8Ia6gMe3+aD4PHcCYr2rVcCVUKBP5ajSXFe5pW+LjOXsyj7xcxjPNYwjw0QbVY0E59xOmh8CxvJqFMsEgwDoN92I4GYtDaHofF4M4tHKGAMoqHgoyPdUQi9gAqqMsZIKMqFmDxBuGEbRAqbb6BwG4LudG05Eyi8Q7EJCyymI+EKxPGIAgC4abAG0UqDicsRJyAKc+CQGf6/24nhyc0zidpdDVtseBUPEpuhwscRICc8KN8kRQnHM8LTnAvLgHgADEdCYnQgyDixImD8Po+t3AWAT0PV3TyxbdYG3dAiTrfC0Db27oA7VBOy7a5XVZdBcSoqB4EHohYKHzzh5HWwx3s8eJ8nqe+NEGdZznafEPnvEBzFzgNMAAGpXV25gsIJh+BwUQ6AcAmDdgXPicAcCT0XmPUBJxnBxGwY/VYbg2Jsmrlveg59L54BwEAA) for a preview of how it would look like.
Note that I am currently using bracked, `[`, `]`. I know this clashes with the notation for `Polynomial`, `DualNumber`, `AdjoinRoot` and `GetElem` but it is my impression that it would rarely cause issues.
See [#mathlib4 > Notation for Algebra.adjoin](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Notation.20for.20Algebra.2Eadjoin/with/576551144).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
239/186 |
Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/DualNumber.lean,Mathlib/Analysis/Normed/Unbundled/IsPowMulFaithful.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Defs.lean,Mathlib/FieldTheory/Minpoly/IsIntegrallyClosed.lean,Mathlib/FieldTheory/Minpoly/MinpolyDiv.lean,Mathlib/LinearAlgebra/Complex/Module.lean,Mathlib/LinearAlgebra/Semisimple.lean,Mathlib/NumberTheory/JacobiSum/Basic.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Basic.lean,Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean,Mathlib/RingTheory/Adjoin/PowerBasis.lean,Mathlib/RingTheory/Adjoin/Singleton.lean,Mathlib/RingTheory/Algebraic/Basic.lean,Mathlib/RingTheory/Conductor.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean,Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean,Mathlib/RingTheory/Polynomial/Ideal.lean,Mathlib/RingTheory/RootsOfUnity/Lemmas.lean,Mathlib/RingTheory/Unramified/LocalStructure.lean,Mathlib/RingTheory/Valuation/LocalSubring.lean,Mathlib/Topology/Algebra/Algebra.lean |
23 |
3 |
['github-actions', 'xgenereux'] |
nobody |
1-82290 1 day ago |
1-82290 1 day ago |
2-35774 2 days |
| 35805 |
adrianmartir author:adrianmartir |
feat(NumberTheory/Divisors): Add `infinite_setOf_divisors_iff` |
This proves that the set of divisors `{ m | m | n }` of a natural number `n` is infinite if and only if `n` is zero. The first proof draft was by @Aristotle-Harmonic.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
10/0 |
Mathlib/NumberTheory/Divisors.lean |
1 |
5 |
['adrianmartir', 'alexjbest', 'github-actions'] |
alexjbest assignee:alexjbest |
1-81006 1 day ago |
1-80115 1 day ago |
5-71086 5 days |
| 35966 |
joelriou author:joelriou |
feat(CategoryTheory/Abelian): the localization w.r.t. a Serre class is abelian |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
large-import
|
276/6 |
Mathlib/CategoryTheory/Abelian/SerreClass/Localization.lean |
1 |
1 |
['github-actions'] |
nobody |
1-77171 1 day ago |
1-76577 1 day ago |
1-76521 1 day |
| 35890 |
grunweg author:grunweg |
chore: delete deprecated module Topology/PartialHomeomorph |
This module was deprecated on October 3, and is blocking refactoring of the manifold library.
---
This PR should only be merged on March 3rd: please delegate instead of merging!
[](https://gitpod.io/from-referrer/)
|
t-topology
easy
|
0/11 |
Mathlib.lean,Mathlib/Topology/PartialHomeomorph.lean |
2 |
5 |
['fpvandoorn', 'github-actions', 'mathlib-bors'] |
nobody |
1-74656 1 day ago |
1-74656 1 day ago |
3-58294 3 days |
| 35874 |
xgenereux author:xgenereux |
feat(Adjoin/Polynomial/Bivariate): IsAlgebraic.adjoin_singleton |
This PR builds up to the following theorem:
- `IsAlgebraic.adjoin_singleton`:
Given two transcendental elements `a`, `b` over `R`, if one of them, say `a`, is algebraic over
`R[b]` then `b` is algebraic over `R[a]`.
In particular, it uses maps between `R[a]` and `R[X]` as well of some of the Bivariate polynomial API.
The results are necessary in preparation for the following: Given a function field `K` and `(y : K)` such that
`(hy : Transcendental Fq y)` then we have:
```
FiniteDimensional Fq⟮y⟯ K
```
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
90/0 |
Mathlib.lean,Mathlib/RingTheory/Adjoin/Polynomial/Bivariate.lean |
2 |
6 |
['github-actions', 'joneugster', 'mathlib-merge-conflicts', 'robin-carlier', 'xgenereux'] |
nobody |
1-73821 1 day ago |
1-73245 1 day ago |
1-73189 1 day |
| 35637 |
vihdzp author:vihdzp |
chore(Topology/Order/LeftRight): use `to_dual` |
This overlaps with #35635, but the overlap is small (and that PR still needs some work, so I'd rather get this out of the way first).
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge |
32/26 |
Mathlib/Order/Interval/Set/LinearOrder.lean,Mathlib/Tactic/Translate/ToDual.lean,Mathlib/Topology/Order/LeftRight.lean |
3 |
8 |
['JovanGerb', 'github-actions', 'vihdzp'] |
jcommelin assignee:jcommelin |
1-72888 1 day ago |
1-70816 1 day ago |
9-86378 9 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$ |
66/1 |
Mathlib/Algebra/MvPolynomial/Rename.lean |
1 |
6 |
['Hagb', 'dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
1-72877 1 day ago |
1-72877 1 day ago |
24-21125 24 days |
| 34624 |
homeowmorphism author:homeowmorphism |
feat(GroupTheory/FreeGroup/Basic): surjection between types induces surjection between free groups on those types |
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 |
24 |
['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'mathlib-merge-conflicts', 'tb65536', 'vlad902'] |
riccardobrasca assignee:riccardobrasca |
1-71829 1 day ago |
15-48422 15 days ago |
26-4578 26 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 |
160/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simproc/VecPerm.lean,MathlibTest/Simproc/VecPerm.lean |
4 |
83 |
['JovanGerb', 'Paul-Lez', 'b-mehta', 'eric-wieser', 'github-actions', 'ocfnash'] |
JovanGerb assignee:JovanGerb |
1-66360 1 day ago |
1-75534 1 day ago |
53-51106 53 days |
| 35984 |
urkud author:urkud |
feat(Topology/VectorBundle): add `simp` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
21/8 |
Mathlib/Topology/VectorBundle/Basic.lean,Mathlib/Topology/VectorBundle/Hom.lean |
2 |
1 |
['github-actions'] |
nobody |
1-61979 1 day ago |
unknown |
unknown |
| 35597 |
BryceT233 author:BryceT233 |
feat(AdicTopology): add lemmas about adic topology |
This PR adds APIs to transport topological and uniform properties of adic topologies across ring equivalences, By upgrading an ideal-preserving ring equivalence to a `UniformEquiv`, we provide natural congruence lemmas for adic completeness, precompleteness, and Hausdorffness, which serve as necessary topological preliminaries for the ongoing formalization of the Cohen Structure Theorem.
Co-authored-by: @Thmoas-Guan
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
55/2 |
Mathlib/RingTheory/AdicCompletion/Topology.lean,Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean |
2 |
7 |
['erdOne', 'github-actions'] |
urkud assignee:urkud |
1-60815 1 day ago |
1-60229 1 day ago |
11-506 11 days |
| 35707 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): introduce `truncTotal` |
This PR introduces the total degree truncation of multivariate formal power series when the index is finite, and uses it to establish the algebraic equivalence between `MvPowerSeries` and the adic completion of `MvPolynomial` with respect to the ideal spanned by all variables `idealOfVars`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
207/2 |
Mathlib.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
4 |
4 |
['github-actions', 'joneugster', 'mathlib-bors'] |
nobody |
1-60786 1 day ago |
1-59740 1 day ago |
8-3086 8 days |
| 35659 |
BryceT233 author:BryceT233 |
chore(Data/Finsupp): update pointwise module structure |
This is the 3rd PR split from #34936 to make the review process easier.
It updates the pointwise module structure `Module (ι → R) (ι →₀ M)` where `R` is a semiring and `M` is an `R`-module.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
25/18 |
Mathlib/Data/Finsupp/Pointwise.lean |
1 |
2 |
['github-actions'] |
joneugster assignee:joneugster |
1-60721 1 day ago |
1-59720 1 day ago |
9-34661 9 days |
| 35647 |
BryceT233 author:BryceT233 |
feat(RingTheory/Ideal/Quotient): add a canonical inclusion map |
This is the second PR split from the larger PR https://github.com/leanprover-community/mathlib4/pull/34936 to make the review process easier.
It introduces `Submodule.powSmulQuotInclusion`, which is the canonical inclusion from `I ^ a • N ⧸ I ^ b • (I ^ a • N)` to `M ⧸ I ^ c • N` where `c = b + a`, and provides auxiliary lemmas for it
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
37/0 |
Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean |
1 |
9 |
['BryceT233', 'erdOne', 'github-actions', 'wwylele'] |
chrisflav assignee:chrisflav |
1-60694 1 day ago |
1-59602 1 day ago |
9-31655 9 days |
| 35646 |
BryceT233 author:BryceT233 |
feat(Algebra): add two lemmas about submodule smul |
This is the first PR split from the larger PR #34936 to make the review process easier.
It adds the following two lemmas regarding pointwise smul and restrictScalars: `Submodule.restrictScalars_image_smul_eq_smul_restrictScalars` and `Submodule.restrictScalars_map_smul_eq_smul_restrictScalars`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
29/0 |
Mathlib/Algebra/Algebra/Operations.lean,Mathlib/RingTheory/Ideal/Maps.lean |
2 |
4 |
['github-actions', 'joneugster'] |
nobody |
1-60631 1 day ago |
1-58880 1 day ago |
9-61342 9 days |
| 35987 |
grunweg author:grunweg |
chore(Tactic/FunProp): document that config options must come before … |
…the discharger
This being undocumented just bit me: let's make the documentation clearer
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
1/0 |
Mathlib/Tactic/FunProp/Elab.lean |
1 |
1 |
['github-actions'] |
nobody |
1-59389 1 day ago |
1-56099 1 day ago |
1-56043 1 day |
| 35594 |
chrisflav author:chrisflav |
feat(RingTheory): `Extension.CotangentSpace` commutes with base change |
From Pi1.
---
- [x] depends on: #35557
- [x] depends on: #35699
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
136/0 |
Mathlib.lean,Mathlib/RingTheory/Extension/Basic.lean,Mathlib/RingTheory/Extension/Cotangent/BaseChange.lean,Mathlib/RingTheory/Extension/Cotangent/Basic.lean |
4 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
1-56979 1 day ago |
1-56979 1 day ago |
1-56923 1 day |
| 35963 |
Parcly-Taxel author:Parcly-Taxel |
refactor: review Kleene algebra axioms |
The docstring did not match the actual conditions in the `KleeneAlgebra` class and there was one more condition than necessary. We replace `one_le_kstar, mul_kstar_le_kstar, kstar_mul_le_kstar` with
```lean
one_add_mul_kstar (a : α) : 1 + a * a∗ = a∗
one_add_kstar_mul (a : α) : 1 + a∗ * a = a∗
```
From the pair, the trio is trivially derivable. The pair's derivation from the trio is Proposition 2 in Kozen's 1994 paper.
We also remove the `bot` and `bot_le` fields in `IdemSemiring`, since the remaining axioms already show `0 ≤ a` for all `a`. |
t-algebra label:t-algebra$ |
102/93 |
Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/Computability/Language.lean |
4 |
11 |
['Parcly-Taxel', 'github-actions', 'plp127', 'vihdzp'] |
nobody |
1-53414 1 day ago |
1-63335 1 day ago |
1-68751 1 day |
| 35974 |
justus-springer author:justus-springer |
feat(Algebra/Polynomial/Bivariate): more API for swap |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
maintainer-merge
label:t-algebra$ |
10/0 |
Mathlib/Algebra/Polynomial/Bivariate.lean |
1 |
2 |
['github-actions', 'robin-carlier'] |
nobody |
1-52436 1 day ago |
1-52349 1 day ago |
1-69369 1 day |
| 35477 |
harahu author:harahu |
chore(Geometry): fix markdown lists |
We 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.
Furthermore, we split some text out of the ultimate item of some markdown lists, where the text was accidentally attached to it.
---
[](https://gitpod.io/from-referrer/)
|
|
11/9 |
Mathlib/Geometry/Diffeology/Basic.lean,Mathlib/Geometry/Euclidean/Sphere/Ptolemy.lean,Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean,Mathlib/Geometry/Manifold/MFDeriv/Defs.lean |
6 |
9 |
['github-actions', 'grunweg', 'harahu', 'mathlib-merge-conflicts'] |
grunweg assignee:grunweg |
1-45530 1 day ago |
3-32544 3 days ago |
10-33080 10 days |
| 35977 |
jessealama author:jessealama |
feat(Algebra/Homology): add dimension lemmas for homological complex differentials |
Show that `dFrom` and `dTo` in a homological complex vanish when the target or source object is zero, and add `Mathlib.Algebra.Homology.ChainComplex.Dimension` with dimension-related properties for complexes of modules over a division ring over an arbitrary `ComplexShape ι`: zero range from zero objects, finrank equalities between `dFrom`/`dTo` ranges and the underlying differential, inclusion of the range of `dTo` in the kernel of `dFrom`, and a finrank equality for adjacent differentials in ℤ-indexed chain complexes.
Spun off from #29713. |
t-algebra label:t-algebra$ |
111/0 |
Mathlib.lean,Mathlib/Algebra/Homology/ChainComplex/Dimension.lean,Mathlib/Algebra/Homology/HomologicalComplex.lean |
3 |
2 |
['github-actions', 'mathlib-bors'] |
nobody |
1-43229 1 day ago |
1-43309 1 day ago |
0-20649 5 hours |
| 29186 |
winstonyin author:winstonyin |
feat: IsIntegralCurve for solutions to ODEs |
I define `IsIntegralCurve` etc. for solutions to ODEs on vector spaces. The translation and scaling lemmas are also included. This parallels `IsMIntegralCurve` etc. for manifolds.
Moved from #26534.
- [x] depends on: #26563
---
[](https://gitpod.io/from-referrer/)
|
t-dynamics
t-differential-geometry
t-analysis
|
309/17 |
Mathlib.lean,Mathlib/Analysis/ODE/Basic.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean |
5 |
32 |
['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mcdoll', 'michaellee94', 'sgouezel', 'winstonyin'] |
sgouezel assignee:sgouezel |
1-42835 1 day ago |
3-51461 3 days ago |
45-47853 45 days |
| 26743 |
grunweg author:grunweg |
feat: product rule for Lie bracket on manifolds |
On the path towards geodesics and the Levi-Civita connection.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
199/27 |
Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean,Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean,Mathlib/Geometry/Manifold/VectorField/Pullback.lean |
4 |
7 |
['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
1-40398 1 day ago |
1-44596 1 day ago |
12-36179 12 days |
| 35998 |
gasparattila author:gasparattila |
feat: affine isomorphisms between spaces of affine maps |
These isomorphisms are analogous to `LinearEquiv.arrowCongr` and `LinearEquiv.congrLeft`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
123/0 |
Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean |
1 |
1 |
['github-actions'] |
nobody |
1-38430 1 day ago |
1-39142 1 day ago |
0-6984 1 hour |
| 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'] |
kex-y assignee:kex-y |
1-37680 1 day ago |
1-40209 1 day ago |
41-80180 41 days |
| 36007 |
grunweg author:grunweg |
chore(Geometry/Manifold/Algebra): golf using custom elaborators |
---
Split out from #30357.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
110/112 |
Mathlib/Geometry/Manifold/Algebra/LieGroup.lean,Mathlib/Geometry/Manifold/Algebra/Monoid.lean,Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean,Mathlib/Geometry/Manifold/Algebra/Structures.lean |
4 |
1 |
['github-actions'] |
nobody |
1-36208 1 day ago |
1-35502 1 day ago |
1-35446 1 day |
| 36009 |
grunweg author:grunweg |
chore(Geometry/Manifold/MFDeriv/SpecificFunctions): golf using custom… |
… elaborators
---
Split out from #30357.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
185/241 |
Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean |
1 |
1 |
['github-actions'] |
nobody |
1-36133 1 day ago |
1-35478 1 day ago |
1-35422 1 day |
| 36010 |
grunweg author:grunweg |
chore(Geometry/Manifold/MFDeriv): golf using custom elaborators |
---
Split out from #30357.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
64/70 |
Mathlib/Geometry/Manifold/MFDeriv/Atlas.lean,Mathlib/Geometry/Manifold/MFDeriv/FDeriv.lean,Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean,Mathlib/Geometry/Manifold/MFDeriv/UniqueDifferential.lean |
4 |
1 |
['github-actions'] |
nobody |
1-36123 1 day ago |
unknown |
unknown |
| 36011 |
grunweg author:grunweg |
chore(Geometry/Manifold/VectorBundle/MDifferentiable): golf using cus… |
…tom elaborators
---
Split out from #30357.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
104/160 |
Mathlib/Geometry/Manifold/VectorBundle/MDifferentiable.lean |
1 |
1 |
['github-actions'] |
nobody |
1-36111 1 day ago |
unknown |
unknown |
| 35724 |
matthewjasper author:matthewjasper |
feat(RingTheory/DedekindDomain/AdicValuation): v-adic integers of `K` are a localization at v^c |
Part of showing `R` is dense in `O_v`, which is used to show that `R / v` is isomorphic to the residue field of `O_v` and
to construct the base change isomorphism for finite adeles.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
large-import
FLT
|
59/0 |
Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
1 |
6 |
['github-actions', 'matthewjasper', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
1-34699 1 day ago |
1-42483 1 day ago |
6-6854 6 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 |
7 |
['github-actions', 'mathlib-merge-conflicts', 'mpenciak', 'robin-carlier'] |
mariainesdff assignee:mariainesdff |
1-33908 1 day ago |
1-32157 1 day ago |
18-32751 18 days |
| 35513 |
vihdzp author:vihdzp |
refactor: redefine `Order.cof` for a preorder |
... instead of using an unbundled relation. This makes it easier to work with, and avoids some `swap rᶜ` incantations.
There are still a bunch of lemmas that make use of unbundled order relations; these will get fixed in follow-up PRs.
---
- [x] depends on: #35517
- [x] depends on: #35519
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
maintainer-merge
|
220/241 |
Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/Order/Cofinal.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean |
3 |
9 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
b-mehta assignee:b-mehta |
1-33800 1 day ago |
5-4056 5 days ago |
7-41859 7 days |
| 36014 |
euprunin author:euprunin |
chore: golf proofs |
The goal of this 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 <30 ms considered measurement noise):
* `Polynomial.smeval_commute_left`: unchanged 🎉
* `lp.norm_rpow_eq_tsum`: unchanged 🎉
* `ComputablePred.rice`: unchanged 🎉
* `ZNum.cmp_to_int`: unchanged 🎉
* `ZMod.inv_coe_unit`: unchanged 🎉
* `Ideal.Filtration.submodule_fg_iff_stable`: 343 ms before, 197 ms after 🎉
* `t2Space_of_properSMul_of_t1Group`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This 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/)
|
|
10/43 |
Mathlib/Algebra/Polynomial/Smeval.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Computability/Halting.lean,Mathlib/Data/Num/ZNum.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/RingTheory/Filtration.lean,Mathlib/Topology/Algebra/ProperAction/Basic.lean |
7 |
1 |
['github-actions'] |
nobody |
1-32917 1 day ago |
unknown |
unknown |
| 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'] |
TwoFX assignee:TwoFX |
1-32684 1 day ago |
1-60819 1 day ago |
15-52310 15 days |
| 36015 |
mcdoll author:mcdoll |
chore(Analysis/SchwartzMap): unify style for `mkCLM` uses |
Avoid using `refine` for definitions and unify the indentation.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
86/85 |
Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean |
2 |
1 |
['github-actions'] |
nobody |
1-32207 1 day ago |
1-31907 1 day ago |
1-31851 1 day |
| 35953 |
mcdoll author:mcdoll |
feat(Analysis/SchwartzMap): estimates for `Lp` and `BCF` norms |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
50/0 |
Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean |
2 |
1 |
['github-actions'] |
nobody |
1-31828 1 day ago |
1-32209 1 day ago |
0-68205 18 hours |
| 33935 |
mckoen author:mckoen |
feat(CategoryTheory/Monoidal/Arrow): define monoidal structure on arrow category |
defines a monoidal category structure on the arrow category of a cartesian closed category.
---
- [x] depends on: #33974
- [x] depends on: #34887
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
487/0 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Arrow.lean,Mathlib/CategoryTheory/Monoidal/Limits/Shapes/Pullback.lean |
3 |
6 |
['dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mckoen'] |
nobody |
1-31488 1 day ago |
5-34676 5 days ago |
2-78673 2 days |
| 35900 |
matthewjasper author:matthewjasper |
chore: Fix non-defeq diamonds on OrderDual |
This only makes changes to fix the diamonds, rather than the general defeq abuse with `OrderDual`.
---
- [ ] depends on: #35995
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
213/116 |
Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/Group/Synonym.lean,Mathlib/Algebra/Order/GroupWithZero/Action/Synonym.lean,Mathlib/Algebra/Order/GroupWithZero/Synonym.lean,Mathlib/Algebra/Order/Module/Defs.lean,Mathlib/Algebra/Order/Module/Synonym.lean,Mathlib/Algebra/Order/Ring/Cast.lean,Mathlib/Algebra/Order/Ring/Synonym.lean,Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Normed/Group/Constructions.lean,Mathlib/Data/Nat/Cast/Synonym.lean,Mathlib/Order/Lattice.lean |
13 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-27154 1 day ago |
1-24033 1 day ago |
3-7059 3 days |
| 34906 |
seewoo5 author:seewoo5 |
feat(NumberTheory/Bernoulli): von Staudt-Clausen theorem |
---
Rado's proof ("A New Proof of a Theorem of v. Staudt", JLMS 1935) of [von Staudt-Clausen theorem](https://en.wikipedia.org/wiki/Von_Staudt%E2%80%93Clausen_theorem). Initially written by AxiomProver (see commit 97a308e) with further golfs with Claude and Codex.
[](https://gitpod.io/from-referrer/)
|
t-number-theory
large-import
|
496/4 |
Mathlib/NumberTheory/Bernoulli.lean,docs/references.bib |
2 |
2 |
['github-actions', 'kckennylau'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
1-26205 1 day ago |
6-8236 6 days ago |
10-33894 10 days |
| 35328 |
astrainfinita author:astrainfinita |
chore: use `IsLUB` `IsGLB` in `CompleteLattice` |
---
- [ ] depends on: #35297
[](https://gitpod.io/from-referrer/)
|
t-order |
322/415 |
Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,Mathlib/CategoryTheory/Subfunctor/Basic.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Set/BooleanAlgebra.lean,Mathlib/Geometry/Convex/Cone/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/Order/Atoms.lean,Mathlib/Order/Bounds/Image.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/CompleteBooleanAlgebra.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/CompleteLattice/Lemmas.lean,Mathlib/Order/CompleteLattice/PiLex.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/Concept.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/Copy.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Hom/Order.lean,Mathlib/Order/Interval/Basic.lean,Mathlib/Order/Nucleus.lean,Mathlib/Order/ScottContinuity/Prod.lean,Mathlib/Order/SupClosed.lean,Mathlib/Probability/Process/Filtration.lean,Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean,Mathlib/Topology/Algebra/Group/GroupTopology.lean,Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean,Mathlib/Topology/Algebra/Ring/Basic.lean,Mathlib/Topology/UniformSpace/Basic.lean |
39 |
20 |
['astrainfinita', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
1-26204 1 day ago |
6-47695 6 days ago |
9-6900 9 days |
| 35401 |
joelriou author:joelriou |
feat(CategoryTheory/Sites): the equivalence between `DescentData'` and `DescentData` |
Co-authored-by: Christian Merten
---
- [x] depends on: #35393
- [x] depends on: #35396
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
64/3 |
Mathlib/CategoryTheory/Sites/Descent/DescentDataPrime.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
adamtopaz assignee:adamtopaz |
1-26202 1 day ago |
4-47127 4 days ago |
4-47071 4 days |
| 35599 |
tb65536 author:tb65536 |
feat(RingTheory/Lasker): second uniqueness theorem for primary decomposition |
This PR proves the second uniqueness theorem for primary decomposition.
---
- [x] depends on: #34221
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
84/6 |
Mathlib/RingTheory/Ideal/AssociatedPrime/Basic.lean,Mathlib/RingTheory/IsPrimary.lean,Mathlib/RingTheory/Lasker.lean |
3 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
riccardobrasca assignee:riccardobrasca |
1-26201 1 day ago |
4-40401 4 days ago |
7-45110 7 days |
| 35607 |
gasparattila author:gasparattila |
fix(Tactic): make `eta_expand` idempotent |
The docstring of `eta_expand` says that it puts terms into a normal form, implying that it is idempontent, however, this is not the case in some tricky cases. This PR changes `eta_expand` so that it gives the normal form in one step.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
57/16 |
Mathlib/Tactic/DefEqTransformations.lean,MathlibTest/DefEqTransformations.lean |
2 |
2 |
['github-actions', 'mathlib-bors'] |
adamtopaz assignee:adamtopaz |
1-26200 1 day ago |
10-34390 10 days ago |
10-34334 10 days |
| 35661 |
chrisflav author:chrisflav |
feat(Geometry/Manifold): a smooth map induces a morphism of locally ringed spaces |
---
I have put things in the `IsManifold` namespace, because `IsManifold.locallyRingedSpace` is in that namespace. It seems to me that this namespace is not very fitting, because `IsManifold` is not mentioned once. Since I am unfamiliar with this part of the library, I refrained from changing it, but I am happy to do so if preferred.
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
t-differential-geometry
|
152/1 |
Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/Geometry/Manifold/LocalInvariantProperties.lean,Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean |
4 |
2 |
['chrisflav', 'github-actions'] |
ocfnash assignee:ocfnash |
1-26199 1 day ago |
9-32076 9 days ago |
9-32020 9 days |
| 35693 |
euprunin author:euprunin |
chore: avoid passing explicit lemmas to `grind` and (terminal) `simp_all` where unnecessary |
The goal of this 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 <30 ms considered measurement noise):
* `SimpleGraph.Walk.IsCycle.getVert_injOn`: 684 ms before, 596 ms after 🎉
* `List.HasPeriod.gcd`: 846 ms before, 807 ms after 🎉
* `List.Sublist.orderedInsert_sublist`: unchanged 🎉
* `Affine.Simplex.exists_forall_dist_eq_iff_exists_excenterExists_and_eq_excenter`: unchanged 🎉
* `Matrix.pow_apply_pos_iff_nonempty_path`: unchanged 🎉
* `RootPairing.Hom.coweightHom_injective`: unchanged 🎉
* `RootPairing.isReduced_iff'`: unchanged 🎉
* `Set.Ico_eq_Ico_iff`: unchanged 🎉
* `Set.Ioc_eq_Ioc_iff`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This 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/9 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Data/List/PeriodicityLemma.lean,Mathlib/Data/List/Sort.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean,Mathlib/LinearAlgebra/RootSystem/Hom.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
8 |
1 |
['github-actions'] |
dupuisf assignee:dupuisf |
1-26198 1 day ago |
8-38895 8 days ago |
8-38839 8 days |
| 35702 |
plp127 author:plp127 |
feat: uniqueness of partial fraction decomposition |
We prove a uniqueness theorem for each existence theorem in the file.
---
- [x] depends on: #35000
- [x] depends on: #35703
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
254/18 |
Mathlib/Algebra/Polynomial/PartialFractions.lean |
1 |
3 |
['github-actions', 'mathlib-bors', 'mathlib-dependent-issues'] |
dagurtomas assignee:dagurtomas |
1-26197 1 day ago |
4-33418 4 days ago |
4-60776 4 days |
| 35731 |
euprunin author:euprunin |
chore: golf using `exact`/`simpa` |
The goal of this 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 <30 ms considered measurement noise):
* `AlgebraicGeometry.Scheme.Cover.exists_of_trans_eq_trans`: unchanged 🎉
* `AlgebraicGeometry.compactSpace_iff_exists`: unchanged 🎉
* `SimplexCategory.eq_id_of_mono`: unchanged 🎉
* `SimplexCategory.eq_id_of_epi`: unchanged 🎉
* `CategoryTheory.GrothendieckTopology.isIso_toPlus_of_isSheaf`: unchanged 🎉
* `CategoryTheory.Functor.isTriangulated_of_op`: unchanged 🎉
* `SimpleGraph.chromaticNumber_top`: unchanged 🎉
* `SimpleGraph.Subgraph.singletonSubgraph_connected`: unchanged 🎉
* `SimpleGraph.Walk.exists_length_eq_one_iff`: unchanged 🎉
* `Turing.TM2to1.addBottom_modifyNth`: unchanged 🎉
* `IsNoetherian.iff_fg`: unchanged 🎉
* `contMDiff_inclusion`: unchanged 🎉
* `FermatLastTheoremForThree_of_FermatLastTheoremThreeGen`: 146 ms before, 91 ms after 🎉
* `FermatLastTheoremForThreeGen.lambda_sq_dvd_c`: 313 ms before, 218 ms after 🎉
* `WithTop.isGLB_sInf`: unchanged 🎉
* `WithBot.succ_eq_bot`: 56 ms before, <30 ms after 🎉
* `WithTop.pred_eq_top`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This 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/)
|
|
22/88 |
Mathlib/AlgebraicGeometry/Cover/Directed.lean,Mathlib/AlgebraicGeometry/Morphisms/QuasiCompact.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/CategoryTheory/Sites/Plus.lean,Mathlib/CategoryTheory/Triangulated/Opposite/Functor.lean,Mathlib/Combinatorics/SimpleGraph/Coloring.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean,Mathlib/FieldTheory/Finiteness.lean,Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/NumberTheory/FLT/Three.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/SuccPred/WithBot.lean |
13 |
22 |
['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] |
robin-carlier assignee:robin-carlier |
1-26196 1 day ago |
4-75611 4 days ago |
7-37708 7 days |
| 35732 |
TJHeeringa author:TJHeeringa |
feat: Added reproducing kernels |
Develops the basic theory of reproducing kernels, which underlies the reproducing kernel
Hilbert spaces. It shows that the kernels form an ordered semiring and common ways of constructing
kernels from other kernels.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
|
1193/0 |
Mathlib.lean,Mathlib/KernelTheory/Kernel.lean |
2 |
5 |
['TJHeeringa', 'github-actions', 'joneugster', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
1-26196 1 day ago |
6-81997 6 days ago |
6-81941 6 days |
| 35760 |
astrainfinita author:astrainfinita |
chore: deprecate `ConditionallyCompleteLinearOrderedField` |
Use the new mixin typeclass instead. Also, move the API for conditionally complete linear ordered fields into the `ConditionallyCompleteLinearOrderedField` namespace, and make instances scoped to this namespace. We should usually use `ℝ` instead.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-order
label:t-algebra$ |
82/30 |
Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Data/Real/CompleteField.lean |
2 |
3 |
['astrainfinita', 'github-actions', 'leanprover-radar'] |
Vierkantor assignee:Vierkantor |
1-26193 1 day ago |
6-73325 6 days ago |
6-73269 6 days |
| 26394 |
winstonyin author:winstonyin |
feat: existence of local flows on manifolds |
This PR continues the work from #21777.
Original PR: https://github.com/leanprover-community/mathlib4/pull/21777
Transfer the existence theorem of local flows on vector spaces to manifolds. The precise statement is:
> If a vector field `v` on a manifold `M` is continuously differentiable at an interior point `x₀`, then for a given `t₀` there exists a neighbourhood `u` of `x₀`, a positive `ε`, and `γ : M → ℝ → M` such that `γ x` is an integral curve of `v` on `(t₀ - ε, t₀ + ε)` for all `x ∈ u`.
This is powerful because all curves `γ x` (each with initial condition `x ∈ u`) share the same existence time interval `(t₀ - ε, t₀ + ε)`, rather than each curve having its own `ε`. This will allow us to show that $C^1$ vector fields on compact manifolds always have global integral curves / global flows.
Any suggestions to shorten the proof or split out useful lemmas are welcome!
- [x] depends on: #26392
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
135/52 |
Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Order/Filter/Prod.lean |
3 |
5 |
['github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'winstonyin'] |
nobody |
1-26192 1 day ago |
unknown |
unknown |
| 35775 |
IvanRenison author:IvanRenison |
feat(Data/List): add theorem `length_eq_two'` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
3/0 |
Mathlib/Data/List/Basic.lean |
1 |
2 |
['IvanRenison', 'github-actions', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
1-26192 1 day ago |
6-37451 6 days ago |
6-45164 6 days |
| 35786 |
DavidLedvinka author:DavidLedvinka |
feat(Order): Add simp lemma for `IsRelUpperSet` and `IsRelLowerSet` |
This is useful in scenarios when `simp` can simplify the relation to true. |
t-order |
8/0 |
Mathlib/Order/UpperLower/Relative.lean |
1 |
3 |
['DavidLedvinka', 'eric-wieser', 'github-actions'] |
bryangingechen assignee:bryangingechen |
1-26191 1 day ago |
5-61793 5 days ago |
6-29759 6 days |
| 35819 |
CBirkbeck author:CBirkbeck |
feat(NumberTheory/ModularForm/EisensteinSeries/E2): Prove E2 is MDifferentiable |
Proof that E2 is MDifferentiable. This proof comes from the Sphere packing project where it was produced by Gauss.
Co-authored-by: Math.inc's Gauss
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
40/0 |
Mathlib.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/E2/MDifferentiable.lean |
2 |
3 |
['github-actions', 'joneugster', 'seewoo5'] |
tb65536 assignee:tb65536 |
1-26188 1 day ago |
5-55167 5 days ago |
5-55111 5 days |
| 35820 |
smmercuri author:smmercuri |
feat: unit lemmas and embedding for `FiniteAdeleRing` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
33/0 |
Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean |
1 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
1-26187 1 day ago |
5-55079 5 days ago |
5-55023 5 days |
| 35828 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/GradedAlgebra/Homogeneous/Hom): homogeneous algebra maps and evaluation |
Define the notion of homogeneous algebra morphism between algebra maps.
Prove that the evaluation of a (weighted) homogeneous multivariate polynomial at adequate elements
of a graded algebra define a homogeneous algebra morphism.
co-authored with @mariainesdff
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
74/0 |
Mathlib.lean,Mathlib/Algebra/GradedMonoid.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Hom.lean |
3 |
2 |
['github-actions', 'joneugster'] |
mattrobball assignee:mattrobball |
1-26186 1 day ago |
5-30102 5 days ago |
5-30046 5 days |
| 35842 |
WenrongZou author:WenrongZou |
feat(MvPowerSeries): subst_C and omit some finiteness of index set |
---
I add some elementary lemma related to substitution of multi variate power series and omit some finiteness of index set (for example in `map_subst` and `HasSubst.X_pow`).
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
78/18 |
Mathlib/Data/Finsupp/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Expand.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Expand.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
5 |
2 |
['WenrongZou', 'github-actions'] |
chrisflav assignee:chrisflav |
1-26185 1 day ago |
4-64480 4 days ago |
5-4272 5 days |
| 35866 |
gad-wiseman author:gad-wiseman |
feat(Topology/Homotopy/Basic): maps homotopic rel S agree on S |
---
This adds an easy lemma showing maps that are `HomotopicRel` a set agree on it. |
t-topology
new-contributor
|
5/0 |
Mathlib/Topology/Homotopy/Basic.lean |
1 |
2 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
1-26182 1 day ago |
4-58319 4 days ago |
4-67018 4 days |
| 34863 |
JovanGerb author:JovanGerb |
feat(to_dual): support recursively reordering arguments |
This PR implements the feature of recursively reordering arguments of arguments in `to_dual`. All of the material on reorderings has been put in the new file `Mathlib.Tactic.Translate.Reorder`.
Ideally, when tagging a structure with `to_dual`, it will try to automatically add the correct `reorder` arguments. But this is only a small quality of life improvement, so I will leave that for a potential future PR. Currently, you have to manually re-tag the projections and constructor if you want them to get a `reorder`.
This PR also improves the trace messages of `trace.translate_detail`.
This PR also adds new error messages for when the given `(reorder := ...)` is malformed.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
573/379 |
Mathlib.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/Order/Basic.lean,Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/Order/Defs/PartialOrder.lean,Mathlib/Order/Directed.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/Lattice.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ToDual.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/Reorder.lean,Mathlib/Tactic/Translate/ToDual.lean,MathlibTest/ToDual.lean,MathlibTest/toAdditive.lean |
15 |
7 |
['JovanGerb', 'bryangingechen', 'github-actions', 'mathlib-merge-conflicts'] |
bryangingechen assignee:bryangingechen |
1-24026 1 day ago |
1-20710 1 day ago |
16-25475 16 days |
| 35939 |
joelriou author:joelriou |
feat(Algebra/Homology): a homology exact sequence for triangles of cochain complexes |
... which become distinguished in the derived category.
---
- [x] depends on: #35938
- [x] depends on: #35937
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
118/0 |
Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean |
2 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-23735 1 day ago |
1-23136 1 day ago |
1-27211 1 day |
| 35789 |
BryceT233 author:BryceT233 |
feat(RingTheory): add some easy lemmas |
This PR adds three small helper lemmas needed for the ongoing formalization of the Cohen Structure Theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
8/1 |
Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/MvPolynomial/Ideal.lean |
2 |
8 |
['BryceT233', 'eric-wieser', 'github-actions', 'vihdzp'] |
riccardobrasca assignee:riccardobrasca |
1-22673 1 day ago |
1-22733 1 day ago |
5-2407 5 days |
| 36019 |
stepan2698-cpu author:stepan2698-cpu |
chore: update undergrad.yaml |
Adds links to various algebraic subjects which are listed in undergrad.yaml as missing from mathlib.
---
[](https://gitpod.io/from-referrer/)
|
|
12/12 |
docs/undergrad.yaml |
1 |
1 |
['github-actions'] |
nobody |
1-22562 1 day ago |
1-22033 1 day ago |
1-21977 1 day |
| 35286 |
urkud author:urkud |
chore: reduce defeq abuse |
Cherry-picked from #35182, improved
---
[](https://gitpod.io/from-referrer/)
|
|
56/33 |
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 |
10 |
['github-actions', 'kbuzzard', 'kim-em', 'urkud'] |
dwrensha assignee:dwrensha |
1-20600 1 day ago |
1-19466 1 day ago |
12-54139 12 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
|
1101/0 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/CayleyExamples.lean,Mathlib/Combinatorics/Quiver/Schreier.lean,Mathlib/Combinatorics/SimpleGraph/CayleySumGraph.lean |
4 |
34 |
['SnirBroshi', 'ZRTMRH', 'github-actions', 'tb65536'] |
nobody |
1-12176 1 day ago |
7-41763 7 days ago |
14-21569 14 days |
| 35733 |
mkaratarakis author:mkaratarakis |
feat: Algebraic setup and matrix coefficients for Gelfond-Schneider theorem |
This PR introduces the foundational algebraic setup and coefficient bounds required for the proof of the Gelfond-Schneider Theorem (Hilbert's Seventh Problem), which establishes that for algebraic numbers $\alpha \neq 0, 1$ and irrational algebraic $\beta$, the number $\alpha^\beta$ is transcendental.
Following the contradiction argument presented in Loo-Keng Hua's "Introduction to Number Theory" (Chapter 17.9, 490 -493) Gelfond's Proof), this file constructs the common number field $K$ and sets up the scaled algebraic integers for the auxiliary linear system. This system will later be solved via Siegel's lemma (Lemma 8.2, 490, Hua).
This PR is essentially the first half of page 490 in the book.
The proof proceeds by assuming $\gamma = \alpha^\beta$ is algebraic, meaning $\alpha$, $\beta$, and $\gamma$ all lie in an algebraic field $K$ of degree $h$.
1. Bundles the common number field $K$, the complex embeddings, and the algebraic preimages $\alpha', \beta', \gamma'$, alongside the core hypotheses of the theorem.
2. Defines the field degree $h = [K : \mathbb{Q}]$, and bounds $m = 2h + 2$ and $n = q^2 / (2m)$ to control the dimensions of the linear system.
3. Defines $c_1$, a natural number chosen so that $c_1 \alpha$, $c_1 \beta$, and $c_1 \gamma$ are algebraic integers in $K$. We prove numerous bounding and integrality lemmas (`isIntegral_c₁α`, `isInt_β_bound`, etc.).
4. Formalizes the core algebraic coefficients $(a+b\beta)^k \alpha^{al} \gamma^{bl}$ which appear in the evaluation of the derivatives of the auxiliary function $R(x)$.
5. By scaling the system by $c_1^{n-1+2mq}$, we successfully restrict the entries of our linear system matrix `A` entirely to the ring of integers $\mathcal{O}_K$, preparing it for the application of Siegel's lemma.
6. House Bounds (`c₂`) : Establishes the foundational base integer $c_2$ to bound the absolute values of the conjugates (houses) of our coefficients.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
416/0 |
Mathlib.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean |
2 |
2 |
['github-actions'] |
nobody |
1-11971 1 day ago |
4-43711 4 days ago |
7-41170 7 days |
| 35781 |
mcdoll author:mcdoll |
feat(Analysis/SchwartzMap): translation of arguments |
We only define the translation with subtraction, because this is more common in applications.
Co-authored-by: Michael Douglas
---
From https://github.com/mrdouglasny/OSforGFF and made mathlib ready by me
[](https://gitpod.io/from-referrer/)
|
t-analysis |
44/11 |
Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
urkud assignee:urkud |
1-10355 1 day ago |
1-9663 1 day ago |
6-2322 6 days |
| 34288 |
winstonyin author:winstonyin |
feat: Integral curve is smooth in initial condition |
I prove the local smoothness theorem for integral curves of ODEs on Banach spaces with respect to the initial condition. Serge Lang's _Fundamentals of Differential Geometry_ gives two proofs (Theorem 1.11). The first one is based on Grönwall's inequality. The second one (p. 81 onwards) is based on the implicit function theorem, found by Pugh and Robbin 1968. I've chosen to formalise the second, even though it may be more involved. I wanted to do this as a challenge, and because the second proof also applies to $H^k$ vector fields (Ebin and Marsden 1970), which are not yet in Mathlib.
I am open to splitting this up into several smaller PRs.
## Statement
Let $f : E \to E$ be a vector field that is $C^n$ at $x_0 : E$ with $n \geq 1$. There exists a neighbourhood $U$ of $x_0$ and time interval $[t_{\mathrm{min}},t_{\mathrm{max}}]$ containing $t_0$ such that for every $x \in U$, there exists an integral curve $\alpha_x : C([t_{\mathrm{min}},t_{\mathrm{max}}], E)$ of $f$ with initial condition $\alpha_x(t_0) = x$, and that $x \mapsto \alpha_x$ is $C^n$.
Note that this is not the full smoothness theorem for local flows, which states that the local flow $\alpha : [t_{\mathrm{min}},t_{\mathrm{max}}] \times U \to E$ is $C^n$ at $(t_0, x_0)$. We will prove this in a series of future PRs.
## Proof strategy
* Define implicit equation $T_f : E \times C([t_{\mathrm{min}},t_{\mathrm{max}}],E) \to C([t_{\mathrm{min}},t_{\mathrm{max}}],E)$ so that $T(x,\alpha) = 0$ implies that $\alpha$ is an integral curve of $f$ with initial condition $x$.
* Prove implicit equation is $C^n$ if $f$ is $C^n$.
* Prove $\partial_\alpha T_f$ is invertible for some choice of $[t_{\mathrm{min}},t_{\mathrm{max}}]$.
* Extract the local flow $(x : E) \mapsto (\alpha_x : C([t_{\mathrm{min}},t_{\mathrm{max}}],E))$ as the implicit function of $T_f$ around a known integral curve.
* Conclude that $x \mapsto \alpha_x$ is $C^n$.
## For reviewers
* Where should `Set.Icc.abs_sub_le` go?
* Some proofs (marked with TODO) can be shortened after #34120, but I don't want it to be blocking.
- [x] depends on: #34860
- [x] depends on: #34861
- [x] depends on: #34862
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
869/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/ImplicitContDiff.lean,Mathlib/Analysis/ODE/SmoothFlow.lean,Mathlib/Topology/MetricSpace/Pseudo/Lemmas.lean |
4 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
j-loreaux assignee:j-loreaux |
1-6879 1 day ago |
1-9321 1 day ago |
7-14790 7 days |
| 26377 |
Whysoserioushah author:Whysoserioushah |
feat(RingTheory/SimpleRing/TensorProduct): tensor product of a simple algebra and a central simple algebra is simple |
co-authored-by: @jjaassoonn
---
|
t-ring-theory
large-import
|
326/8 |
Mathlib.lean,Mathlib/RingTheory/SimpleRing/TensorProduct.lean,Mathlib/RingTheory/TwoSidedIdeal/Kernel.lean,Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean,Mathlib/RingTheory/TwoSidedIdeal/Operations.lean |
5 |
69 |
['Ruben-VandeVelde', 'Whysoserioushah', 'eric-wieser', 'github-actions', 'kbuzzard', 'kckennylau', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vlad902'] |
kbuzzard assignee:kbuzzard |
1-3858 1 day ago |
14-31131 14 days ago |
28-67129 28 days |
| 35988 |
tb65536 author:tb65536 |
feat(NumberTheory/Height/Northcott): define Northcott functions |
This PR defines Northcott functions and provides some API. Extracted from #35918.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-order
|
64/19 |
Mathlib.lean,Mathlib/GroupTheory/Descent.lean,Mathlib/NumberTheory/Height/Northcott.lean |
3 |
3 |
['github-actions', 'tb65536', 'vihdzp'] |
nobody |
1-3854 1 day ago |
1-39775 1 day ago |
1-56464 1 day |
| 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
|
320/57 |
Mathlib.lean,Mathlib/Analysis/Complex/Basic.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,Mathlib/Topology/Algebra/Algebra/Equiv.lean |
9 |
11 |
['github-actions', 'j-loreaux', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'urkud'] |
ADedecker assignee:ADedecker |
1-3342 1 day ago |
1-11404 1 day ago |
25-10738 25 days |
| 35812 |
khwilson author:khwilson |
feat(MeasureTheory/Group/GeometryOfNumbers): successive minima and existence of a directional basis |
Define the successive minima of a discrete subgroup of a real vector space with respect to a convex set. These invariants show up throughout the geometry of numbers and are the focus of Minkowski's Second Theorem (whose statement is left here with a `proof_wanted`).
Note: The key lemma is that the "gauge set" of the convex set is closed. I took the approach of showing that it is sequentially closed. There's an alternative approach via showing it's the union of a finite number of closed sets. I personally thought this approach was more intuitive, but the union approach may result in a slightly shorter proof.
Co-authored-by: Yaël Dillies
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
392/33 |
Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Convex/Body.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean |
6 |
3 |
['github-actions', 'joneugster'] |
nobody |
1-1765 1 day ago |
5-14430 5 days ago |
5-14374 5 days |
| 33355 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SimpleGraph/Connectivity): define vertex connectivity |
This PR introduces the foundations of vertex connectivity for simple graphs, providing a counterpart to the edge connectivity theory in #32870.
### Main definitions
- `SimpleGraph.IsVertexReachable`: vertices remain reachable after removing strictly fewer than `k` other vertices.
- `SimpleGraph.IsVertexConnected`: a graph is `k`-vertex-connected if its order is strictly greater than `k` and any two distinct vertices are `k`-vertex-reachable.
Includes basic characterizations for $k=0$ and $k=1$, along with monotonicity lemmas (`anti` and `mono`). |
new-contributor
t-combinatorics
|
198/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/IsolateVerts.lean |
3 |
132 |
['0xTerencePrime', 'SnirBroshi', 'YaelDillies', 'github-actions', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
1-773 1 day ago |
1-846 1 day ago |
26-5822 26 days |
| 35997 |
themathqueen author:themathqueen |
feat(Analysis/CStarAlgebra/CFC/Order): conjugating with a star projection in a C*-algebra |
When `e` is a star projection and `0 ≤ a ≤ e`, we get `e * a * e = a`.
Co-authored-by: Jon Bannon [59937998+JonBannon@users.noreply.github.com](mailto:59937998+JonBannon@users.noreply.github.com)
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
19/0 |
Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean |
1 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
1-157 1 day ago |
1-11270 1 day ago |
0-35434 9 hours |
| 35943 |
SnirBroshi author:SnirBroshi |
feat(Analysis/Complex/Trigonometric): `cos(2x) = 1 - 2 * sin(x)^2` |
This is one of the 3 commonly used forms of the cosine double-angle formula.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
6/0 |
Mathlib/Analysis/Complex/Trigonometric.lean |
1 |
4 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
0-85858 23 hours ago |
2-35206 2 days ago |
2-35150 2 days |
| 35961 |
joelriou author:joelriou |
feat(CategoryTheory/Sites): fiber functors invert morphisms which become isomorphisms after sheafification |
The assumptions on the target category are relaxed.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
61/46 |
Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean,Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean |
3 |
2 |
['github-actions', 'joelriou'] |
nobody |
0-85010 23 hours ago |
1-781 1 day ago |
0-74148 20 hours |
| 36012 |
grunweg author:grunweg |
chore(Geometry/Manifold/VectorField/Pullback): golf using custom elab… |
…orators
---
Split out from #30357.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
96/143 |
Mathlib/Geometry/Manifold/VectorField/Pullback.lean |
1 |
1 |
['github-actions'] |
nobody |
0-81764 22 hours ago |
unknown |
unknown |
| 36008 |
grunweg author:grunweg |
chore(Geometry/Manifold/ContMDiffMFDeriv): golf using custom elaborators |
---
Split out from #30357.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
59/79 |
Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean |
1 |
1 |
['github-actions'] |
nobody |
0-81712 22 hours ago |
unknown |
unknown |
| 35986 |
grunweg author:grunweg |
feat: tag ContDiff.{continuous,differentiable} as fun_prop |
The second one requires proving a side condition n \neq 0, which should be fine when passing a discharger.
----------
Open question: will this break existing proofs by making fun_prop try paths with a longer transition depth? It seems to be fine!
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
2/0 |
Mathlib/Analysis/Calculus/ContDiff/Defs.lean |
1 |
4 |
['github-actions', 'grunweg', 'leanprover-radar', 'mathlib-merge-conflicts'] |
nobody |
0-80945 22 hours ago |
0-80054 22 hours ago |
1-56256 1 day |
| 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
|
84/0 |
Mathlib/Probability/Process/Stopping.lean |
1 |
5 |
['github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
RemyDegenne assignee:RemyDegenne |
0-80590 22 hours ago |
0-82615 22 hours ago |
57-38969 57 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
|
248/15 |
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 |
18 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'sgouezel', 'yoh-tanimoto'] |
nobody |
0-80200 22 hours ago |
1-3860 1 day ago |
33-12617 33 days |
| 34622 |
vihdzp author:vihdzp |
feat: Nat/Int casts on char two rings |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
50/8 |
Mathlib/Algebra/CharP/Two.lean,Mathlib/Data/Set/Insert.lean |
2 |
10 |
['erdOne', 'eric-wieser', 'github-actions', 'vihdzp'] |
erdOne assignee:erdOne |
0-80032 22 hours ago |
0-85365 23 hours ago |
31-4964 31 days |
| 36013 |
pfaffelh author:pfaffelh |
feat(Topology/Compactness/CompactSystem): introduce compact Systems |
A compact system is a set systems with the property that, whenever a countable intersections of sets in the set system is empty, there is a finite subset of sets with empty intersection. These are needed e.g. in measure theory if one wants to show sigma-additivity of a set function on a ring.
Main result: The set of sets which are either compact and closed, or univ, is a compact system.
Co-authored-by: Rémy Degenne [remydegenne@gmail.com](mailto:remydegenne@gmail.com)
---
Continues work from #25899
[](https://gitpod.io/from-referrer/)
|
|
238/0 |
Mathlib.lean,Mathlib/Data/Set/Dissipate.lean,Mathlib/MeasureTheory/PiSystem.lean,Mathlib/Topology/Compactness/CompactSystem.lean |
4 |
1 |
['github-actions'] |
nobody |
0-79869 22 hours ago |
0-83656 23 hours ago |
0-34663 9 hours |
| 35979 |
xgenereux author:xgenereux |
chore(RatFunc/AsPolynomial): use Valuation.IsTrivialOn and simplify proofs |
Use the recently added typeclass `Valuation.IsTrivialOn` instead of the explicit hypothesis.
I have taken the opportunity to simplify some proofs with grind.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
|
23/26 |
Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Basic.lean,Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/FieldTheory/RatFunc/Basic.lean,Mathlib/RingTheory/Valuation/Basic.lean |
5 |
7 |
['github-actions', 'vihdzp', 'xgenereux'] |
nobody |
0-79829 22 hours ago |
0-79890 22 hours ago |
0-69543 19 hours |
| 35933 |
urkud author:urkud |
chore(WellFounded): drop unneeded `Set.Nonempty` assumptions |
... in theorems that also assume
that a specific element belongs to the set.
---
[](https://gitpod.io/from-referrer/)
|
|
60/56 |
Archive/Imo/Imo1988Q6.lean,Counterexamples/AharoniKorman.lean,Mathlib/Combinatorics/Quiver/Arborescence.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/FieldTheory/SeparableClosure.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/Order/Atoms.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Cover.lean,Mathlib/Order/InitialSeg.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/SuccPred/Basic.lean,Mathlib/Order/WellFounded.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/RingTheory/MvPowerSeries/LexOrder.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/Topology/EMetricSpace/Paracompact.lean |
22 |
4 |
['github-actions', 'urkud', 'vihdzp'] |
nobody |
0-78722 21 hours ago |
2-32007 2 days ago |
2-31951 2 days |
| 36001 |
harahu author:harahu |
fix(docs): deduplicate yaml key |
---
[](https://gitpod.io/from-referrer/)
|
easy |
3/2 |
docs/1000.yaml |
1 |
2 |
['github-actions', 'harahu'] |
nobody |
0-78526 21 hours ago |
1-38344 1 day ago |
1-38288 1 day |
| 36041 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph/Matching): add maximal and maximum matching defs |
Closes #34957.
This is a focused pass on the issue request:
- add `Subgraph.IsMaximalMatching` as `Maximal IsMatching`
- add `Subgraph.IsMaximumMatching` as `MaximalFor IsMatching (fun M ↦ Cardinal.mk M.edgeSet)`
- add small wrapper lemmas:
- `Subgraph.isMaximalMatching_iff`
- `Subgraph.isMaximumMatching_iff`
Build:
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Matching.lean`
- `~/.elan/bin/lake build`
Context:
- There is already broader work in #32555; this PR intentionally keeps scope narrow to land the core defs/API from this issue.
|
t-combinatorics
new-contributor
|
27/0 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean |
1 |
2 |
['github-actions'] |
nobody |
0-77874 21 hours ago |
unknown |
unknown |
| 36042 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph/VertexCover): add minimal/minimum cover defs |
Closes #34958.
This PR adds the requested core definitions/API for vertex covers:
- `SimpleGraph.IsMinimalCover`
- `SimpleGraph.IsMinimumCover`
- `SimpleGraph.isMinimalCover_iff`
- `SimpleGraph.isMinimumCover_iff`
`IsMinimumCover` is defined via `MinimalFor` with `Cardinal.mk` cardinality.
Build:
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/VertexCover.lean`
- `~/.elan/bin/lake build`
Context:
- #33032 contains broader vertex-cover/Kőnig development; this PR is intentionally scoped to landing the focused defs/API from #34958.
|
t-combinatorics
new-contributor
|
22/0 |
Mathlib/Combinatorics/SimpleGraph/VertexCover.lean |
1 |
2 |
['github-actions'] |
nobody |
0-77466 21 hours ago |
unknown |
unknown |
| 35709 |
tb65536 author:tb65536 |
feat(AlgebraicGeometry/EllipticCurve/Reduction): define multiplicative and additive reduction |
This PR adds definitions of multiplicative and additive reduction.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-algebraic-geometry
t-number-theory
label:t-algebra$ |
76/0 |
Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean |
1 |
1 |
['github-actions'] |
nobody |
0-77287 21 hours ago |
7-85449 7 days ago |
7-86015 7 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 |
467/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 |
56 |
['AntoineChambert-Loir', 'Ruben-VandeVelde', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'tb65536'] |
mattrobball assignee:mattrobball |
0-77029 21 hours ago |
0-82617 22 hours ago |
25-38807 25 days |
| 36040 |
grunweg author:grunweg |
feat: better error message in T% elaborator |
When applying the `T%` elaborator to sections of a fibre bundle, previously in the case of missing typeclass assumptions the elaborator would silently do nothing. Now it errors about this case.
Thanks to Patrick Massot for reporting this bug in person.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-meta
|
46/4 |
Mathlib/Geometry/Manifold/Notation.lean,MathlibTest/DifferentialGeometry/Notation/Basic.lean |
2 |
2 |
['github-actions'] |
nobody |
0-77015 21 hours ago |
0-76471 21 hours ago |
0-76415 21 hours |
| 36022 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph): redefine `IsBridge` via `deleteEdges` |
Closes #31690
## Summary
This PR changes `SimpleGraph.IsBridge` to the deletion-only notion requested in #31690:
an edge is a bridge when deleting it disconnects its endpoints, without requiring
`e ∈ G.edgeSet` inside the definition.
## Main changes
- Redefine `IsBridge` in `Connectivity/Connected.lean`.
- Update `isBridge_iff` to the new statement.
- Refactor bridge lemmas to carry adjacency/edge-membership assumptions explicitly where needed.
- Add/update helper lemmas used by downstream files.
- Fix dependent proofs in:
- `Connectivity/EdgeConnectivity.lean`
- `Acyclic.lean`
- `Hamiltonian.lean`
## Validation
- `lake build Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity Mathlib.Combinatorics.SimpleGraph.Acyclic Mathlib.Combinatorics.SimpleGraph.Hamiltonian`
- `lake build` (full)
## AI use disclosure
I used Codex as an assistant for drafting/refactoring and proof iteration, and manually verified the final result with local Lean builds.
|
t-combinatorics
new-contributor
|
68/52 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean |
4 |
3 |
['SproutSeeds', 'github-actions'] |
nobody |
0-76956 21 hours ago |
unknown |
unknown |
| 36043 |
robin-carlier author:robin-carlier |
feat: add `dsimp%` elaborator |
This PR adds a `dsimp%` elaborators that puts a given term in `dsimp`-normal form. This is useful as a way to avoid the
`have foo := …; dsimp at foo; rw [foo]` pattern.
From [SymmMonCoherence](https://github.com/robin-carlier/SymmMonCoherence)
---
The main possible extension for this (of which I would be grateful to have some level of help in doing) would be to also add a syntax for `dsimp% […]` to also specify some dsimprocs that should be dsimped in the `dsimp` call.
[](https://gitpod.io/from-referrer/)
|
t-meta |
74/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/DsimpPercent.lean,MathlibTest/DsimpPercent.lean |
4 |
1 |
['github-actions'] |
nobody |
0-76176 21 hours ago |
unknown |
unknown |
| 36048 |
kim-em author:kim-em |
feat(Tactic/DefEqAbuse): disambiguate identical-sides isDefEq failures |
This PR adds automatic disambiguation for `#defeq_abuse` failures where
both sides render identically at default pp settings (e.g. `⊤ =?= ⊤`
or `Quiver C =?= Quiver C`). These arise from instance diamonds where
the difference is only in hidden instance arguments or universe levels.
When detected, the `MessageData` is re-rendered with escalated pp
options (`pp.universes`, then `pp.explicit`) to reveal the hidden
difference. For example, `⊤ =?= ⊤` becomes
`@Top.top T inst₁ =?= @Top.top T inst₂`.
🤖 Prepared with Claude Code |
t-meta |
106/2 |
Mathlib/Tactic/DefEqAbuse.lean,MathlibTest/DefEqAbuse.lean |
2 |
1 |
['github-actions'] |
nobody |
0-75628 21 hours ago |
unknown |
unknown |
| 36023 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph): add maximal clique/indep-set defs and use MaximalFor |
Closes #34962.
This PR:
- defines `SimpleGraph.IsMaximalClique` and `SimpleGraph.IsMaximalIndepSet` as aliases of `Maximal`
- redefines `SimpleGraph.IsMaximumClique` and `SimpleGraph.IsMaximumIndepSet` using `MaximalFor` over cardinality
- keeps the existing `..._iff`, complement, existence, and cardinality lemmas by adapting proofs to the new definitions
Build:
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Clique.lean`
- `~/.elan/bin/lake build`
|
t-combinatorics
new-contributor
|
46/31 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
6 |
['SproutSeeds', 'b-mehta', 'github-actions'] |
nobody |
0-75578 20 hours ago |
unknown |
unknown |
| 36024 |
euprunin author:euprunin |
chore: golf proofs |
The goal of this 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 <30 ms considered measurement noise):
* `Fin.coe_sub_one`: unchanged 🎉
* `LieAlgebra.engel_isBot_of_isMin.lieCharpoly_coeff_natDegree`: 66 ms before, 35 ms after 🎉
* `WithTop.mul_lt_mul`: unchanged 🎉
* `CFC.spectrum_nonempty`: unchanged 🎉
* `ODE.hasDerivWithinAt_picard_Icc`: unchanged 🎉
* `Matrix.vecMul_injective_iff_isUnit`: 240 ms before, 68 ms after 🎉
* `MeasureTheory.SimpleFunc.measure_preimage_lt_top_of_memLp`: unchanged 🎉
* `Polynomial.content_eq_gcd_range_of_lt`: unchanged 🎉
* `RingHom.finiteType_isStableUnderBaseChange`: 163 ms before, 49 ms after 🎉
* `RingHom.Flat.holdsForLocalizationAway`: 91 ms before, <30 ms after 🎉
Profiled using `set_option trace.profiler true in`.
This 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/)
|
|
15/46 |
Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Order.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/RingTheory/Polynomial/Content.lean,Mathlib/RingTheory/RingHom/FiniteType.lean,Mathlib/RingTheory/RingHom/Flat.lean |
12 |
7 |
['euprunin', 'github-actions', 'vihdzp'] |
nobody |
0-75575 20 hours ago |
0-74540 20 hours ago |
0-77191 21 hours |
| 35368 |
joelriou author:joelriou |
feat(CategoryTheory/Triangulated/TStructure): extensions of truncations to the extended integers |
Given a `t`-structure, we extend the definition of the truncation functors `truncLT` and `truncGE` for indices in `ℤ` to `EInt`, as `t.eTruncLT : EInt ⥤ C ⥤ C` and `t.eTruncGE : EInt ⥤ C ⥤ C`.
---
- [x] depends on: #35364
- [x] depends on: #35363
- [x] depends on: #35362
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
301/0 |
Mathlib.lean,Mathlib/CategoryTheory/Triangulated/TStructure/ETrunc.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-74559 20 hours ago |
0-75417 20 hours ago |
0-75361 20 hours |
| 36050 |
SproutSeeds author:SproutSeeds |
feat(Combinatorics/SimpleGraph/Connectivity): add edge reachability and connectivity numbers |
This adds ENat-valued number definitions for edge connectivity in `SimpleGraph.Connectivity.EdgeConnectivity`.
Main additions:
- `SimpleGraph.edgeReachability`
- `SimpleGraph.edgeConnectivity`
Basic API:
- `SimpleGraph.le_edgeReachability`
- `SimpleGraph.le_edgeConnectivity`
- `SimpleGraph.edgeConnectivity_le_edgeReachability`
Verification:
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean`
- `~/.elan/bin/lake exe runLinter --trace Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity`
Closes #34961
|
t-combinatorics
new-contributor
|
25/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean |
1 |
2 |
['github-actions'] |
nobody |
0-73936 20 hours ago |
0-73152 20 hours ago |
0-73096 20 hours |
| 35643 |
chrisflav author:chrisflav |
chore(Algebra): make `TensorProduct.equivOfCompatibleSMul` more linear |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
64/47 |
Mathlib/LinearAlgebra/TensorProduct/Associator.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/RingTheory/Coalgebra/TensorProduct.lean,Mathlib/RingTheory/LinearDisjoint.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Smooth/Fiber.lean,Mathlib/RingTheory/TensorProduct/Maps.lean,Mathlib/RingTheory/TensorProduct/Nontrivial.lean |
8 |
7 |
['github-actions', 'kckennylau'] |
kim-em assignee:kim-em |
0-73503 20 hours ago |
0-73658 20 hours ago |
8-81616 8 days |
| 36051 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this 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 <30 ms considered measurement noise):
* `Cycle.chain_of_pairwise`: unchanged 🎉
* `List.argmax_cons`: 387 ms before, 94 ms after 🎉
* `ciSup_subtype`: 118 ms before, 77 ms after 🎉
* `exists_seq_forall_proj_of_forall_finite`: unchanged 🎉
* `Polynomial.roots_quadratic_eq_pair_iff_of_ne_zero'`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This 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/)
|
|
7/30 |
Mathlib/Data/List/Cycle.lean,Mathlib/Data/List/MinMax.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/KonigLemma.lean,Mathlib/RingTheory/Polynomial/SmallDegreeVieta.lean |
5 |
1 |
['github-actions'] |
nobody |
0-73144 20 hours ago |
unknown |
unknown |
| 27229 |
WilliamCoram author:WilliamCoram |
feat(GroupTheory/DoubleCoset): multiple lemmas |
From FLT
---
[](https://gitpod.io/from-referrer/)
|
FLT
t-group-theory
new-contributor
|
85/2 |
Mathlib/GroupTheory/DoubleCoset.lean |
1 |
41 |
['CBirkbeck', 'Ruben-VandeVelde', 'WilliamCoram', 'github-actions', 'kim-em', 'mariainesdff', 'mathlib4-merge-conflict-bot', 'tb65536'] |
mariainesdff assignee:mariainesdff |
0-71294 19 hours ago |
14-81699 14 days ago |
105-11824 105 days |
| 26293 |
RemyDegenne author:RemyDegenne |
feat: tightness from convergence of characteristic functions |
If the characteristic functions of a sequence of measures `μ : ℕ → Measure E` on a finite dimensional inner product space converge pointwise to a function which is continuous at 0, then `{μ n | n}` is tight.
---
- [x] depends on: #24846
- [x] depends on: #26292
[](https://gitpod.io/from-referrer/)
---
*This PR continues the work from #24949.*
*Original PR: https://github.com/leanprover-community/mathlib4/pull/24949* |
t-measure-probability
maintainer-merge
|
164/0 |
Mathlib.lean,Mathlib/MeasureTheory/Measure/LevyConvergence.lean,Mathlib/MeasureTheory/Measure/TightNormed.lean |
3 |
15 |
['EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
0-71029 19 hours ago |
0-80476 22 hours ago |
0-11047 3 hours |
| 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
|
9/0 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean |
1 |
4 |
['RemyDegenne', 'github-actions', 'huaizhangchu'] |
kex-y assignee:kex-y |
0-69836 19 hours ago |
1-78743 1 day ago |
32-74895 32 days |
| 26975 |
Whysoserioushah author:Whysoserioushah |
feat: a norm_num extension for complex numbers |
co-authored-by : @thefundamentaltheor3m, @hrmacbeth
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
424/12 |
Mathlib.lean,Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/NormNum/Eq.lean,Mathlib/Tactic/NormNum/NormNumI.lean,Mathlib/Tactic/NormNum/Result.lean,MathlibTest/norm_numI.lean |
7 |
55 |
['JovanGerb', 'Whysoserioushah', 'dupuisf', 'eric-wieser', 'github-actions', 'grunweg', 'hrmacbeth', 'mathlib4-merge-conflict-bot'] |
nobody |
0-69323 19 hours ago |
0-68639 19 hours ago |
111-71736 111 days |
| 34045 |
smmercuri author:smmercuri |
feat: `algebraMap K L` is uniform continuous with respect to adic topologies, when the ideal `w` of `L` lies above `v` |
- `A` is a Dedekind domain with field of fractions `K`.
- `B` is a Dedekind domain with field of fractions `L`.
- `L` is a field extension of `K`.
- `v` is a height one prime ideal of `A`.
- `w` is a height one prime ideal of `B` lying over `v`.
Then respective valuations are related via the ramification index, and `algebraMap (WithVal (v.valuation K)) (WithVal (w.valuation L))` is uniform continuous.
---
- [x] depends on: #34049
- [x] depends on: #35972
[](https://gitpod.io/from-referrer/)
|
FLT
t-algebra
label:t-algebra$ |
143/0 |
Mathlib.lean,Mathlib/NumberTheory/RamificationInertia/Basic.lean,Mathlib/NumberTheory/RamificationInertia/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean |
5 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-65162 18 hours ago |
0-65227 18 hours ago |
0-28375 7 hours |
| 36053 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph/Matching): add graph-level IsMatching predicate |
This draft introduces a graph-level matching predicate:
- `SimpleGraph.IsMatching` for graphs on any vertex type
It also updates module docs so that:
- `SimpleGraph.IsMatching` is the general definition
- `SimpleGraph.Subgraph.IsMatching` is the specialized subgraph version
Verification:
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Matching.lean`
- `~/.elan/bin/lake exe runLinter --trace Mathlib.Combinatorics.SimpleGraph.Matching`
Addresses #11911.
|
t-combinatorics
new-contributor
|
8/2 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean |
1 |
2 |
['github-actions'] |
nobody |
0-65044 18 hours ago |
unknown |
unknown |
| 36055 |
SproutSeeds author:SproutSeeds |
chore: rename rpow monotonicity lemmas |
Renames the Real rpow monotonicity family to left or right style names, matching the pow and zpow conventions.
Keeps compatibility by adding deprecated aliases for old names.
Also updates local uses in this file to the new names.
Issue: #13544
Validation:
- ~/.elan/bin/lake build Mathlib/Analysis/SpecialFunctions/Pow/Real.lean
- ~/.elan/bin/lake exe runLinter --trace Mathlib.Analysis.SpecialFunctions.Pow.Real |
t-analysis
new-contributor
|
248/187 |
Mathlib/Algebra/Module/ZLattice/Summable.lean,Mathlib/Analysis/AbsoluteValue/Equivalence.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/PhragmenLindelof.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean,Mathlib/Analysis/Fourier/PoissonSummation.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/MellinTransform.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean,Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean,Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean,Mathlib/MeasureTheory/Function/ContinuousMapDense.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/NumberTheory/Bertrand.lean,Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean,Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/NumberTheory/SumPrimeReciprocals.lean,Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean,Mathlib/Probability/Moments/CovarianceBilinDual.lean,Mathlib/Probability/Moments/IntegrableExpMul.lean,Mathlib/Topology/MetricSpace/Snowflaking.lean |
40 |
2 |
['github-actions'] |
nobody |
0-65044 18 hours ago |
unknown |
unknown |
| 36056 |
SproutSeeds author:SproutSeeds |
chore: rename ordered-cancel add monoid counterexample file |
Renames the counterexample module to match the current class naming around `IsOrderedCancelAddMonoid`.
Also updates the module docstring so it no longer references the removed class `OrderedCancelAddCommMonoid`.
Issue: #27812
Validation:
- ~/.elan/bin/lake build Counterexamples/IsOrderedCancelAddMonoidWithBounds.lean Counterexamples.lean
- ~/.elan/bin/lake exe runLinter --trace Counterexamples.IsOrderedCancelAddMonoidWithBounds |
file-removed
new-contributor
|
5/4 |
Counterexamples.lean,Counterexamples/IsOrderedCancelAddMonoidWithBounds.lean |
2 |
2 |
['github-actions'] |
nobody |
0-65044 18 hours ago |
unknown |
unknown |
| 35675 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory/Smooth): some lemma about formally smooth |
This PR mainly formalized the result [[Stacks 031L](https://stacks.math.columbia.edu/tag/031L)]
This is a preliminary of Cohen Structure Theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
269/4 |
Mathlib.lean,Mathlib/RingTheory/RingHom/Smooth.lean,Mathlib/RingTheory/Smooth/Quotient.lean |
3 |
4 |
['Thmoas-Guan', 'github-actions', 'jcommelin'] |
jcommelin assignee:jcommelin |
0-63338 17 hours ago |
1-8860 1 day ago |
7-79832 7 days |
| 36062 |
huaizhangchu author:huaizhangchu |
feat(Probability/PMF): add PMF.integrable_of_summable_norm |
Adds `PMF.integrable_of_summable_norm`: a function `f` is integrable with respect to `p.toMeasure` when the weighted norms `‖f a‖ * (p a).toReal` form a summable family.
This is useful for computing expectations of discrete distributions (Poisson, geometric, etc.) without manually expanding the `HasFiniteIntegral` definition each time. |
t-measure-probability
new-contributor
|
14/0 |
Mathlib/Probability/ProbabilityMassFunction/Integrals.lean |
1 |
2 |
['github-actions'] |
nobody |
0-62276 17 hours ago |
unknown |
unknown |
| 35175 |
joelriou author:joelriou |
feat(CategoryTheory/Sites): characterization of conservative families of points |
Given a family of points `P` of a site, we characterize the property the `P` is a conservative family in terms of covering sieves. We show that if `(C, J)` has enough points, then so does `(Over X, J.over X)` for `X : C`.
---
- [x] depends on: #35759
- [x] depends on: #35529
- [x] depends on: #35527
- [x] depends on: #35525
- [x] depends on: #35141
- [x] depends on: #35139
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
238/15 |
Mathlib/CategoryTheory/Elements.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean,Mathlib/CategoryTheory/Sites/Point/Over.lean |
4 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-62194 17 hours ago |
unknown |
unknown |
| 34215 |
justus-springer author:justus-springer |
feat(FieldTheory/RatFunc): Degree of field extension K(X)/K(f) |
Prove that the degree of the field extension K(X)/K(f) of a rational function f equals the maximum of the degrees of its numerator and denominator. This is a crucial lemma towards proving Luroth's theorem.
This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025.
Co-authored-by: Miriam Philipp @miriamphilipp
Co-authored-by: Junyan Xu @alreadydone
---
- [x] depends on: #34212
- [x] depends on: #34213
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
206/0 |
Mathlib.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean,Mathlib/FieldTheory/RatFunc/Luroth.lean |
3 |
30 |
['alreadydone', 'github-actions', 'jcommelin', 'justus-springer', 'mathlib-splicebot', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier', 'tb65536', 'xgenereux'] |
jcommelin assignee:jcommelin |
0-62012 17 hours ago |
0-62076 17 hours ago |
23-9591 23 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 |
229/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Operator/FredholmAlternative.lean |
2 |
12 |
['b-mehta', 'github-actions', 'loefflerd', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536'] |
nobody |
0-61226 17 hours ago |
0-76691 21 hours ago |
4-57838 4 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.
The fields `Concept.intent` and `Concept.extent` already existed, and these serve as unbundled versions of them.
---
- [x] depends on: #30484
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
161/113 |
Mathlib/Order/Concept.lean |
1 |
51 |
['Vierkantor', 'YaelDillies', 'github-actions', 'linesthatinterlace', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
0-58640 16 hours ago |
0-79522 22 hours ago |
31-75617 31 days |
| 26231 |
chrisflav author:chrisflav |
feat(CategoryTheory/Sites): sheaf condition and coproducts |
We show that under suitable conditions, checking that a presheaf is a sheaf for a covering is equivalent to checking it on the single object covering by the coproduct.
---
- [x] depends on: #32578
- [x] depends on: #35901
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
156/1 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Products.lean,Mathlib/CategoryTheory/Sites/CoproductSheafCondition.lean,Mathlib/CategoryTheory/Sites/Hypercover/SheafOfTypes.lean,Mathlib/CategoryTheory/Sites/Hypercover/Zero.lean |
5 |
6 |
['chrisflav', 'github-actions', 'joelriou', 'mathlib-dependent-issues'] |
nobody |
0-56345 15 hours ago |
0-56411 15 hours ago |
2-6475 2 days |
| 36067 |
smmercuri author:smmercuri |
feat(NumberTheory/NumberField/FinitePlaces): `Module.Finite (v.adicCompletion K) (w.adicCompletion L)` |
Let `v : HeightOneSpectrum (𝓞 K)` and `w : HeightOneSpectrum (𝓞 L)` be such that we have `Algebra (v.adicCompletion K) (w.adicCompletion L)`. If this algebra gives continuous scalar multiplication and we have `IsScalarTower K (v.adicCompletion K) (w.adicCompletion L)`, then `w.adicCompletion L` is finite-dimensional over `v.adicCompletion K`.
---
[](https://gitpod.io/from-referrer/)
|
|
35/0 |
Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
2 |
1 |
['github-actions'] |
nobody |
0-56286 15 hours ago |
unknown |
unknown |
| 36063 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph/Connectivity): add vertex reachability and connectivity numbers |
### Summary
Adds a first-pass vertex connectivity API for simple graphs.
- define `SimpleGraph.isolateVerts`
- define `SimpleGraph.IsVertexReachable` and `SimpleGraph.IsVertexConnected`
- define `SimpleGraph.vertexReachability` and `SimpleGraph.vertexConnectivity`
- add basic lemmas for reflexivity, symmetry, monotonicity, antitonicity, and the `k = 0` and `k = 1` characterizations
Closes #34960.
### Local checks
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean`
- `~/.elan/bin/lake exe lint-style Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean`
- `bash scripts/mathlib-issue-local-gate.sh --repo /Users/codymitchell/Documents/code/mathlib4 --issue 34960 --build-target Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean --lint-module Mathlib.Combinatorics.SimpleGraph.Connectivity.VertexConnectivity --skip-mk-all`
|
t-combinatorics
new-contributor
|
140/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean |
2 |
2 |
['github-actions'] |
nobody |
0-55654 15 hours ago |
unknown |
unknown |
| 29942 |
smmercuri author:smmercuri |
feat(InfinitePlace/Completion): embeddings of `w.Completion` factor through embeddings of `v.Completion` when `w` lies over `v` |
The class `ComplexEmbedding.LiesOver ψ φ` formalises the property that the complex field embedding `φ : L →+* ℂ` restricted to `K` gives `ψ : K →+* ℂ`, whenever `Algebra K L`.
If `w : InfinitePlace L` and `v : InfinitePlace K` are such that we have `Algebra v.Completion w.Completion`, then `extensionEmbedding w : L →+* ℂ` restricted to `K` gives `extensionEmbedding v : K →+* ℂ`.
To avoid diamonds arising from propeq instances when `K = L` we do not construct the global instance `Algebra v.Completion w.Completion` from `Algebra K L`, but assume it instead. It is then required to assume the following compatibility assumptions for the main result of this PR to be true:
- `IsScalarTower (WithAbs v.1) v.Completion w.Completion`
- `ContinuousSMul v.Completion w.Completion`
---
- [x] depends on: #27978
- [x] depends on: #29969
- [x] depends on: #29944
- [x] depends on: #34230
[](https://gitpod.io/from-referrer/)
|
FLT
t-number-theory
|
85/5 |
Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean |
2 |
8 |
['github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
0-55585 15 hours ago |
0-55649 15 hours ago |
54-67017 54 days |
| 35374 |
joelriou author:joelriou |
feat(Algebra/Homology/SpectralObject): `HasSpectralSequence` |
---
- [x] depends on: #35373
- [x] depends on: #35372
- [x] depends on: #35357
- [x] depends on: #35355
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
221/4 |
Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean |
1 |
5 |
['github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-55525 15 hours ago |
unknown |
unknown |
| 35970 |
adrianmartir author:adrianmartir |
feat(CategoryTheory/Profunctor): Add profunctors and a basic API for them |
This adds a definition of a profunctor and the definition of a natural transformation between two profunctors. Profunctors are defined as a structure, as suggested by @adamtopaz [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Operads.20Formalization/with/566160316).
Using this as a base, I wrote a basic API for profunctors. This will be needed for a future formalization of operads.
A lot of the API was first drafted by @Aristotle-Harmonic.
Co-authored-by: Aristotle (Harmonic)
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
|
185/0 |
Mathlib.lean,Mathlib/CategoryTheory/Profunctor.lean |
2 |
10 |
['adrianmartir', 'emilyriehl', 'github-actions'] |
nobody |
0-54332 15 hours ago |
0-73863 20 hours ago |
1-41237 1 day |
| 36060 |
edegeltje author:edegeltje |
chore(CategoryTheory/Classifier): namespace Classifier, rename HasClassifier, move file |
The declaration `CategoryTheory.Classifier` (and various lemmas about it) is/are moved to the `Subobject` namespace.
The declaration `CategoryTheory.HasClassifier` is renamed `CategoryTheory.HasSubobjectClassifier`.
The file `CategoryTheory/Topos/Classifier.lean` is moved to `CategoryTheory/Subobject/Classifier/Defs.lean`.
Moves:
- Classifier.* -> Subobject.Classifier.*
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-category-theory
|
26/24 |
Mathlib.lean,Mathlib/CategoryTheory/Subobject/Classifier/Defs.lean |
2 |
2 |
['edegeltje', 'github-actions'] |
nobody |
0-52853 14 hours ago |
unknown |
unknown |
| 35378 |
joelriou author:joelriou |
feat(Algebra/Homology/SpectralObject): construction of the objects on the pages of the spectral sequence |
Given a spectral object `X` in an abelian category, we define the objects which shall appear on the various pages of the spectral sequence attached to `X`.
---
- [x] depends on: #35361
- [x] depends on: #35359
- [x] depends on: #35357
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
320/0 |
Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/Page.lean |
2 |
8 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier'] |
nobody |
0-51878 14 hours ago |
0-52195 14 hours ago |
0-21958 6 hours |
| 36072 |
erdOne author:erdOne |
feat(AlgebraicGeometry): essential smallness of affine schemes locally of finite type over a base |
Co-authored-by: Joël Riou
---
[](https://gitpod.io/from-referrer/)
|
|
151/2 |
Mathlib.lean,Mathlib/Algebra/Category/CommAlgCat/FiniteType.lean,Mathlib/Algebra/Category/Ring/Small.lean,Mathlib/AlgebraicGeometry/Morphisms/FiniteType.lean,Mathlib/CategoryTheory/MorphismProperty/Comma.lean,Mathlib/CategoryTheory/ObjectProperty/Small.lean |
6 |
1 |
['github-actions'] |
nobody |
0-51426 14 hours ago |
unknown |
unknown |
| 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
maintainer-merge
|
815/0 |
Mathlib.lean,Mathlib/RingTheory/Coalgebra/CoassocSimps.lean,Mathlib/Tactic/Attr/Register.lean,MathlibTest/RingTheory/CoassocSimps.lean |
4 |
22 |
['erdOne', 'github-actions', 'joneugster', 'riccardobrasca'] |
b-mehta, joneugster, mattrobball assignee:joneugster assignee:b-mehta assignee:mattrobball |
0-51192 14 hours ago |
0-51250 14 hours ago |
29-24028 29 days |
| 35532 |
mariainesdff author:mariainesdff |
feat(Ringtheory/DedekindDomain): add RingEquiv lemmas |
Co-authored by: @xgenereux.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
57/11 |
Mathlib/RingTheory/DedekindDomain/Basic.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Maps.lean |
3 |
4 |
['github-actions', 'mariainesdff', 'robin-carlier', 'tb65536'] |
nobody |
0-51036 14 hours ago |
4-59957 4 days ago |
8-14570 8 days |
| 26390 |
jjdishere author:jjdishere |
feat(Analysis/Normed): Krasner's lemma |
This PR continues the work from #18444.
Original PR: https://github.com/leanprover-community/mathlib4/pull/18444 |
t-number-theory
t-algebra
label:t-algebra$ |
224/0 |
Mathlib.lean,Mathlib/Algebra/Field/Subfield/Basic.lean,Mathlib/Analysis/Normed/Field/Krasner.lean,Mathlib/Analysis/Normed/Unbundled/AlgebraNorm.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/FieldTheory/IntermediateField/Basic.lean |
6 |
33 |
['github-actions', 'jjdishere', 'mariainesdff', 'mathlib4-merge-conflict-bot'] |
nobody |
0-50866 14 hours ago |
0-50442 13 hours ago |
1-27642 1 day |
| 35989 |
chrisflav author:chrisflav |
feat(RingTheory): define finite split algebras |
From Pi1.
---
- [x] depends on: #36044
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
78/0 |
Mathlib.lean,Mathlib/RingTheory/Etale/Pi.lean,Mathlib/RingTheory/TotallySplit.lean |
3 |
2 |
['erdOne', 'github-actions', 'mathlib-dependent-issues'] |
nobody |
0-50195 13 hours ago |
0-50259 13 hours ago |
0-74883 20 hours |
| 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$ |
195/37 |
Mathlib/Algebra/Group/Commutator.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Commutator/Basic.lean,Mathlib/GroupTheory/Focal.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 |
12 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
mattrobball assignee:mattrobball |
0-50139 13 hours ago |
0-49856 13 hours ago |
27-74630 27 days |
| 36068 |
justus-springer author:justus-springer |
feat(RingTheory/Polynomial/GaussLemma): `mem_lifts` lemma for primitive polynomials |
A lemma that's needed for the proof of Lüroth's theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
27/0 |
Mathlib/RingTheory/Polynomial/GaussLemma.lean |
1 |
2 |
['erdOne', 'github-actions'] |
nobody |
0-49655 13 hours ago |
0-48680 13 hours ago |
0-55820 15 hours |
| 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 |
172/0 |
Mathlib.lean,Mathlib/MeasureTheory/Constructions/UnitInterval.lean,Mathlib/Probability/Kernel/Representation.lean |
3 |
15 |
['DavidLedvinka', 'RemyDegenne', 'gaetanserre', 'github-actions', 'mathlib4-merge-conflict-bot'] |
RemyDegenne assignee:RemyDegenne |
0-49428 13 hours ago |
0-49604 13 hours ago |
85-6979 85 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
maintainer-merge
|
13/4 |
Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
1 |
3 |
['YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
0-42315 11 hours ago |
0-45443 12 hours ago |
16-64464 16 days |
| 34528 |
Maldooor author:Maldooor |
feat: Reproducing Kernel Hilbert Spaces and Moore's theorem |
We define vector-valued reproducing Kernel Hilbert spaces, which are Hilbert spaces of
functions, as well as characterize these spaces in terms of infinite-dimensional
positive semidefinite matrices.
Co-authored-by: Yaël Dillies
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
maintainer-merge
|
325/5 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/Continuous.lean,Mathlib/Analysis/InnerProductSpace/Reproducing.lean,docs/references.bib |
4 |
12 |
['YaelDillies', 'faenuccio', 'github-actions'] |
j-loreaux assignee:j-loreaux |
0-42176 11 hours ago |
0-42244 11 hours ago |
6-12520 6 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
|
47/4 |
Mathlib/Computability/Primrec/List.lean |
1 |
1 |
['github-actions'] |
nobody |
0-41752 11 hours ago |
0-41822 11 hours ago |
47-33594 47 days |
| 35778 |
kebekus author:kebekus |
feat: improve the mean value property of harmonic functions |
Improving existing results, establish a mean value property for functions harmonic on a disk and continuous on its closure.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
67/1 |
Mathlib/Analysis/Complex/Harmonic/MeanValue.lean,Mathlib/MeasureTheory/Integral/CircleAverage.lean |
2 |
7 |
['github-actions', 'hrmacbeth', 'kebekus'] |
j-loreaux assignee:j-loreaux |
0-41743 11 hours ago |
0-71554 19 hours ago |
5-28233 5 days |
| 35946 |
loefflerd author:loefflerd |
feat(NumberTheory/Modular): interior and closure of fundamental domain |
Show that the open and closed fundamental domains for the modular group are related by the interior / closure operations.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
184/7 |
Mathlib/Analysis/Complex/UpperHalfPlane/Topology.lean,Mathlib/NumberTheory/Modular.lean |
2 |
8 |
['CBirkbeck', 'github-actions'] |
nobody |
0-41448 11 hours ago |
0-40852 11 hours ago |
2-15674 2 days |
| 36080 |
MichaelStollBayreuth author:MichaelStollBayreuth |
chore: adapt names after #34658 |
This fixes the remaining theorem names referring to `finite_{mulS|s}upport` where the statement has changed to involve `HasFinite{Mul}Support`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
87/45 |
Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/FiniteSupport/Basic.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/Pointwise.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Height/NumberField.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/NumberTheory/NumberField/ProductFormula.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/HahnSeries/Basic.lean,Mathlib/RingTheory/HahnSeries/Summable.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/Topology/Algebra/InfiniteSum/Group.lean,Mathlib/Topology/Algebra/Ring/Compact.lean |
16 |
1 |
['github-actions'] |
jcommelin assignee:jcommelin |
0-35393 9 hours ago |
unknown |
unknown |
| 36078 |
tb65536 author:tb65536 |
feat(LinearAlgebra/Eigenspace/ContinuousLinearMap): eigenspaces of a continuous linear map are closed |
This PR proves that eigenspaces of a continuous linear map are closed. This is in a new file to avoid heavy topology imports in the existing eigenspace files.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-algebra
label:t-algebra$ |
37/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Eigenspace/ContinuousLinearMap.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
3 |
1 |
['github-actions'] |
nobody |
0-34339 9 hours ago |
0-34339 9 hours ago |
0-34283 9 hours |
| 36088 |
pevogam author:pevogam |
feat: add a LE version of previous div_lt_div_iff_mul_lt_mul theorem |
The following is more useful due to the partial order application of LE in comparison to LT.
Additionally, add specialized cases of equal denominators as simpler syntactic sugar.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
16/0 |
Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean |
1 |
2 |
['github-actions'] |
nobody |
0-33400 9 hours ago |
0-30871 8 hours ago |
0-30815 8 hours |
| 35904 |
chrisflav author:chrisflav |
feat(CategoryTheory/Sites): the maximal `1`-hypercover containing a `0`-hypercover |
---
- [x] depends on: #35902
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
139/0 |
Mathlib.lean,Mathlib/CategoryTheory/Sites/Hypercover/Saturate.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-31821 8 hours ago |
0-50800 14 hours ago |
0-15670 4 hours |
| 36083 |
gasparattila author:gasparattila |
feat: decomposition of `ContinuousAffineMap` as an `Equiv` |
This PR defines an equivalence `(V →ᴬ[R] Q) ≃ Q × (V →L[R] W)`, plus `LinearEquiv` and `AffineEquiv` variants. To match the names of the new equivalences, `ContinuousAffineMap.toConstProdLinearMap` is also renamed.
---
[](https://gitpod.io/from-referrer/)
|
|
154/13 |
Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean,Mathlib/Topology/Algebra/ContinuousAffineMap.lean |
2 |
1 |
['github-actions'] |
nobody |
0-31753 8 hours ago |
0-30639 8 hours ago |
0-30583 8 hours |
| 35797 |
xroblot author:xroblot |
feat(IsGaloisGroup): if `B/A` and `B/A'` are Galois with the same Galois group, then `A ≃+* A'` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
42/1 |
Mathlib/FieldTheory/Galois/IsGaloisGroup.lean |
1 |
6 |
['github-actions', 'tb65536', 'xroblot'] |
dagurtomas assignee:dagurtomas |
0-30254 8 hours ago |
5-69700 5 days ago |
5-85537 5 days |
| 36092 |
tb65536 author:tb65536 |
feat(CategoryTheory/Monoidal/Cartesian/Grp_): `Grp` has kernels |
This PR proves that `Grp` has kernels.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
large-import
|
33/0 |
Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean |
1 |
2 |
['github-actions', 'tb65536'] |
nobody |
0-30213 8 hours ago |
0-29550 8 hours ago |
0-29498 8 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 |
|
249/548 |
Mathlib/Algebra/Module/Torsion/Basic.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 |
8 |
9 |
['JovanGerb', 'github-actions', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
0-29380 8 hours ago |
0-25501 7 hours ago |
7-55573 7 days |
| 35518 |
kim-em author:kim-em |
chore: forbid prime (') in filenames, rename LinearCombination' |
This PR renames `Mathlib/Tactic/LinearCombination'.lean` to `LinearCombinationPrime.lean` (and the corresponding test file), and adds a lint check to `modulesOSForbidden` to prevent future files with prime/apostrophe characters in their names.
The `'` character in filenames causes shell escaping issues in scripts (any `find ... -name '*.lean'` or similar pattern needs careful quoting to handle these files correctly).
🤖 Prepared with Claude Code |
file-removed |
13/8 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/LinearCombinationPrime.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,MathlibTest/linear_combination_prime.lean |
6 |
6 |
['eric-wieser', 'euprunin', 'github-actions', 'kim-em'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-29009 8 hours ago |
10-82005 10 days ago |
10-81949 10 days |
| 36093 |
tb65536 author:tb65536 |
feat(GroupTheory/Nilpotent): remove `[IsNilpotent]` assumption from some theorems |
This PR uses the junk value of `nilpotencyClass` to remove `[IsNilpotent]` assumption from some theorems.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
18/12 |
Mathlib/GroupTheory/Nilpotent.lean |
1 |
1 |
['github-actions'] |
nobody |
0-28978 8 hours ago |
0-28978 8 hours ago |
0-28922 8 hours |
| 36066 |
EtienneC30 author:EtienneC30 |
feat: independence of processes with almost everywhere equal marginals |
If `X` is a process independent from `Y` and for all `i`, `X' i` is almost everywhere equal to `X i`, then `X'` is also independent from `Y`. This implies that independence results about measurable processes should generally also hold for processes whose marginals are only aemeasurable.
---
- [x] depends on: #36065
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
285/38 |
Mathlib/MeasureTheory/Constructions/Cylinders.lean,Mathlib/Probability/Independence/BoundedContinuousFunction.lean,Mathlib/Probability/Independence/Process.lean |
3 |
4 |
['github-actions', 'mathlib-dependent-issues', 'sgouezel'] |
nobody |
0-28858 8 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 |
|
182/483 |
Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean |
3 |
38 |
['github-actions', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
dupuisf assignee:dupuisf |
0-28796 7 hours ago |
0-25998 7 hours ago |
7-10353 7 days |
| 35753 |
Vilin97 author:Vilin97 |
feat(Topology/Algebra/Order): regular grid helpers and piecewise linear interpolation |
## Summary
- Add `Nat.floor_div_eq_of_mem_Ico`, `mem_Ico_Nat_floor_div`, `locallyFinite_Icc_grid`, and `ContinuousOn.of_Icc_grid` to `Topology/Algebra/Order/Floor.lean`.
- Add new file `Topology/Algebra/Order/PiecewiseLinear.lean` with `piecewiseLinear` and `piecewiseConst` definitions for interpolation on regular grids, along with evaluation lemmas, continuity, and right derivative.
- Grid helpers are generalized over `Field K` with `FloorSemiring` and `OrderTopology`.
- Piecewise definitions are generic over `Field α`; continuity/derivative results are for `ℝ`-normed spaces.
## Motivation
These are used in the [forward Euler convergence proof](https://github.com/Vilin97/forward_euler) to construct piecewise linear interpolations of Euler points and prove their continuity. They are general-purpose lemmas about regular grids and piecewise interpolation that should be useful beyond this application.
Follow-up PR: #35755 (forward Euler method convergence).
---
The initial proof was produced by [Aristotle](https://aristotle.harmonic.fun). The code was then iteratively refined (factoring out lemmas, golfing, simplifying proofs) using Claude Code (Claude Opus 4.6). |
t-topology
new-contributor
|
151/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Order/Floor.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean |
3 |
6 |
['copilot-pull-request-reviewer', 'github-actions', 'wwylele'] |
dagurtomas assignee:dagurtomas |
0-28277 7 hours ago |
0-36540 10 hours ago |
6-46791 6 days |
| 36059 |
joelriou author:joelriou |
feat(CategoryTheory/Functor): exactness properties of conservative families of exact functors |
A morphism of homological complexes is a quasi-isomorphism iff it is so after applying a conservative family of exact functors.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
195/0 |
Mathlib.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Exact.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Limits.lean,Mathlib/CategoryTheory/Limits/Shapes/ZeroObjects.lean |
4 |
3 |
['github-actions', 'robin-carlier'] |
nobody |
0-27097 7 hours ago |
0-52337 14 hours ago |
0-11893 3 hours |
| 36095 |
kim-em author:kim-em |
chore: remove stray comment about backward.isDefEq.respectTransparency |
This PR removes a stray comment in `lakefile.lean` that referred to the `backward.isDefEq.respectTransparency` option. The option itself was already removed, but the comment was left behind.
See https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/backward.2EisDefEq.2ErespectTransparency/near/576953838
🤖 Prepared with Claude Code |
|
0/3 |
lakefile.lean |
1 |
4 |
['Parcly-Taxel', 'github-actions', 'kim-em'] |
nobody |
0-27017 7 hours ago |
unknown |
unknown |
| 36098 |
Parcly-Taxel author:Parcly-Taxel |
chore: split natural number lemmas from `RingTheory.Radical` |
The new copyright headers are based on #25335. |
t-ring-theory
file-removed
|
100/88 |
Mathlib.lean,Mathlib/RingTheory/Polynomial/Radical.lean,Mathlib/RingTheory/Radical/Basic.lean,Mathlib/RingTheory/Radical/NatInt.lean |
4 |
1 |
['github-actions'] |
nobody |
0-26933 7 hours ago |
unknown |
unknown |
| 35950 |
kim-em author:kim-em |
feat(Tactic): add inferInstanceAs% to fix type leakage |
This PR adds `inferInstanceAs%`, a drop-in replacement for `inferInstanceAs` that prevents "type leakage" in synthesized instances.
When `inferInstanceAs (SomeClass A)` is used to define `SomeClass B` (where `B` is a non-reducible alias for `A`), the synthesized instance may contain lambda binder domains (and other sub-expressions) referring to `A` or deeper unfoldings instead of `B`. This is invisible at `default` transparency but causes `isDefEq` failures at `reducibleAndInstances` transparency — which is the level used by `grind`'s `checkInst`.
`inferInstanceAs%` fixes this by recursively normalizing the constructor tree: it WHNFs to expose the constructor, patches carrier type parameters via `isDefEq` matching against the unfolding chain, recursively processes instance-implicit fields, and replaces lambda binder domains in function fields.
As a demonstration, this fixes the `grind` failure in `FiniteResidueField` that was worked around with `#adaptation_note` and a manual proof on `nightly-testing`.
🤖 Prepared with Claude Code |
|
428/12 |
Mathlib.lean,Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Tactic.lean,Mathlib/Tactic/InferInstanceAsPercent.lean,MathlibTest/InferInstanceAsPercent.lean |
5 |
29 |
['JovanGerb', 'astrainfinita', 'github-actions', 'kim-em'] |
nobody |
0-26501 7 hours ago |
0-26564 7 hours ago |
0-70176 19 hours |
| 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'] |
YaelDillies assignee:YaelDillies |
0-26211 7 hours ago |
16-62467 16 days ago |
16-62411 16 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/)
|
t-analysis |
351/24 |
Mathlib.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean |
4 |
2 |
['github-actions', 'joneugster'] |
j-loreaux assignee:j-loreaux |
0-26210 7 hours ago |
15-10244 15 days ago |
15-10188 15 days |
| 35867 |
edegeltje author:edegeltje |
feat(CategoryTheory/Topos): Define subobject classifier for sheaf of types |
This PR defines `Sheaf.classifier J : Classifier (Sheaf J (Type (max u v))`, which is the last ingredient missing to sheaf categories being elementary topoi.
adapted from:
https://github.com/edegeltje/CwFTT/blob/591d4505390172ae70e1bc97544d293a35cc0b3f/CwFTT/Classifier/Sheaf.lean
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
370/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean,Mathlib/CategoryTheory/Sites/Sheaf.lean,Mathlib/CategoryTheory/Topos/Sheaf.lean |
4 |
15 |
['chrisflav', 'edegeltje', 'github-actions'] |
robin-carlier assignee:robin-carlier |
0-26209 7 hours ago |
3-36442 3 days ago |
3-60901 3 days |
| 35871 |
edegeltje author:edegeltje |
feat(CategoryTheory/Limits): `IsPullback.mono_fst_of_mono` and similar |
This lemma is more convenient than going through `MorphismProperty.IsStableUnderBasechange`.
We use `(inst : Mono f := by infer_instance)` instead of `[Mono f]` because on occasion, these proof arguments are not by `inferInstance`, and this design lets us more easily use the lemma in such cases.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
46/46 |
Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean,Mathlib/CategoryTheory/MorphismProperty/Limits.lean |
2 |
1 |
['github-actions'] |
robin-carlier assignee:robin-carlier |
0-26208 7 hours ago |
4-53183 4 days ago |
4-53127 4 days |
| 35882 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra/ModuleCat): API on short complex in ModuleCat |
Adding some API on short complex in ModuleCat, for construction and exactness.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
19/0 |
Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
0-26207 7 hours ago |
unknown |
unknown |
| 35895 |
edegeltje author:edegeltje |
feat(CategoryTheory/Topos/Classifier): subobject classifiers, isos and equivalences |
this PR adds `Classifier.ofEquivalence`, `Classifier.ofIso` and `Classifier.uniqueUpToIso`, as well as accompanying lemmas
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
106/3 |
Mathlib/CategoryTheory/Topos/Classifier.lean |
1 |
1 |
['github-actions'] |
joelriou assignee:joelriou |
0-26206 7 hours ago |
3-41055 3 days ago |
3-40999 3 days |
| 35899 |
themathqueen author:themathqueen |
feat(Analysis): `extremePoints 𝕜 (closedBall 0 1) ⊆ sphere 0 1` |
... in a nontrivial normed space, with equality in a nontrivial Hilbert space.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
84/0 |
Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Analysis/RCLike/Basic.lean |
2 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
0-26205 7 hours ago |
3-33799 3 days ago |
3-33743 3 days |
| 35673 |
Parcly-Taxel author:Parcly-Taxel |
feat: radical lemmas for natural numbers and integers |
Add lemmas relating to the radical on `Nat` and `Int` in `RingTheory.Radical.NatInt`. The existing file is moved to `RingTheory.Radical.Basic`, whose module docstring is updated.
These are needed as part of a project I'm doing for my PhD under Frank Stephan.
* depends on: #36098 |
file-removed
t-ring-theory
|
162/88 |
Mathlib.lean,Mathlib/RingTheory/Polynomial/Radical.lean,Mathlib/RingTheory/Radical/Basic.lean,Mathlib/RingTheory/Radical/NatInt.lean |
4 |
25 |
['Parcly-Taxel', 'github-actions', 'mathlib-merge-conflicts', 'riccardobrasca', 'vihdzp'] |
riccardobrasca assignee:riccardobrasca |
0-26081 7 hours ago |
1-74032 1 day ago |
7-5470 7 days |
| 36084 |
emo916math author:emo916math |
Eliminated a hypothesis on IsTheta.rpow |
A strengthened version of `IsTheta.rpow`: if $f$ and $g$ are eventually nonnegative functions with $f = \Theta(g)$ and $r \in \mathbb{R}$, then $f^r = \Theta(g^r)$.
The previous version had a hypothesis that $r \geq 0$. The present version proves by splitting into two cases; in the case $r < 0$, the lower and upper bounds must be used in reverse order.
Since `IsTheta.rpow` is not used elsewhere in Mathlib, this should be an easy one to merge.
(Claude AI was used to help in the golfing.)
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
10/3 |
Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean |
1 |
2 |
['github-actions'] |
nobody |
0-24519 6 hours ago |
0-24033 6 hours ago |
0-23977 6 hours |
| 35906 |
scp020 author:scp020 |
feat(Combinatorics/SimpleGraph/Walks): add Walk.IsChord and Walk.IsChordless |
Add `Walk.IsChord` and `Walk.IsChordless` predicates in a new file `SimpleGraph/Walks/Chords.lean`.
See "chord" in https://en.wikipedia.org/wiki/Glossary_of_graph_theory
Discussion on Zulip:
[Zulip link](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Walk.2EIsChordless.20live.20in.20mathlib.3F/with/575277309)
authored-by: Tianyi Zhao
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
68/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Chords.lean |
2 |
11 |
['SnirBroshi', 'github-actions', 'scp020'] |
nobody |
0-22992 6 hours ago |
0-25209 6 hours ago |
1-47299 1 day |
| 36087 |
matthewjasper author:matthewjasper |
chore: fix diamonds for Real/Complex Algebra instances |
Unfold or make `implicit_reducible` some definitions used to define `Algebra ℝ ℂ` . This should allow reducing use of `set_option backward.isDefEq.respectTransparency false`.
---
[](https://gitpod.io/from-referrer/)
|
|
46/20 |
Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Algebra/Pi.lean,Mathlib/Algebra/Algebra/Prod.lean,Mathlib/Algebra/Algebra/RestrictScalars.lean,Mathlib/Algebra/Category/ModuleCat/Algebra.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/InnerProductSpace/Basic.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/LinearAlgebra/Complex/Module.lean,Mathlib/NumberTheory/ModularForms/JacobiTheta/TwoVariable.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/TensorProduct/Maps.lean |
13 |
2 |
['github-actions', 'matthewjasper'] |
nobody |
0-22032 6 hours ago |
unknown |
unknown |
| 36091 |
JJYYY-JJY author:JJYYY-JJY |
feat(Analysis.LocallyConvex.Separation): add Eidelheit's separation theorem |
Adds `geometric_hahn_banach_of_interior_nonempty`, formalizing Eidelheit's separation theorem for disjoint convex sets where one has a nonempty interior.
This resolves the longstanding TODO in `Mathlib.Analysis.LocallyConvex.Separation`. The patch also removes the TODO for the topological property `Convex ℝ s → interior (closure s) ⊆ s`, as this is already handled by `Convex.closure_interior_eq_closure_of_nonempty_interior` (imported from `Mathlib.Analysis.Convex.Topology`).
Key implementation details:
* Uses `geometric_hahn_banach_open` to separate `interior A` and `B`.
* Requires `B.Nonempty` to guarantee the separating continuous linear functional is nontrivial (`f ≠ 0`), avoiding the triviality trap where `A` covers the entire space.
* Uses `closure_minimal` to extend the weak inequality from `interior A` to the entirety of `A`.
---
[](https://gitpod.io/from-referrer/)
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Interior.20of.20closure.20for.20convex.20sets/with/577060103 |
t-analysis
new-contributor
|
39/5 |
Mathlib/Analysis/LocallyConvex/Separation.lean |
1 |
7 |
['copilot-pull-request-reviewer', 'github-actions', 'wwylele'] |
nobody |
0-20192 5 hours ago |
0-19340 5 hours ago |
0-27460 7 hours |
| 35957 |
Scarlett-le author:Scarlett-le |
feat: add dist_center_midpoint_lt_radius for spheres |
Adds two results about chords of spheres in Euclidean affine spaces:
- `Sphere.inner_vsub_center_midpoint_vsub`: the vector from the center
of a sphere to the midpoint of a chord is orthogonal to the chord.
- `Sphere.dist_center_midpoint_lt_radius`: the distance from the center
to the midpoint of a chord with distinct endpoints is strictly less
than the radius. This follows by applying the Pythagorean theorem to
the right triangle formed by the center, the midpoint, and an endpoint,
using the orthogonality result above. |
t-euclidean-geometry |
22/0 |
Mathlib/Geometry/Euclidean/Sphere/Basic.lean |
1 |
2 |
['github-actions', 'jsm28'] |
nobody |
0-19279 5 hours ago |
0-18668 5 hours ago |
2-1939 2 days |
| 34629 |
plp127 author:plp127 |
feat: cyclic group with explicit generator is equivalent to `ZMod n` |
We provide an equivalence between a cyclic group (given by an explicit generator) and `ZMod n`, where `n` is equal to the cardinality of the group. The equivalence sends `1` to the generator.
See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/ZMod.20to.20cyclic.20group/near/571147306).
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
78/13 |
Mathlib/GroupTheory/SpecificGroups/Cyclic.lean |
1 |
13 |
['github-actions', 'mathlib-merge-conflicts', 'plp127', 'riccardobrasca', 'tb65536', 'vihdzp'] |
vihdzp assignee:vihdzp |
0-17757 4 hours ago |
0-17820 4 hours ago |
5-53805 5 days |
| 36020 |
SproutSeeds author:SproutSeeds |
feat(Combinatorics/Enumerative/DoubleCounting): add weighted bipartite lower bound |
## Summary
This PR adds a weighted bipartite double-counting lower bound in
`Mathlib/Combinatorics/Enumerative/DoubleCounting.lean`:
- `Finset.sum_mul_le_sum_sum_bipartiteBelow_of_le_card_bipartiteAbove`
## New theorem
```lean
theorem sum_mul_le_sum_sum_bipartiteBelow_of_le_card_bipartiteAbove
[∀ a b, Decidable (r a b)] (w m : α → ℕ)
(hm : ∀ a ∈ s, m a ≤ #(t.bipartiteAbove r a)) :
(∑ a ∈ s, m a * w a) ≤ ∑ b ∈ t, ∑ a ∈ s.bipartiteBelow r b, w a
```
## Motivation
Existing double-counting lemmas in this file are cardinality-based with constant bounds.
This theorem provides the weighted/inhomogeneous variant: each left vertex `a` can carry
its own multiplicity lower bound `m a` and weight `w a`.
This packages a reusable pattern for incidence arguments where lower bounds vary across
vertices.
## Use cases
1. Weighted incidence counting in bipartite relations with non-uniform degree guarantees.
2. Charging arguments where each object contributes weight and has an object-dependent
minimum witness multiplicity.
## API / compatibility
- No existing theorem names changed.
- No imports added.
- Additive change only.
## Verification
```bash
~/.elan/bin/lake build Mathlib.Combinatorics.Enumerative.DoubleCounting
~/.elan/bin/lake env lean Mathlib/Combinatorics/Enumerative/DoubleCounting.lean
```
## AI usage
I used AI tools for exploration/drafting, then manually selected the statement,
edited the Lean code, and ran local checks.
|
new-contributor
t-combinatorics
|
15/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean |
1 |
6 |
['Rida-Hamadani', 'SproutSeeds', 'github-actions'] |
nobody |
0-15891 4 hours ago |
0-16794 4 hours ago |
1-1718 1 day |
| 36100 |
plp127 author:plp127 |
feat(FieldTheory/KrullTopology): generalize theorems |
Simultaneously generalize `IntermediateField.fixingSubgroup_isClosed` and `InfiniteGalois.fixingSubgroup_isClosed` to algebraic extensions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
17/25 |
Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/KrullTopology.lean |
2 |
1 |
['github-actions'] |
nobody |
0-15594 4 hours ago |
unknown |
unknown |
| 36101 |
wwylele author:wwylele |
feat(RingTheory): lemmas about power of maximal ideal |
This adds `IsMaximal.mul_mem_pow` that generalizes `Ideal.IsPrime.mul_mem_pow ` from (IsPrime + IsDedekindDomain) to IsMaximal (Except for the trivial bot case, which is why the prime version is kept)
Also added a related `Quotient.isUnit_mk_pow_{of/iff}_notMem` for determining units in a quotient by power
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
59/6 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean |
4 |
1 |
['github-actions'] |
nobody |
0-11600 3 hours ago |
unknown |
unknown |
| 35951 |
parabamoghv author:parabamoghv |
feat(CategoryTheory/Monoidal): evaluation coevaluation isomorphisms |
This PR adds four features to rigid categories:
1. `coevaluation_evaluation` and `evaluation_coevaluation` as isomorphism equalities: Using `IsIso` instances for the `evaluation` and `coevaluation` morphisms, we promote the morphism equalities to isomorphism equalities.
2. `ExactPairing Y X` from `ExactPairing X Y`: Using an exact pairing and `IsIso` instances for both `evaluation` and `coevaluation`, we swap the exact pairing by inverting the evaluation and coevaluation morphisms. Any suggestions for the definition name are welcome. Right now it is `ExactPairing.Symm`. The second choice was `ExactPairing.Swap`.
3. `HasLeftDual X` from `HasRightDual X`: Using a `HasRightDual X` instance and relevant `IsIso` instances, we construct a left dual. Similar construction for the other way.
4. `LeftDual` isomorphic to `RightDual`: Using relevant `IsIso` instances, we provide the isomorphism from the left dual of an object to the right dual. This can be achieved in two ways: either by using `leftDualIso` or using `rightDualIso`. We will prove in a subsequent PR that both these isomorphisms are equal.
Motivation: This is part of an effort to formalize CategoricalGroups, which can be defined as right rigid groupoids. The approach is motivated by the discussion in [#34830](https://github.com/leanprover-community/mathlib4/pull/34830).
Any comments or suggestions are welcome, especially about the naming.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
|
65/0 |
Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean |
1 |
2 |
['github-actions'] |
nobody |
0-11520 3 hours ago |
0-10883 3 hours ago |
1-46427 1 day |
| 35627 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Finite): min/max degrees of top/bot |
And a couple of lemmas about `IsRegularOfDegree`, e.g. the empty graph is regular of any degree.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
28/1 |
Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean |
2 |
6 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
0-9332 2 hours ago |
0-10153 2 hours ago |
10-5241 10 days |
| 26212 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): the Rees theorem for depth |
In this PR we proved the Rees theorem for depth.
Co-authored-by: Hu Yongle
---
- [x] depends on: #27416
[](https://gitpod.io/from-referrer/)
|
large-import
t-ring-theory
|
240/24 |
Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/Category.lean,Mathlib/RingTheory/Regular/Depth.lean,Mathlib/RingTheory/Regular/RegularSequence.lean |
5 |
55 |
['Thmoas-Guan', 'alreadydone', 'chrisflav', 'dagurtomas', 'erdOne', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
chrisflav assignee:chrisflav |
0-8736 2 hours ago |
0-8864 2 hours ago |
79-75212 79 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 |
0-6522 1 hour ago |
0-6588 1 hour ago |
47-4421 47 days |
| 35233 |
kim-em author:kim-em |
chore: lake shake --add-public --keep-implied --keep-prefix --fix |
This PR runs `lake shake --add-public --keep-implied --keep-prefix --fix` again after https://github.com/leanprover-community/mathlib4/pull/34511, picking up the remaining 28 files that now have suggestions.
🤖 Prepared with Claude Code |
large-import |
13/12 |
Mathlib/Algebra/Category/ModuleCat/Sheaf/Quasicoherent.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Data/Nat/Init.lean,Mathlib/LinearAlgebra/Matrix/Kronecker.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean,Mathlib/LinearAlgebra/TensorProduct/Map.lean,Mathlib/Logic/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/RingTheory/MatrixAlgebra.lean,Mathlib/Tactic/Hint.lean,Mathlib/Tactic/Linter/FindDeprecations.lean,Mathlib/Tactic/Nontriviality/Core.lean,Mathlib/Tactic/NormNum/Result.lean,Mathlib/Tactic/Order/CollectFacts.lean,Mathlib/Tactic/Tauto.lean |
16 |
8 |
['TwoFX', 'adomani', 'bryangingechen', 'github-actions', 'kim-em', 'mathlib-merge-conflicts'] |
nobody |
0-5099 1 hour ago |
0-7007 1 hour ago |
10-66316 10 days |
| 35559 |
mike1729 author:mike1729 |
feat(Analysis/Normed): weak-topology embedding into weak-star bidual and compactenss transfer theorem |
This PR refactors the double dual material and adds new results connecting the weak topology on a normed space to the weak-star topology on its bidual.
## Changes
### New file: `Analysis.Normed.Module.DoubleDual`
Extracts the canonical embedding `inclusionInDoubleDual` and the bidual isometry `inclusionInDoubleDualLi` from `Analysis.Normed.Module.Dual` into a dedicated file, and adds:
- `inclusionInDoubleDualWeak`: the canonical map from `WeakSpace 𝕜 X` into `WeakDual 𝕜 (StrongDual 𝕜 X)`.
- `inclusionInDoubleDualWeak_isEmbedding`: this map is a topological embedding.
- `inclusionInDoubleDualWeak_homeomorph`: the map as a homeomorphism onto its range.
- `isCompact_closure_of_isBounded`: bounded sets whose bidual image has weak-star closure in range have weakly compact closure, via Banach–Alaoglu.
### New file: `Analysis.Normed.Module.WeakSpace`
- `WeakSpace.instBornology`: norm bornology on `WeakSpace 𝕜 E`, inherited from `E`.
- `WeakSpace.instT2Space`: the weak topology over `RCLike` is Hausdorff (via Hahn–Banach).
### Modified: `Analysis.Normed.Module.Dual`
The double dual inclusion material is moved out; polar set results remain. References to `inclusionInDoubleDual` in `polar_closure` are replaced by `ContinuousLinearMap.apply` to avoid a dependency on the new file.
---
CC: @faenuccio this may be relevant for your Goldstine formalization.
|
t-analysis
new-contributor
|
285/99 |
Mathlib.lean,Mathlib/Analysis/LocallyConvex/SeparatingDual.lean,Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Module/DoubleDual.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/Normed/Module/WeakSpace.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic.lean,Mathlib/Probability/Distributions/Gaussian/CharFun.lean |
10 |
16 |
['github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mike1729'] |
ADedecker assignee:ADedecker |
0-4973 1 hour ago |
0-4326 1 hour ago |
10-59254 10 days |
| 35785 |
Brian-Nugent author:Brian-Nugent |
feat(CategoryTheory/Topology): Add Flasque Sheaves |
This PR defines flasque sheaves on a topological space as sheaves where all restriction morphisms are epimorphisms. The main result of this PR is `TopCat.Sheaf.IsFlasque.epi_of_shortExact` which says a short exact sequence where the first sheaf is flasque remains exact on sections.
---
- [x] depends on: #34267
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-category-theory
|
282/0 |
Mathlib.lean,Mathlib/Topology/Sheaves/AddCommGrpCat.lean,Mathlib/Topology/Sheaves/Flasque.lean,Mathlib/Topology/Sheaves/LocallySurjective.lean,Mathlib/Topology/Sheaves/Presheaf.lean,Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean |
6 |
17 |
['Brian-Nugent', 'github-actions', 'joelriou', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smorel394'] |
dagurtomas assignee:dagurtomas |
0-3067 51 minutes ago |
0-37362 10 hours ago |
0-37074 10 hours |
| 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
t-algebra
label:t-algebra$ |
213/6 |
Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
4 |
17 |
['CBirkbeck', 'MichaelStollBayreuth', 'github-actions', 'jcommelin', 'tb65536'] |
tb65536 assignee:tb65536 |
0-2080 34 minutes ago |
0-53456 14 hours ago |
15-1137 15 days |
| 35958 |
bryangingechen author:bryangingechen |
ci: add conditionals on {lean,batteries}-pr-testing steps |
These steps only need to run from mathlib4-nightly-testing and when the branch names fit the *-pr-testing pattern. There's no need to mint a token for other runs.
Less importantly, this is also breaking CI on dependabot PRs cf. https://github.com/leanprover-community/mathlib4/pull/35917#issuecomment-3980111057
---
[](https://gitpod.io/from-referrer/)
|
CI |
2/2 |
.github/workflows/build_template.yml |
1 |
1 |
['github-actions'] |
nobody |
0-1163 19 minutes ago |
2-2851 2 days ago |
2-2795 2 days |
| 36077 |
SproutSeeds author:SproutSeeds |
feat(DoubleCounting): parity of odd-degree vertices in bipartite incidence |
### Summary
Adds a parity theorem for bipartite incidence in `Mathlib.Combinatorics.Enumerative.DoubleCounting`:
- `odd_card_filter_odd_bipartiteAbove_iff_odd_card_filter_odd_bipartiteBelow`
This is intended as the first small supporting step for #25231.
### Local checks
- `~/.elan/bin/lake build Mathlib/Combinatorics/Enumerative/DoubleCounting.lean`
- `~/.elan/bin/lake exe lint-style Mathlib/Combinatorics/Enumerative/DoubleCounting.lean`
- `~/.elan/bin/lake exe runLinter --trace Mathlib.Combinatorics.Enumerative.DoubleCounting`
- `bash /Users/codymitchell/Documents/code/sunflower-coda/repo/scripts/mathlib-issue-local-gate.sh --repo /Users/codymitchell/Documents/code/mathlib4 --issue 25231 --build-target Mathlib/Combinatorics/Enumerative/DoubleCounting.lean --lint-module Mathlib.Combinatorics.Enumerative.DoubleCounting --skip-mk-all`
|
t-combinatorics
new-contributor
large-import
|
17/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean |
1 |
2 |
['github-actions'] |
nobody |
0-1070 17 minutes ago |
unknown |
unknown |
| 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 |
| 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 |
33-26111 1 month ago |
42-5111 42 days ago |
52-42261 52 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 |
33-26108 1 month ago |
41-28087 41 days ago |
41-43046 41 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 |
32-26118 1 month ago |
36-64876 36 days ago |
45-40120 45 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 |
31-26069 1 month ago |
35-3131 35 days ago |
59-73758 59 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 |
28-59910 1 month ago |
38-61328 38 days ago |
38-61272 38 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 |
28-35878 1 month ago |
28-35878 28 days ago |
80-66826 80 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 |
28-34705 1 month ago |
28-34705 28 days ago |
81-3674 81 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 |
27-54984 27 days ago |
27-54362 27 days ago |
36-55065 36 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 |
26-26202 26 days ago |
30-14737 30 days ago |
30-14681 30 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 |
25-55895 25 days ago |
42-8399 42 days ago |
42-15171 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 |
23-26188 23 days ago |
28-7557 28 days ago |
28-7501 28 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 |
22-1647 22 days ago |
22-760 22 days ago |
84-49476 84 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 |
21-82083 21 days ago |
54-3858 54 days ago |
74-33497 74 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 |
21-26034 21 days ago |
29-80094 29 days ago |
33-41416 33 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 |
21-26030 21 days ago |
29-65867 29 days ago |
29-65811 29 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 |
20-62450 20 days ago |
20-61827 20 days ago |
20-62763 20 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 |
18-66468 18 days ago |
18-65823 18 days ago |
31-66961 31 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 |
15-40048 15 days ago |
15-41492 15 days ago |
21-45435 21 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 |
15-19652 15 days ago |
15-19652 15 days ago |
22-49672 22 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 |
14-32212 14 days ago |
18-10558 18 days ago |
27-37374 27 days |
| 28546 |
Sfgangloff author:Sfgangloff |
feat(SymbolicDynamics): basic setup of Zd, full shift, cylinders, pat… |
This PR adds a **group-generic** foundation for symbolic dynamics over an arbitrary group `G`, together with convenient specializations for `ℤ` and `ℤ^d`.
Summary of additions:
- **Full shift and shift action**
- `abbrev FullShift (A G) := G → A` (inherits product topology from the Π-type).
- Right shift `shift g x` with convention `(shift g x) h = x (h * g)`.
- **Cylinders and topology**
- `cylinder U x : Set (G → A)` for finite `U : Finset G`.
- Cylinders are open under `[DiscreteTopology A]`; with a finite alphabet they are also closed.
- Equality with dependent products:
`cylinder U x = Set.pi (↑U) (fun i => ({x i} : Set A))`, enabling use of the `Set.pi` API.
- **Patterns, occurrences, and subshifts**
- `Pattern A G` with finite `support : Finset G` and `data : support → A`.
- `Pattern.occursIn p x g` (occurrence at translate `g`) and the expected shift law.
- `forbids F` and `Subshift A G` (closed, shift-invariant subsets).
- `FixedSupport A G U` with an equivalence to `(U → A)` to obtain finiteness.
- **Language on finite shapes and counting**
- `languageOn X U`, `languageCardOn X U`, and `patternCountOn Y U`.
- **Entropy along a shape sequence**
- `limsupAtTop` (as an `sInf` of eventual upper bounds).
- `entropyAlong X F hF := limsup (log (patternCountOn X (F n) + 1) / |F n|)`
for any nonempty finite shapes `F : ℕ → Finset G` (the `+ 1` avoids `log 0`).
- **Specializations**
- `IntShapes`: segments `[-n,n]` on `Multiplicative ℤ`, with `entropy_Z`.
- `ZdShapes`: boxes `[-n,n]^d` on `ℤ^d` (as functions `Fin d → ℤ`), with `entropy_Zd`.
Mathematical remarks:
- The API is **shape-parametric**: entropy is defined along user-provided finite shapes.
- On **amenable** groups, using a **Følner** sequence yields a canonical value (Ornstein–Weiss).
This PR does not assume amenability; the family of shapes is an explicit input.
Motivation:
Provide a clean, reusable base for symbolic dynamics on groups in mathlib.
Future work:
- Add a Følner predicate and prove shape-independence / limit existence on amenable groups.
- Expand the `ℤ`/`ℤ^d` toolkit (alternative shapes, mixing, factors).
- Develop 1D theory and, longer-term, multidimensional SFT results (e.g. along the lines of Hochman–Meyerovitch).
|
t-dynamics
new-contributor
|
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 |
14-27681 14 days ago |
14-26930 14 days ago |
109-58730 109 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'] |
b-mehta assignee:b-mehta |
12-26207 12 days ago |
24-49416 24 days ago |
24-49360 24 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'] |
RemyDegenne assignee:RemyDegenne |
11-26204 11 days ago |
14-54620 14 days ago |
14-54564 14 days |
| 34966 |
Deep0Thinking author:Deep0Thinking |
feat(MeasureTheory): add `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio` and `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic` |
This PR proves:
- `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio`
- `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic`
- `integral_Ioi_sub_Ioi`, `integral_Ioi_sub_Ioi'`, `integral_Iio_sub_Iio`, `integral_Iio_sub_Iio'`
- `Ioi_diff_Ioc`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
125/1 |
Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
3 |
14 |
['CoolRmal', 'Deep0Thinking', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
10-54659 10 days ago |
10-54166 10 days ago |
22-77917 22 days |
| 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 |
9-42217 9 days ago |
9-41625 9 days ago |
24-1778 24 days |
| 35504 |
JoaBjo author:JoaBjo |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property
Add the main analytic results for the exponential distribution:
- moment-generating function `mgf id (expMeasure r) t = r / (r - t)` for `t < r`
- mean `∫ x, x ∂(expMeasure r) = r⁻¹`
- variance `Var[id; expMeasure r] = r⁻¹ ^ 2`
- `ℒp` membership for all `p`
- tail probability `P(X > x) = exp (-(r * x))`
- memoryless property `P(X > s + t | X > s) = P(X > t)`
The MGF is computed by reducing to the known improper integral `∫ exp(c * x)` on `Ioi`,
and integrability is deduced by contradiction from the positive closed-form value.
The mean and variance are computed via the Gamma function integral
`∫₀^∞ x^(n-1) exp(-r x) dx = Γ(n) / rⁿ`. The memoryless property follows from
the exponential identity `exp(-(r(s+t))) = exp(-rt) * exp(-rs)`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
200/0 |
Mathlib/Probability/Distributions/Exponential.lean |
1 |
6 |
['JoaBjo', 'Timeroot', 'github-actions'] |
kex-y assignee:kex-y |
9-26207 9 days ago |
12-39746 12 days ago |
13-44918 13 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 |
12 |
['SnirBroshi', 'github-actions', 'themathqueen', 'vihdzp'] |
nobody |
9-619 9 days ago |
8-86295 8 days ago |
22-84145 22 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'] |
kmill assignee:kmill |
8-26206 8 days ago |
24-24689 24 days ago |
32-25432 32 days |
| 34599 |
cameronfreer author:cameronfreer |
feat(Logic/Equiv/Fintype): generalize toCompl and exists_extending_pair to finite source |
Generalize the Equiv subtype-extension API so it only needs finiteness of
the source subtype, then use that to drastically simplify
`Equiv.Perm.isMultiplyPretransitive`.
### Changes to `Logic/Equiv/Fintype.lean`
* **`Equiv.toCompl`**: generalize from `[Finite α]` to `[Finite {x | p x}]`.
New proof (due to tb65536) uses finset symmetric differences to avoid
needing finiteness of the ambient type.
* **`Equiv.extendSubtype`** and related lemmas: adapt to `[Finite {x | p x}]`.
* **`Equiv.Perm.exists_extending_pair`**: strengthen from `[Finite β]` to
`[Finite α]`. Given two injective functions `f, g : α → β` where `α` is
finite, there exists `σ : Perm β` with `σ ∘ f = g`. The target `β` can
now be infinite.
### Changes to `MultipleTransitivity.lean`
* **`Equiv.Perm.isMultiplyPretransitive`**: replace ~70-line manual
bijectivity construction with a two-line proof via
`exists_smul_eq_embedding`.
* **`exists_smul_eq_embedding`**: rewire to use `exists_extending_pair`
directly (removing the old cardinal-arithmetic proof
`exists_extending_pair_of_finite_source`).
### Application
Used in formalizing de Finetti's theorem (exchangeability ⇒ contractability):
https://github.com/cameronfreer/exchangeability/blob/03a854a2/Exchangeability/Contractability.lean#L459
Co-authored-by: tb65536 |
t-group-theory
new-contributor
|
49/77 |
Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/Logic/Equiv/Fintype.lean |
2 |
24 |
['LLaurance', 'cameronfreer', 'github-actions', 'mathlib-merge-conflicts', 'tb65536'] |
mattrobball assignee:mattrobball |
8-26205 8 days ago |
8-31029 8 days ago |
17-67374 17 days |
| 35696 |
GrigorenkoPV author:GrigorenkoPV |
fix(Data/Rel): change what `image_eq_cod_of_dom_subset` states |
It used to be identical to its neighbor, `preimage_eq_dom_of_cod_subset`.
Both lemmas seem to have been introduced in #25587.
---
I think this is technically a breaking change? Not sure what has to be done here.
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
1/1 |
Mathlib/Data/Rel.lean |
1 |
2 |
['github-actions', 'vihdzp'] |
nobody |
7-28677 7 days ago |
unknown |
unknown |
| 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'] |
bryangingechen assignee:bryangingechen |
7-26186 7 days ago |
15-18851 15 days ago |
27-82721 27 days |
| 35481 |
FrankieeW author:FrankieeW |
chore(NumberTheory/Zsqrtd): inline duplicated order lemmas into instances |
This PR follows reviewer feedback by removing duplicated order/additive wrapper theorems in `Zsqrtd` and inlining the proofs into the corresponding typeclass instances.
Changes include:
- remove redundant wrappers such as `Zsqrtd.le_total`, `Zsqrtd.add_le_add_left`, `Zsqrtd.le_of_add_le_add_left`, `Zsqrtd.add_lt_add_left`, and `Zsqrtd.le_antisymm`
- keep the canonical API through `LinearOrder` / ordered additive structure fields
- update downstream use in `PellMatiyasevic` to the canonical theorem (`_root_.le_antisymm`)
This reduces namespace-level duplicate APIs and keeps proofs aligned with standard typeclass lemmas.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-number-theory
|
26/10 |
Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean |
2 |
8 |
['FrankieeW', 'github-actions', 'vihdzp'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
7-26178 7 days ago |
10-33618 10 days ago |
13-58988 13 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
|
67/0 |
Mathlib/Analysis/Polynomial/MahlerMeasure.lean |
1 |
12 |
['github-actions', 'j-loreaux', 'khwilson', 'mathlib-merge-conflicts'] |
j-loreaux assignee:j-loreaux |
7-19602 7 days ago |
7-18453 7 days ago |
17-22344 17 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 |
6-64065 6 days ago |
6-62957 6 days ago |
56-75348 56 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.
When generalizing to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
|
22/0 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
2 |
['github-actions'] |
urkud assignee:urkud |
6-26208 6 days ago |
9-35225 9 days ago |
15-66721 15 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$ |
170/6 |
Mathlib/RepresentationTheory/Character.lean,Mathlib/RepresentationTheory/Intertwining.lean,Mathlib/RepresentationTheory/Invariants.lean,Mathlib/RepresentationTheory/Irreducible.lean |
4 |
8 |
['github-actions', 'ocfnash', 'stepan2698-cpu'] |
ocfnash assignee:ocfnash |
5-41344 5 days ago |
5-41344 5 days ago |
21-22401 21 days |
| 35652 |
dennj author:dennj |
feat(LinearAlgebra/Matrix): add `Matrix.mul_eq_smul_one_symm` |
## Summary
- Add `Matrix.mul_eq_smul_one_symm`: if `M * N = c • 1` and `det M ≠ 0`, then `N * M = c • 1`
- A scalar generalisation of `mul_eq_one_symm` (the `c = 1` case) to arbitrary scalars, requiring `IsDomain` and `det M ≠ 0`
- The proof uses the adjugate identity `adjugate M * M = det M • 1` to derive `det M • (N * M) = det M • (c • 1)`, then cancels `det M` via `mul_left_cancel₀`
Theorem imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory |
t-algebra
new-contributor
label:t-algebra$ |
28/0 |
Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean |
1 |
2 |
['eric-wieser', 'github-actions'] |
joelriou assignee:joelriou |
5-26216 5 days ago |
9-47216 9 days ago |
9-47160 9 days |
| 35662 |
FrankieeW author:FrankieeW |
feat(NumberTheory/Zsqrtd): add Archimedean instance via le_arch |
This PR follows a suggestion made in #35606 , #35481
- add `Zsqrtd.le_arch_smul` in `Mathlib/NumberTheory/Zsqrtd/Basic.lean`
- use it to provide `instance : Archimedean (ℤ√d)` in the `Nonsquare` section
- refactor the proof using symmetry to reduce duplication while keeping checks clean
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
43/2 |
Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean |
2 |
6 |
['FrankieeW', 'github-actions', 'tb65536'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
5-26213 5 days ago |
8-54342 8 days ago |
9-28536 9 days |
| 35573 |
antisubnoous author:antisubnoous |
feat(NumberTheory/Chebyshev): express the Chebyshev theta function in terms of the prime counting function |
This is a sibling theorem to Chebyshev.primeCounting_eq_theta_div_log_add_integral.
---
This is my first mathlib4 commit. I am working through some exercises and results in Apostol's ANT book as a means to practice Lean, and this result seemed like an opportunity to practice the mechanics of contributing to Mathlib because the new theorem mirrors closely the sibling theorem above (both appear in Apostol Theorem 4.3).
[](https://gitpod.io/from-referrer/) |
t-number-theory
new-contributor
|
36/1 |
Mathlib/NumberTheory/Chebyshev.lean |
1 |
2 |
['github-actions'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
5-21499 5 days ago |
5-19880 5 days ago |
11-56579 11 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
|
46/0 |
Mathlib/ModelTheory/ElementaryMaps.lean,Mathlib/ModelTheory/LanguageMap.lean |
2 |
7 |
['Citronhat', 'NoneMore', 'fpvandoorn', 'github-actions'] |
fpvandoorn assignee:fpvandoorn |
4-67357 4 days ago |
4-66881 4 days ago |
60-73341 60 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 (`powerset_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
|
81/0 |
Mathlib/Data/List/Perm/Subperm.lean,Mathlib/Data/List/Sublists.lean,Mathlib/Data/Multiset/Powerset.lean |
3 |
28 |
['MixedMatched', 'eric-wieser', 'github-actions', 'joneugster', 'vihdzp'] |
joneugster assignee:joneugster |
4-61626 4 days ago |
11-11677 11 days ago |
11-53883 11 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
|
524/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/Bases.lean,docs/references.bib |
3 |
181 |
['Ruben-VandeVelde', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'mike1729', 'sgouezel', 'themathqueen'] |
sgouezel assignee:sgouezel |
4-58647 4 days ago |
4-58654 4 days ago |
23-44310 23 days |
| 35653 |
pepamontero author:pepamontero |
feat: add ChartedSpace structure on orbit space |
feat: add ChartedSpace structure on orbit space
Add topological preliminaries for properly discontinuous group actions, and use them to equip the orbit space `orbitRel.Quotient G M` with a `ChartedSpace` structure.
In particular:
- Show that the quotient map `Quotient.mk _ : M → orbitRel.Quotient G M` is a covering map and hence a local homeomorphism.
- Construct chosen local inverses of the quotient map and establish properties over them.
- Define a `ChartedSpace` instance on the quotient by composing these local inverses with charts of M.
This started as an ItaLean2025 project; here is the [Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/541885-ItaLean-2025/topic/Projects.3A.20Quotient.20Manifolds/with/575121158) dedicated to it.
---
|
new-contributor
t-differential-geometry
|
186/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Instances/OrbitSpace.lean,Mathlib/Topology/Algebra/OrbitSpace.lean |
3 |
2 |
['github-actions'] |
grunweg assignee:grunweg |
4-57506 4 days ago |
9-44613 9 days ago |
9-44557 9 days |
| 35857 |
AlexeyMilovanov author:AlexeyMilovanov |
feat(Logic.Equiv.BijectiveBase2): add bijective base-2 numeration |
This PR introduces a formalization of the bijective base-2 numeration system.
Unlike standard binary representation, bijective base-2 avoids the "leading zeros" problem, providing a strict mathematical bijection between natural numbers (`ℕ`) and lists of booleans (`List Bool`).
**Main additions:**
* `Equiv.BijectiveBase2.toBits`: Encodes `ℕ` to `List Bool`.
* `Equiv.BijectiveBase2.ofBits`: Decodes `List Bool` to `ℕ`.
* `equivBijectiveBase2`: The formal `ℕ ≃ List Bool` equivalence.
*(Note: This replaces my previously closed PR to avoid the terminology clash between "Dyadic" and dyadic rationals. The namespace and definitions have been updated accordingly).*
*(Note: Used AI to assist with standardizing proof structures).* |
t-logic
new-contributor
|
95/0 |
Mathlib.lean,Mathlib/Logic/Equiv/ListNatBijective.lean |
2 |
4 |
['AlexeyMilovanov', 'SnirBroshi', 'github-actions'] |
nobody |
4-38340 4 days ago |
4-39684 4 days ago |
4-45981 4 days |
| 34742 |
Brian-Nugent author:Brian-Nugent |
feat(SheafCohomology): add API for Sheaf Cohomology |
Defines the long exact sequence on cohomology associated to a short exact sequence of sheaves `H.longSequence`. Also defines `H.equiv₀`, the additive equivalence between `H F 0` and `((sheafSections J AddCommGrpCat).obj (op T)).obj F` when the category has a terminal object `T`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
t-category-theory
|
76/2 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
3 |
16 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joneugster'] |
adamtopaz assignee:adamtopaz |
4-30944 4 days ago |
4-30222 4 days ago |
22-30997 22 days |
| 35672 |
dennj author:dennj |
feat(RingTheory/Polynomial/Cyclotomic): vanishing sums and fiber equidistribution at primitive roots |
## Summary
Building on `sum_eq_zero_iff_forall_eq` from #34592, this PR adds:
- `cyclotomic_prime_coeff_eq_one`: for prime `p`, all coefficients of `cyclotomic p R` equal `1`.
- `eq_nsmul_cyclotomic_of_nonneg_coeff`: a nonneg-coefficient polynomial vanishing at a primitive root is a positive scalar multiple of the cyclotomic polynomial.
- `card_fiber_eq_card_div`: if a function `d : A → ZMod p` satisfies `∑ ζ^(d a) = 0`, then every fiber has cardinality `|A| / p`.
These results are useful for combinatorial applications involving exponential sums and equidistribution over cyclic groups.
Theorems imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory |
t-ring-theory
new-contributor
|
101/1 |
Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean |
2 |
2 |
['github-actions'] |
chrisflav assignee:chrisflav |
4-26224 4 days ago |
9-12683 9 days ago |
9-12627 9 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
|
26/0 |
Mathlib/Analysis/Analytic/Order.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'j-loreaux', 'mkaratarakis'] |
j-loreaux assignee:j-loreaux |
3-47567 3 days ago |
3-46815 3 days ago |
17-6529 17 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
t-analysis
|
62/0 |
Mathlib/Analysis/Complex/CauchyIntegral.lean |
1 |
7 |
['MichaelStollBayreuth', 'github-actions', 'mkaratarakis'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
3-47548 3 days ago |
3-46829 3 days ago |
16-35371 16 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
|
28/0 |
Mathlib/Topology/Instances/EReal/Lemmas.lean |
1 |
13 |
['github-actions', 'j-loreaux', 'jvanwinden', 'mathlib-merge-conflicts', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
3-41430 3 days ago |
3-40069 3 days ago |
7-75026 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
|
414/1 |
Mathlib.lean,Mathlib/Data/Finsupp/Antidiagonal.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/Order/Filter/Cofinite.lean,Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean |
8 |
36 |
['BryceT233', 'Komyyy', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'riccardobrasca'] |
erdOne and riccardobrasca assignee:riccardobrasca assignee:erdOne |
3-29052 3 days ago |
3-26738 3 days ago |
46-35830 46 days |
| 34621 |
homeowmorphism author:homeowmorphism |
feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ` |
feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ`.
Originally, the PR showed that `FreeGroup Empty ≃* Unit` and `FreeGroup α ≃* Multiplicative ℤ`. During the review process, I was asked to generalized `Unit` to any `Unique` type and `Empty` to `IsEmpty`. Through working on this, it has been realized that the pre-existing `FreeGroup Empty ≃ Unit` should be deprecated using `Equiv.ofUnique` and a multiplicative version `FreeGroup Empty ≃* Unit` can be obtained similarly using `MulEquiv.ofUnique` and there was no need to explicitly upgrade the equivalence. The title has been changed to reflect this.
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 |
39 |
['b-mehta', 'copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'kbuzzard', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
3-26107 3 days ago |
15-47953 15 days ago |
22-51023 22 days |
| 35567 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): Golfs |
This PR cleans up the proofs in
Analysis/Normed/Module/PiTensorProduct/{InjectiveSeminorm.lean, ProjectiveSeminorm.lean}
In addition, it performs the following minor structural changes:
* Weaken assumptions from `NontriviallyNormedField 𝕜` to `NormedField 𝕜` where possible
* The proofs showing that `projectiveSeminorm` actually defines a `Seminorm` are split off into separate lemmas. This mimics the idiom used e.g. in `Analysis.Normed.Modula.Operator.Basic` to define the operator norm.
* Register a `Nonempty x.lifts` instance in PiTensorProduct.lean, to avoid creating a half-dozen local instances.
This is the first in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633).
---
Co-authored-by: Davood H. T. Tehrani
[](https://gitpod.io/from-referrer/)
|
maintainer-merge
new-contributor
|
101/158 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean |
3 |
10 |
['github-actions', 'goliath-klein', 'leanprover-radar', 'tb65536'] |
sgouezel assignee:sgouezel |
3-26104 3 days ago |
11-63936 11 days ago |
11-63891 11 days |
| 35745 |
khwilson author:khwilson |
feat(Mathlib/Analysis/Asymptotics/Defs): congr lemmas for IsBigO* |
This PR primarily provides two calculational lemmas that are commonly used in bounding functions.
First, it provides `IsBigO*.sum_congr`. This theorem allows the user to bound each term of a (finite) sum individually. This is different than `IsBigO.sum` which requires all terms to be bound by the _same_ function.
Second, it provides `IsBigO*.sum_congr'`. This theorem allows the user to bound the terms of a sum individually _when the length of the sum changes with respect to the running variable_. This is a common setup with certain techniques such as the method of the hyperbola.
Note: This makes the overall length of this file go above 1500 lines. I'm happy to break it up at the request of reviewers, but that's a bigger change to the API.
AI Usage: Looking up various lemma names in Google Gemini.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
92/1 |
Mathlib/Analysis/Asymptotics/Defs.lean |
1 |
2 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
3-26097 3 days ago |
7-18147 7 days ago |
7-18091 7 days |
| 35907 |
JJYYY-JJY author:JJYYY-JJY |
fix(Topology/Defs/Basic): preserve noncanonical topology instances in delaboration |
Preserve noncanonical topology instances in delaboration.
Restore local instances before checking whether topology arguments can be omitted during delaboration, and print `IsOpen[t]`, `IsClosed[t]`, `closure[t]`, and `Continuous[t₁, t₂]` when the topology instances are not canonical in the current local-instance context.
Previously, pretty-printing could silently drop noncanonical topology arguments, so declarations such as `LinearMap.mem_span_iff_continuous_of_finite` were rendered as if they used the default topology.
Closes #33238 |
t-topology
new-contributor
|
111/0 |
Mathlib/Topology/Defs/Basic.lean,MathlibTest/TopologyNonstandardNotation.lean |
2 |
4 |
['copilot-pull-request-reviewer', 'github-actions'] |
nobody |
3-16897 3 days ago |
3-15309 3 days ago |
3-15253 3 days |
| 35665 |
BryceT233 author:BryceT233 |
feat(RingTheory/AdicCompletion): introduce AdicCompletion.finsuppSum |
This is split from #34936 to make the review process easier.
It introduces `AdicCompletion.finsuppSum`, which is a `Finsupp` version of `AdicCompletion.sum`.
---
- [x] depends on: #35595
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
93/0 |
Mathlib/LinearAlgebra/Finsupp/LSum.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean |
2 |
4 |
['github-actions', 'joneugster', 'mathlib-dependent-issues'] |
nobody |
3-7514 3 days ago |
3-6793 3 days ago |
8-13234 8 days |
| 35705 |
jdhart81 author:jdhart81 |
feat(Data/ENNReal, Probability/Independence): division decomposition and self-independence |
Two general-purpose lemmas extracted from a formal verification of "The Intelligence Bound" (Hart 2025).
---
### New lemmas
- `ENNReal.div_eq_div_mul_div`: Division decomposition `a / c = a / b * (b / c)` when `b ≠ 0` and `b ≠ ⊤`. Added to `Mathlib.Data.ENNReal.Inv`.
- `IndepFun.of_self`: If `Y` is independent of itself under a probability measure, then `X` and `Y` are independent. Self-independence implies `Y` is a.e. constant. Added to `Mathlib.Probability.Independence.Basic`.
### Context
These lemmas arose in formalizing information-theoretic results where:
- The ENNReal division identity is needed for decomposing rate expressions (limsup of ratios)
- The self-independence result bridges entropy = 0 and measure-theoretic independence
### References
- Formal verification: https://github.com/jdhart81/intelligence-bound-lean
- Paper: "The Intelligence Bound" (Hart 2025) |
new-contributor
t-data
|
47/0 |
Mathlib/Data/ENNReal/Inv.lean,Mathlib/Probability/Independence/Basic.lean |
2 |
10 |
['SnirBroshi', 'github-actions', 'jdhart81', 'joneugster', 'kbuzzard'] |
nobody |
2-71064 2 days ago |
3-66224 3 days ago |
7-24607 7 days |
| 34477 |
spanning-tree author:spanning-tree |
refactor(Order): make CompletePartialOrder extend OrderBot |
Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly.
Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor.
See discussion in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20complete.20partial.20order.20and.20domain.20theory.20formalization).
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
15/1 |
Mathlib/Order/CompletePartialOrder.lean |
1 |
3 |
['Citronhat', 'github-actions', 'mathlib-merge-conflicts'] |
pechersky assignee:pechersky |
2-65499 2 days ago |
2-64898 2 days ago |
23-36079 23 days |
| 33714 |
idontgetoutmuch author:idontgetoutmuch |
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II |
Supersedes https://github.com/leanprover-community/mathlib4/pull/33519
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
680/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean |
3 |
200 |
['github-actions', 'grunweg', 'idontgetoutmuch'] |
grunweg assignee:grunweg |
2-58657 2 days ago |
2-57930 2 days ago |
16-84409 16 days |
| 34875 |
banrovegrie author:banrovegrie |
feat(LinearAlgebra/Matrix): add Sherman-Morrison formula |
Mathlib has the matrix determinant lemma (`det_add_replicateCol_mul_replicateRow` in SchurComplement.lean) but lacked the corresponding inverse formula. This PR fills that gap.
- Add `Matrix.inv_add_vecMulVec`: Sherman-Morrison formula for `(A + uv^T)^{-1}`
- Add `Matrix.inv_sub_vecMulVec`: subtraction variant
- Add `Matrix.isUnit_det_add_vecMulVec`: invertibility under the formula's hypotheses
## Test plan
- [x] `lake build` passes
- [x] Lines within 100 char limit
- [x] All declarations have docstrings |
t-algebra
new-contributor
label:t-algebra$ |
135/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/ShermanMorrison.lean |
2 |
11 |
['Xxxjdjdid', 'banrovegrie', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
kim-em assignee:kim-em |
2-57103 2 days ago |
25-4217 25 days ago |
26-56615 26 days |
| 35834 |
homeowmorphism author:homeowmorphism |
feat(Mathlib/GroupTheory/PresentedGroup): every group has a presentation |
We show that every group has a presentation defined by taking the free group with all of the group elements as the generators, and defining the relations as the kernel of the induced subjective homomorphism from that free group to the group itself.
Use of AI: This has been vibe-coded with GPT-Codex-5.3, was updated through review, and was double-checked by the author.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-group-theory
large-import
|
29/1 |
Mathlib/GroupTheory/PresentedGroup.lean |
1 |
12 |
['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'mathlib-bors', 'plp127', 'tb65536'] |
nobody |
2-37786 2 days ago |
2-68446 2 days ago |
2-68390 2 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'] |
adamtopaz assignee:adamtopaz |
2-26212 2 days ago |
20-80523 20 days ago |
20-80467 20 days |
| 35069 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): simple polygons and boundary map |
This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution.
- [ ] depends on: #34598
---
|
new-contributor
t-euclidean-geometry
|
360/0 |
Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean |
4 |
29 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] |
nobody |
2-11718 2 days ago |
6-44736 6 days ago |
8-80075 8 days |
| 35805 |
adrianmartir author:adrianmartir |
feat(NumberTheory/Divisors): Add `infinite_setOf_divisors_iff` |
This proves that the set of divisors `{ m | m | n }` of a natural number `n` is infinite if and only if `n` is zero. The first proof draft was by @Aristotle-Harmonic.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
10/0 |
Mathlib/NumberTheory/Divisors.lean |
1 |
5 |
['adrianmartir', 'alexjbest', 'github-actions'] |
alexjbest assignee:alexjbest |
1-81006 1 day ago |
1-80115 1 day ago |
5-71086 5 days |
| 34624 |
homeowmorphism author:homeowmorphism |
feat(GroupTheory/FreeGroup/Basic): surjection between types induces surjection between free groups on those types |
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 |
24 |
['copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'mathlib-merge-conflicts', 'tb65536', 'vlad902'] |
riccardobrasca assignee:riccardobrasca |
1-71829 1 day ago |
15-48422 15 days ago |
26-4578 26 days |
| 35597 |
BryceT233 author:BryceT233 |
feat(AdicTopology): add lemmas about adic topology |
This PR adds APIs to transport topological and uniform properties of adic topologies across ring equivalences, By upgrading an ideal-preserving ring equivalence to a `UniformEquiv`, we provide natural congruence lemmas for adic completeness, precompleteness, and Hausdorffness, which serve as necessary topological preliminaries for the ongoing formalization of the Cohen Structure Theorem.
Co-authored-by: @Thmoas-Guan
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
55/2 |
Mathlib/RingTheory/AdicCompletion/Topology.lean,Mathlib/Topology/Algebra/Nonarchimedean/AdicTopology.lean |
2 |
7 |
['erdOne', 'github-actions'] |
urkud assignee:urkud |
1-60815 1 day ago |
1-60229 1 day ago |
11-506 11 days |
| 35707 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): introduce `truncTotal` |
This PR introduces the total degree truncation of multivariate formal power series when the index is finite, and uses it to establish the algebraic equivalence between `MvPowerSeries` and the adic completion of `MvPolynomial` with respect to the ideal spanned by all variables `idealOfVars`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
207/2 |
Mathlib.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
4 |
4 |
['github-actions', 'joneugster', 'mathlib-bors'] |
nobody |
1-60786 1 day ago |
1-59740 1 day ago |
8-3086 8 days |
| 35659 |
BryceT233 author:BryceT233 |
chore(Data/Finsupp): update pointwise module structure |
This is the 3rd PR split from #34936 to make the review process easier.
It updates the pointwise module structure `Module (ι → R) (ι →₀ M)` where `R` is a semiring and `M` is an `R`-module.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
25/18 |
Mathlib/Data/Finsupp/Pointwise.lean |
1 |
2 |
['github-actions'] |
joneugster assignee:joneugster |
1-60721 1 day ago |
1-59720 1 day ago |
9-34661 9 days |
| 35647 |
BryceT233 author:BryceT233 |
feat(RingTheory/Ideal/Quotient): add a canonical inclusion map |
This is the second PR split from the larger PR https://github.com/leanprover-community/mathlib4/pull/34936 to make the review process easier.
It introduces `Submodule.powSmulQuotInclusion`, which is the canonical inclusion from `I ^ a • N ⧸ I ^ b • (I ^ a • N)` to `M ⧸ I ^ c • N` where `c = b + a`, and provides auxiliary lemmas for it
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
37/0 |
Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean |
1 |
9 |
['BryceT233', 'erdOne', 'github-actions', 'wwylele'] |
chrisflav assignee:chrisflav |
1-60694 1 day ago |
1-59602 1 day ago |
9-31655 9 days |
| 35646 |
BryceT233 author:BryceT233 |
feat(Algebra): add two lemmas about submodule smul |
This is the first PR split from the larger PR #34936 to make the review process easier.
It adds the following two lemmas regarding pointwise smul and restrictScalars: `Submodule.restrictScalars_image_smul_eq_smul_restrictScalars` and `Submodule.restrictScalars_map_smul_eq_smul_restrictScalars`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
29/0 |
Mathlib/Algebra/Algebra/Operations.lean,Mathlib/RingTheory/Ideal/Maps.lean |
2 |
4 |
['github-actions', 'joneugster'] |
nobody |
1-60631 1 day ago |
1-58880 1 day ago |
9-61342 9 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'] |
kex-y assignee:kex-y |
1-37680 1 day ago |
1-40209 1 day ago |
41-80180 41 days |
| 35724 |
matthewjasper author:matthewjasper |
feat(RingTheory/DedekindDomain/AdicValuation): v-adic integers of `K` are a localization at v^c |
Part of showing `R` is dense in `O_v`, which is used to show that `R / v` is isomorphic to the residue field of `O_v` and
to construct the base change isomorphism for finite adeles.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
large-import
FLT
|
59/0 |
Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
1 |
6 |
['github-actions', 'matthewjasper', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
1-34699 1 day ago |
1-42483 1 day ago |
6-6854 6 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'] |
TwoFX assignee:TwoFX |
1-32684 1 day ago |
1-60819 1 day ago |
15-52310 15 days |
| 35900 |
matthewjasper author:matthewjasper |
chore: Fix non-defeq diamonds on OrderDual |
This only makes changes to fix the diamonds, rather than the general defeq abuse with `OrderDual`.
---
- [ ] depends on: #35995
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
213/116 |
Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Degree.lean,Mathlib/Algebra/Order/Group/Synonym.lean,Mathlib/Algebra/Order/GroupWithZero/Action/Synonym.lean,Mathlib/Algebra/Order/GroupWithZero/Synonym.lean,Mathlib/Algebra/Order/Module/Defs.lean,Mathlib/Algebra/Order/Module/Synonym.lean,Mathlib/Algebra/Order/Ring/Cast.lean,Mathlib/Algebra/Order/Ring/Synonym.lean,Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Normed/Group/Constructions.lean,Mathlib/Data/Nat/Cast/Synonym.lean,Mathlib/Order/Lattice.lean |
13 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
1-27154 1 day ago |
1-24033 1 day ago |
3-7059 3 days |
| 35732 |
TJHeeringa author:TJHeeringa |
feat: Added reproducing kernels |
Develops the basic theory of reproducing kernels, which underlies the reproducing kernel
Hilbert spaces. It shows that the kernels form an ordered semiring and common ways of constructing
kernels from other kernels.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
|
1193/0 |
Mathlib.lean,Mathlib/KernelTheory/Kernel.lean |
2 |
5 |
['TJHeeringa', 'github-actions', 'joneugster', 'vihdzp'] |
j-loreaux assignee:j-loreaux |
1-26196 1 day ago |
6-81997 6 days ago |
6-81941 6 days |
| 35866 |
gad-wiseman author:gad-wiseman |
feat(Topology/Homotopy/Basic): maps homotopic rel S agree on S |
---
This adds an easy lemma showing maps that are `HomotopicRel` a set agree on it. |
t-topology
new-contributor
|
5/0 |
Mathlib/Topology/Homotopy/Basic.lean |
1 |
2 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
1-26182 1 day ago |
4-58319 4 days ago |
4-67018 4 days |
| 35789 |
BryceT233 author:BryceT233 |
feat(RingTheory): add some easy lemmas |
This PR adds three small helper lemmas needed for the ongoing formalization of the Cohen Structure Theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
8/1 |
Mathlib/RingTheory/AdicCompletion/Algebra.lean,Mathlib/RingTheory/MvPolynomial/Ideal.lean |
2 |
8 |
['BryceT233', 'eric-wieser', 'github-actions', 'vihdzp'] |
riccardobrasca assignee:riccardobrasca |
1-22673 1 day ago |
1-22733 1 day ago |
5-2407 5 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
|
1101/0 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/CayleyExamples.lean,Mathlib/Combinatorics/Quiver/Schreier.lean,Mathlib/Combinatorics/SimpleGraph/CayleySumGraph.lean |
4 |
34 |
['SnirBroshi', 'ZRTMRH', 'github-actions', 'tb65536'] |
nobody |
1-12176 1 day ago |
7-41763 7 days ago |
14-21569 14 days |
| 35733 |
mkaratarakis author:mkaratarakis |
feat: Algebraic setup and matrix coefficients for Gelfond-Schneider theorem |
This PR introduces the foundational algebraic setup and coefficient bounds required for the proof of the Gelfond-Schneider Theorem (Hilbert's Seventh Problem), which establishes that for algebraic numbers $\alpha \neq 0, 1$ and irrational algebraic $\beta$, the number $\alpha^\beta$ is transcendental.
Following the contradiction argument presented in Loo-Keng Hua's "Introduction to Number Theory" (Chapter 17.9, 490 -493) Gelfond's Proof), this file constructs the common number field $K$ and sets up the scaled algebraic integers for the auxiliary linear system. This system will later be solved via Siegel's lemma (Lemma 8.2, 490, Hua).
This PR is essentially the first half of page 490 in the book.
The proof proceeds by assuming $\gamma = \alpha^\beta$ is algebraic, meaning $\alpha$, $\beta$, and $\gamma$ all lie in an algebraic field $K$ of degree $h$.
1. Bundles the common number field $K$, the complex embeddings, and the algebraic preimages $\alpha', \beta', \gamma'$, alongside the core hypotheses of the theorem.
2. Defines the field degree $h = [K : \mathbb{Q}]$, and bounds $m = 2h + 2$ and $n = q^2 / (2m)$ to control the dimensions of the linear system.
3. Defines $c_1$, a natural number chosen so that $c_1 \alpha$, $c_1 \beta$, and $c_1 \gamma$ are algebraic integers in $K$. We prove numerous bounding and integrality lemmas (`isIntegral_c₁α`, `isInt_β_bound`, etc.).
4. Formalizes the core algebraic coefficients $(a+b\beta)^k \alpha^{al} \gamma^{bl}$ which appear in the evaluation of the derivatives of the auxiliary function $R(x)$.
5. By scaling the system by $c_1^{n-1+2mq}$, we successfully restrict the entries of our linear system matrix `A` entirely to the ring of integers $\mathcal{O}_K$, preparing it for the application of Siegel's lemma.
6. House Bounds (`c₂`) : Establishes the foundational base integer $c_2$ to bound the absolute values of the conjugates (houses) of our coefficients.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
416/0 |
Mathlib.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean |
2 |
2 |
['github-actions'] |
nobody |
1-11971 1 day ago |
4-43711 4 days ago |
7-41170 7 days |
| 35812 |
khwilson author:khwilson |
feat(MeasureTheory/Group/GeometryOfNumbers): successive minima and existence of a directional basis |
Define the successive minima of a discrete subgroup of a real vector space with respect to a convex set. These invariants show up throughout the geometry of numbers and are the focus of Minkowski's Second Theorem (whose statement is left here with a `proof_wanted`).
Note: The key lemma is that the "gauge set" of the convex set is closed. I took the approach of showing that it is sequentially closed. There's an alternative approach via showing it's the union of a finite number of closed sets. I personally thought this approach was more intuitive, but the union approach may result in a slightly shorter proof.
Co-authored-by: Yaël Dillies
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
392/33 |
Mathlib/Analysis/Convex/Basic.lean,Mathlib/Analysis/Convex/Body.lean,Mathlib/Analysis/Convex/Gauge.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/MeasureTheory/Group/GeometryOfNumbers.lean |
6 |
3 |
['github-actions', 'joneugster'] |
nobody |
1-1765 1 day ago |
5-14430 5 days ago |
5-14374 5 days |
| 33355 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SimpleGraph/Connectivity): define vertex connectivity |
This PR introduces the foundations of vertex connectivity for simple graphs, providing a counterpart to the edge connectivity theory in #32870.
### Main definitions
- `SimpleGraph.IsVertexReachable`: vertices remain reachable after removing strictly fewer than `k` other vertices.
- `SimpleGraph.IsVertexConnected`: a graph is `k`-vertex-connected if its order is strictly greater than `k` and any two distinct vertices are `k`-vertex-reachable.
Includes basic characterizations for $k=0$ and $k=1$, along with monotonicity lemmas (`anti` and `mono`). |
new-contributor
t-combinatorics
|
198/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/IsolateVerts.lean |
3 |
132 |
['0xTerencePrime', 'SnirBroshi', 'YaelDillies', 'github-actions', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
1-773 1 day ago |
1-846 1 day ago |
26-5822 26 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
|
248/15 |
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 |
18 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'sgouezel', 'yoh-tanimoto'] |
nobody |
0-80200 22 hours ago |
1-3860 1 day ago |
33-12617 33 days |
| 36041 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph/Matching): add maximal and maximum matching defs |
Closes #34957.
This is a focused pass on the issue request:
- add `Subgraph.IsMaximalMatching` as `Maximal IsMatching`
- add `Subgraph.IsMaximumMatching` as `MaximalFor IsMatching (fun M ↦ Cardinal.mk M.edgeSet)`
- add small wrapper lemmas:
- `Subgraph.isMaximalMatching_iff`
- `Subgraph.isMaximumMatching_iff`
Build:
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Matching.lean`
- `~/.elan/bin/lake build`
Context:
- There is already broader work in #32555; this PR intentionally keeps scope narrow to land the core defs/API from this issue.
|
t-combinatorics
new-contributor
|
27/0 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean |
1 |
2 |
['github-actions'] |
nobody |
0-77874 21 hours ago |
unknown |
unknown |
| 36042 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph/VertexCover): add minimal/minimum cover defs |
Closes #34958.
This PR adds the requested core definitions/API for vertex covers:
- `SimpleGraph.IsMinimalCover`
- `SimpleGraph.IsMinimumCover`
- `SimpleGraph.isMinimalCover_iff`
- `SimpleGraph.isMinimumCover_iff`
`IsMinimumCover` is defined via `MinimalFor` with `Cardinal.mk` cardinality.
Build:
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/VertexCover.lean`
- `~/.elan/bin/lake build`
Context:
- #33032 contains broader vertex-cover/Kőnig development; this PR is intentionally scoped to landing the focused defs/API from #34958.
|
t-combinatorics
new-contributor
|
22/0 |
Mathlib/Combinatorics/SimpleGraph/VertexCover.lean |
1 |
2 |
['github-actions'] |
nobody |
0-77466 21 hours ago |
unknown |
unknown |
| 36022 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph): redefine `IsBridge` via `deleteEdges` |
Closes #31690
## Summary
This PR changes `SimpleGraph.IsBridge` to the deletion-only notion requested in #31690:
an edge is a bridge when deleting it disconnects its endpoints, without requiring
`e ∈ G.edgeSet` inside the definition.
## Main changes
- Redefine `IsBridge` in `Connectivity/Connected.lean`.
- Update `isBridge_iff` to the new statement.
- Refactor bridge lemmas to carry adjacency/edge-membership assumptions explicitly where needed.
- Add/update helper lemmas used by downstream files.
- Fix dependent proofs in:
- `Connectivity/EdgeConnectivity.lean`
- `Acyclic.lean`
- `Hamiltonian.lean`
## Validation
- `lake build Mathlib.Combinatorics.SimpleGraph.Connectivity.Connected Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity Mathlib.Combinatorics.SimpleGraph.Acyclic Mathlib.Combinatorics.SimpleGraph.Hamiltonian`
- `lake build` (full)
## AI use disclosure
I used Codex as an assistant for drafting/refactoring and proof iteration, and manually verified the final result with local Lean builds.
|
t-combinatorics
new-contributor
|
68/52 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean |
4 |
3 |
['SproutSeeds', 'github-actions'] |
nobody |
0-76956 21 hours ago |
unknown |
unknown |
| 36023 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph): add maximal clique/indep-set defs and use MaximalFor |
Closes #34962.
This PR:
- defines `SimpleGraph.IsMaximalClique` and `SimpleGraph.IsMaximalIndepSet` as aliases of `Maximal`
- redefines `SimpleGraph.IsMaximumClique` and `SimpleGraph.IsMaximumIndepSet` using `MaximalFor` over cardinality
- keeps the existing `..._iff`, complement, existence, and cardinality lemmas by adapting proofs to the new definitions
Build:
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Clique.lean`
- `~/.elan/bin/lake build`
|
t-combinatorics
new-contributor
|
46/31 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
6 |
['SproutSeeds', 'b-mehta', 'github-actions'] |
nobody |
0-75578 20 hours ago |
unknown |
unknown |
| 36050 |
SproutSeeds author:SproutSeeds |
feat(Combinatorics/SimpleGraph/Connectivity): add edge reachability and connectivity numbers |
This adds ENat-valued number definitions for edge connectivity in `SimpleGraph.Connectivity.EdgeConnectivity`.
Main additions:
- `SimpleGraph.edgeReachability`
- `SimpleGraph.edgeConnectivity`
Basic API:
- `SimpleGraph.le_edgeReachability`
- `SimpleGraph.le_edgeConnectivity`
- `SimpleGraph.edgeConnectivity_le_edgeReachability`
Verification:
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean`
- `~/.elan/bin/lake exe runLinter --trace Mathlib.Combinatorics.SimpleGraph.Connectivity.EdgeConnectivity`
Closes #34961
|
t-combinatorics
new-contributor
|
25/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean |
1 |
2 |
['github-actions'] |
nobody |
0-73936 20 hours ago |
0-73152 20 hours ago |
0-73096 20 hours |
| 27229 |
WilliamCoram author:WilliamCoram |
feat(GroupTheory/DoubleCoset): multiple lemmas |
From FLT
---
[](https://gitpod.io/from-referrer/)
|
FLT
t-group-theory
new-contributor
|
85/2 |
Mathlib/GroupTheory/DoubleCoset.lean |
1 |
41 |
['CBirkbeck', 'Ruben-VandeVelde', 'WilliamCoram', 'github-actions', 'kim-em', 'mariainesdff', 'mathlib4-merge-conflict-bot', 'tb65536'] |
mariainesdff assignee:mariainesdff |
0-71294 19 hours ago |
14-81699 14 days ago |
105-11824 105 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
|
9/0 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean |
1 |
4 |
['RemyDegenne', 'github-actions', 'huaizhangchu'] |
kex-y assignee:kex-y |
0-69836 19 hours ago |
1-78743 1 day ago |
32-74895 32 days |
| 36053 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph/Matching): add graph-level IsMatching predicate |
This draft introduces a graph-level matching predicate:
- `SimpleGraph.IsMatching` for graphs on any vertex type
It also updates module docs so that:
- `SimpleGraph.IsMatching` is the general definition
- `SimpleGraph.Subgraph.IsMatching` is the specialized subgraph version
Verification:
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Matching.lean`
- `~/.elan/bin/lake exe runLinter --trace Mathlib.Combinatorics.SimpleGraph.Matching`
Addresses #11911.
|
t-combinatorics
new-contributor
|
8/2 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean |
1 |
2 |
['github-actions'] |
nobody |
0-65044 18 hours ago |
unknown |
unknown |
| 36055 |
SproutSeeds author:SproutSeeds |
chore: rename rpow monotonicity lemmas |
Renames the Real rpow monotonicity family to left or right style names, matching the pow and zpow conventions.
Keeps compatibility by adding deprecated aliases for old names.
Also updates local uses in this file to the new names.
Issue: #13544
Validation:
- ~/.elan/bin/lake build Mathlib/Analysis/SpecialFunctions/Pow/Real.lean
- ~/.elan/bin/lake exe runLinter --trace Mathlib.Analysis.SpecialFunctions.Pow.Real |
t-analysis
new-contributor
|
248/187 |
Mathlib/Algebra/Module/ZLattice/Summable.lean,Mathlib/Analysis/AbsoluteValue/Equivalence.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Complex/PhragmenLindelof.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean,Mathlib/Analysis/Fourier/PoissonSummation.lean,Mathlib/Analysis/MeanInequalities.lean,Mathlib/Analysis/MeanInequalitiesPow.lean,Mathlib/Analysis/MellinTransform.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Unbundled/SmoothingSeminorm.lean,Mathlib/Analysis/Normed/Unbundled/SpectralNorm.lean,Mathlib/Analysis/SpecialFunctions/ImproperIntegrals.lean,Mathlib/Analysis/SpecialFunctions/Integrability/Basic.lean,Mathlib/Analysis/SpecialFunctions/Log/Base.lean,Mathlib/Analysis/SpecialFunctions/Log/Monotone.lean,Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean,Mathlib/Analysis/SpecialFunctions/Pow/NNReal.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Computability/AkraBazzi/GrowsPolynomially.lean,Mathlib/Computability/AkraBazzi/SumTransform.lean,Mathlib/MeasureTheory/Function/ContinuousMapDense.lean,Mathlib/MeasureTheory/Function/UniformIntegrable.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean,Mathlib/NumberTheory/Bertrand.lean,Mathlib/NumberTheory/Harmonic/EulerMascheroni.lean,Mathlib/NumberTheory/LSeries/PrimesInAP.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/Summable.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/ConvexBody.lean,Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/NumberTheory/SumPrimeReciprocals.lean,Mathlib/NumberTheory/Transcendental/Liouville/Measure.lean,Mathlib/Probability/Moments/CovarianceBilinDual.lean,Mathlib/Probability/Moments/IntegrableExpMul.lean,Mathlib/Topology/MetricSpace/Snowflaking.lean |
40 |
2 |
['github-actions'] |
nobody |
0-65044 18 hours ago |
unknown |
unknown |
| 36056 |
SproutSeeds author:SproutSeeds |
chore: rename ordered-cancel add monoid counterexample file |
Renames the counterexample module to match the current class naming around `IsOrderedCancelAddMonoid`.
Also updates the module docstring so it no longer references the removed class `OrderedCancelAddCommMonoid`.
Issue: #27812
Validation:
- ~/.elan/bin/lake build Counterexamples/IsOrderedCancelAddMonoidWithBounds.lean Counterexamples.lean
- ~/.elan/bin/lake exe runLinter --trace Counterexamples.IsOrderedCancelAddMonoidWithBounds |
file-removed
new-contributor
|
5/4 |
Counterexamples.lean,Counterexamples/IsOrderedCancelAddMonoidWithBounds.lean |
2 |
2 |
['github-actions'] |
nobody |
0-65044 18 hours ago |
unknown |
unknown |
| 36062 |
huaizhangchu author:huaizhangchu |
feat(Probability/PMF): add PMF.integrable_of_summable_norm |
Adds `PMF.integrable_of_summable_norm`: a function `f` is integrable with respect to `p.toMeasure` when the weighted norms `‖f a‖ * (p a).toReal` form a summable family.
This is useful for computing expectations of discrete distributions (Poisson, geometric, etc.) without manually expanding the `HasFiniteIntegral` definition each time. |
t-measure-probability
new-contributor
|
14/0 |
Mathlib/Probability/ProbabilityMassFunction/Integrals.lean |
1 |
2 |
['github-actions'] |
nobody |
0-62276 17 hours ago |
unknown |
unknown |
| 34215 |
justus-springer author:justus-springer |
feat(FieldTheory/RatFunc): Degree of field extension K(X)/K(f) |
Prove that the degree of the field extension K(X)/K(f) of a rational function f equals the maximum of the degrees of its numerator and denominator. This is a crucial lemma towards proving Luroth's theorem.
This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025.
Co-authored-by: Miriam Philipp @miriamphilipp
Co-authored-by: Junyan Xu @alreadydone
---
- [x] depends on: #34212
- [x] depends on: #34213
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
206/0 |
Mathlib.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Algebra.lean,Mathlib/FieldTheory/RatFunc/Luroth.lean |
3 |
30 |
['alreadydone', 'github-actions', 'jcommelin', 'justus-springer', 'mathlib-splicebot', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier', 'tb65536', 'xgenereux'] |
jcommelin assignee:jcommelin |
0-62012 17 hours ago |
0-62076 17 hours ago |
23-9591 23 days |
| 36063 |
SproutSeeds author:SproutSeeds |
feat(SimpleGraph/Connectivity): add vertex reachability and connectivity numbers |
### Summary
Adds a first-pass vertex connectivity API for simple graphs.
- define `SimpleGraph.isolateVerts`
- define `SimpleGraph.IsVertexReachable` and `SimpleGraph.IsVertexConnected`
- define `SimpleGraph.vertexReachability` and `SimpleGraph.vertexConnectivity`
- add basic lemmas for reflexivity, symmetry, monotonicity, antitonicity, and the `k = 0` and `k = 1` characterizations
Closes #34960.
### Local checks
- `~/.elan/bin/lake build Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean`
- `~/.elan/bin/lake exe lint-style Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean`
- `bash scripts/mathlib-issue-local-gate.sh --repo /Users/codymitchell/Documents/code/mathlib4 --issue 34960 --build-target Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean --lint-module Mathlib.Combinatorics.SimpleGraph.Connectivity.VertexConnectivity --skip-mk-all`
|
t-combinatorics
new-contributor
|
140/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean |
2 |
2 |
['github-actions'] |
nobody |
0-55654 15 hours ago |
unknown |
unknown |
| 35970 |
adrianmartir author:adrianmartir |
feat(CategoryTheory/Profunctor): Add profunctors and a basic API for them |
This adds a definition of a profunctor and the definition of a natural transformation between two profunctors. Profunctors are defined as a structure, as suggested by @adamtopaz [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Operads.20Formalization/with/566160316).
Using this as a base, I wrote a basic API for profunctors. This will be needed for a future formalization of operads.
A lot of the API was first drafted by @Aristotle-Harmonic.
Co-authored-by: Aristotle (Harmonic)
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
|
185/0 |
Mathlib.lean,Mathlib/CategoryTheory/Profunctor.lean |
2 |
10 |
['adrianmartir', 'emilyriehl', 'github-actions'] |
nobody |
0-54332 15 hours ago |
0-73863 20 hours ago |
1-41237 1 day |
| 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
|
47/4 |
Mathlib/Computability/Primrec/List.lean |
1 |
1 |
['github-actions'] |
nobody |
0-41752 11 hours ago |
0-41822 11 hours ago |
47-33594 47 days |
| 36088 |
pevogam author:pevogam |
feat: add a LE version of previous div_lt_div_iff_mul_lt_mul theorem |
The following is more useful due to the partial order application of LE in comparison to LT.
Additionally, add specialized cases of equal denominators as simpler syntactic sugar.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
16/0 |
Mathlib/Algebra/Order/Ring/Unbundled/Rat.lean |
1 |
2 |
['github-actions'] |
nobody |
0-33400 9 hours ago |
0-30871 8 hours ago |
0-30815 8 hours |
| 35753 |
Vilin97 author:Vilin97 |
feat(Topology/Algebra/Order): regular grid helpers and piecewise linear interpolation |
## Summary
- Add `Nat.floor_div_eq_of_mem_Ico`, `mem_Ico_Nat_floor_div`, `locallyFinite_Icc_grid`, and `ContinuousOn.of_Icc_grid` to `Topology/Algebra/Order/Floor.lean`.
- Add new file `Topology/Algebra/Order/PiecewiseLinear.lean` with `piecewiseLinear` and `piecewiseConst` definitions for interpolation on regular grids, along with evaluation lemmas, continuity, and right derivative.
- Grid helpers are generalized over `Field K` with `FloorSemiring` and `OrderTopology`.
- Piecewise definitions are generic over `Field α`; continuity/derivative results are for `ℝ`-normed spaces.
## Motivation
These are used in the [forward Euler convergence proof](https://github.com/Vilin97/forward_euler) to construct piecewise linear interpolations of Euler points and prove their continuity. They are general-purpose lemmas about regular grids and piecewise interpolation that should be useful beyond this application.
Follow-up PR: #35755 (forward Euler method convergence).
---
The initial proof was produced by [Aristotle](https://aristotle.harmonic.fun). The code was then iteratively refined (factoring out lemmas, golfing, simplifying proofs) using Claude Code (Claude Opus 4.6). |
t-topology
new-contributor
|
151/0 |
Mathlib.lean,Mathlib/Topology/Algebra/Order/Floor.lean,Mathlib/Topology/Algebra/Order/PiecewiseLinear.lean |
3 |
6 |
['copilot-pull-request-reviewer', 'github-actions', 'wwylele'] |
dagurtomas assignee:dagurtomas |
0-28277 7 hours ago |
0-36540 10 hours ago |
6-46791 6 days |
| 36084 |
emo916math author:emo916math |
Eliminated a hypothesis on IsTheta.rpow |
A strengthened version of `IsTheta.rpow`: if $f$ and $g$ are eventually nonnegative functions with $f = \Theta(g)$ and $r \in \mathbb{R}$, then $f^r = \Theta(g^r)$.
The previous version had a hypothesis that $r \geq 0$. The present version proves by splitting into two cases; in the case $r < 0$, the lower and upper bounds must be used in reverse order.
Since `IsTheta.rpow` is not used elsewhere in Mathlib, this should be an easy one to merge.
(Claude AI was used to help in the golfing.)
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
10/3 |
Mathlib/Analysis/SpecialFunctions/Pow/Asymptotics.lean |
1 |
2 |
['github-actions'] |
nobody |
0-24519 6 hours ago |
0-24033 6 hours ago |
0-23977 6 hours |
| 35906 |
scp020 author:scp020 |
feat(Combinatorics/SimpleGraph/Walks): add Walk.IsChord and Walk.IsChordless |
Add `Walk.IsChord` and `Walk.IsChordless` predicates in a new file `SimpleGraph/Walks/Chords.lean`.
See "chord" in https://en.wikipedia.org/wiki/Glossary_of_graph_theory
Discussion on Zulip:
[Zulip link](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Walk.2EIsChordless.20live.20in.20mathlib.3F/with/575277309)
authored-by: Tianyi Zhao
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
68/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Chords.lean |
2 |
11 |
['SnirBroshi', 'github-actions', 'scp020'] |
nobody |
0-22992 6 hours ago |
0-25209 6 hours ago |
1-47299 1 day |
| 36091 |
JJYYY-JJY author:JJYYY-JJY |
feat(Analysis.LocallyConvex.Separation): add Eidelheit's separation theorem |
Adds `geometric_hahn_banach_of_interior_nonempty`, formalizing Eidelheit's separation theorem for disjoint convex sets where one has a nonempty interior.
This resolves the longstanding TODO in `Mathlib.Analysis.LocallyConvex.Separation`. The patch also removes the TODO for the topological property `Convex ℝ s → interior (closure s) ⊆ s`, as this is already handled by `Convex.closure_interior_eq_closure_of_nonempty_interior` (imported from `Mathlib.Analysis.Convex.Topology`).
Key implementation details:
* Uses `geometric_hahn_banach_open` to separate `interior A` and `B`.
* Requires `B.Nonempty` to guarantee the separating continuous linear functional is nontrivial (`f ≠ 0`), avoiding the triviality trap where `A` covers the entire space.
* Uses `closure_minimal` to extend the weak inequality from `interior A` to the entirety of `A`.
---
[](https://gitpod.io/from-referrer/)
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Interior.20of.20closure.20for.20convex.20sets/with/577060103 |
t-analysis
new-contributor
|
39/5 |
Mathlib/Analysis/LocallyConvex/Separation.lean |
1 |
7 |
['copilot-pull-request-reviewer', 'github-actions', 'wwylele'] |
nobody |
0-20192 5 hours ago |
0-19340 5 hours ago |
0-27460 7 hours |
| 36020 |
SproutSeeds author:SproutSeeds |
feat(Combinatorics/Enumerative/DoubleCounting): add weighted bipartite lower bound |
## Summary
This PR adds a weighted bipartite double-counting lower bound in
`Mathlib/Combinatorics/Enumerative/DoubleCounting.lean`:
- `Finset.sum_mul_le_sum_sum_bipartiteBelow_of_le_card_bipartiteAbove`
## New theorem
```lean
theorem sum_mul_le_sum_sum_bipartiteBelow_of_le_card_bipartiteAbove
[∀ a b, Decidable (r a b)] (w m : α → ℕ)
(hm : ∀ a ∈ s, m a ≤ #(t.bipartiteAbove r a)) :
(∑ a ∈ s, m a * w a) ≤ ∑ b ∈ t, ∑ a ∈ s.bipartiteBelow r b, w a
```
## Motivation
Existing double-counting lemmas in this file are cardinality-based with constant bounds.
This theorem provides the weighted/inhomogeneous variant: each left vertex `a` can carry
its own multiplicity lower bound `m a` and weight `w a`.
This packages a reusable pattern for incidence arguments where lower bounds vary across
vertices.
## Use cases
1. Weighted incidence counting in bipartite relations with non-uniform degree guarantees.
2. Charging arguments where each object contributes weight and has an object-dependent
minimum witness multiplicity.
## API / compatibility
- No existing theorem names changed.
- No imports added.
- Additive change only.
## Verification
```bash
~/.elan/bin/lake build Mathlib.Combinatorics.Enumerative.DoubleCounting
~/.elan/bin/lake env lean Mathlib/Combinatorics/Enumerative/DoubleCounting.lean
```
## AI usage
I used AI tools for exploration/drafting, then manually selected the statement,
edited the Lean code, and ran local checks.
|
new-contributor
t-combinatorics
|
15/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean |
1 |
6 |
['Rida-Hamadani', 'SproutSeeds', 'github-actions'] |
nobody |
0-15891 4 hours ago |
0-16794 4 hours ago |
1-1718 1 day |
| 35951 |
parabamoghv author:parabamoghv |
feat(CategoryTheory/Monoidal): evaluation coevaluation isomorphisms |
This PR adds four features to rigid categories:
1. `coevaluation_evaluation` and `evaluation_coevaluation` as isomorphism equalities: Using `IsIso` instances for the `evaluation` and `coevaluation` morphisms, we promote the morphism equalities to isomorphism equalities.
2. `ExactPairing Y X` from `ExactPairing X Y`: Using an exact pairing and `IsIso` instances for both `evaluation` and `coevaluation`, we swap the exact pairing by inverting the evaluation and coevaluation morphisms. Any suggestions for the definition name are welcome. Right now it is `ExactPairing.Symm`. The second choice was `ExactPairing.Swap`.
3. `HasLeftDual X` from `HasRightDual X`: Using a `HasRightDual X` instance and relevant `IsIso` instances, we construct a left dual. Similar construction for the other way.
4. `LeftDual` isomorphic to `RightDual`: Using relevant `IsIso` instances, we provide the isomorphism from the left dual of an object to the right dual. This can be achieved in two ways: either by using `leftDualIso` or using `rightDualIso`. We will prove in a subsequent PR that both these isomorphisms are equal.
Motivation: This is part of an effort to formalize CategoricalGroups, which can be defined as right rigid groupoids. The approach is motivated by the discussion in [#34830](https://github.com/leanprover-community/mathlib4/pull/34830).
Any comments or suggestions are welcome, especially about the naming.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
new-contributor
|
65/0 |
Mathlib/CategoryTheory/Monoidal/Rigid/Basic.lean |
1 |
2 |
['github-actions'] |
nobody |
0-11520 3 hours ago |
0-10883 3 hours ago |
1-46427 1 day |
| 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 |
0-6522 1 hour ago |
0-6588 1 hour ago |
47-4421 47 days |
| 35559 |
mike1729 author:mike1729 |
feat(Analysis/Normed): weak-topology embedding into weak-star bidual and compactenss transfer theorem |
This PR refactors the double dual material and adds new results connecting the weak topology on a normed space to the weak-star topology on its bidual.
## Changes
### New file: `Analysis.Normed.Module.DoubleDual`
Extracts the canonical embedding `inclusionInDoubleDual` and the bidual isometry `inclusionInDoubleDualLi` from `Analysis.Normed.Module.Dual` into a dedicated file, and adds:
- `inclusionInDoubleDualWeak`: the canonical map from `WeakSpace 𝕜 X` into `WeakDual 𝕜 (StrongDual 𝕜 X)`.
- `inclusionInDoubleDualWeak_isEmbedding`: this map is a topological embedding.
- `inclusionInDoubleDualWeak_homeomorph`: the map as a homeomorphism onto its range.
- `isCompact_closure_of_isBounded`: bounded sets whose bidual image has weak-star closure in range have weakly compact closure, via Banach–Alaoglu.
### New file: `Analysis.Normed.Module.WeakSpace`
- `WeakSpace.instBornology`: norm bornology on `WeakSpace 𝕜 E`, inherited from `E`.
- `WeakSpace.instT2Space`: the weak topology over `RCLike` is Hausdorff (via Hahn–Banach).
### Modified: `Analysis.Normed.Module.Dual`
The double dual inclusion material is moved out; polar set results remain. References to `inclusionInDoubleDual` in `polar_closure` are replaced by `ContinuousLinearMap.apply` to avoid a dependency on the new file.
---
CC: @faenuccio this may be relevant for your Goldstine formalization.
|
t-analysis
new-contributor
|
285/99 |
Mathlib.lean,Mathlib/Analysis/LocallyConvex/SeparatingDual.lean,Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/Analysis/Normed/Module/DoubleDual.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean,Mathlib/Analysis/Normed/Module/WeakSpace.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/FundThmCalculus.lean,Mathlib/MeasureTheory/Measure/CharacteristicFunction/Basic.lean,Mathlib/Probability/Distributions/Gaussian/CharFun.lean |
10 |
16 |
['github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mike1729'] |
ADedecker assignee:ADedecker |
0-4973 1 hour ago |
0-4326 1 hour ago |
10-59254 10 days |
| 35785 |
Brian-Nugent author:Brian-Nugent |
feat(CategoryTheory/Topology): Add Flasque Sheaves |
This PR defines flasque sheaves on a topological space as sheaves where all restriction morphisms are epimorphisms. The main result of this PR is `TopCat.Sheaf.IsFlasque.epi_of_shortExact` which says a short exact sequence where the first sheaf is flasque remains exact on sections.
---
- [x] depends on: #34267
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-category-theory
|
282/0 |
Mathlib.lean,Mathlib/Topology/Sheaves/AddCommGrpCat.lean,Mathlib/Topology/Sheaves/Flasque.lean,Mathlib/Topology/Sheaves/LocallySurjective.lean,Mathlib/Topology/Sheaves/Presheaf.lean,Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean |
6 |
17 |
['Brian-Nugent', 'github-actions', 'joelriou', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smorel394'] |
dagurtomas assignee:dagurtomas |
0-3067 51 minutes ago |
0-37362 10 hours ago |
0-37074 10 hours |
| 36077 |
SproutSeeds author:SproutSeeds |
feat(DoubleCounting): parity of odd-degree vertices in bipartite incidence |
### Summary
Adds a parity theorem for bipartite incidence in `Mathlib.Combinatorics.Enumerative.DoubleCounting`:
- `odd_card_filter_odd_bipartiteAbove_iff_odd_card_filter_odd_bipartiteBelow`
This is intended as the first small supporting step for #25231.
### Local checks
- `~/.elan/bin/lake build Mathlib/Combinatorics/Enumerative/DoubleCounting.lean`
- `~/.elan/bin/lake exe lint-style Mathlib/Combinatorics/Enumerative/DoubleCounting.lean`
- `~/.elan/bin/lake exe runLinter --trace Mathlib.Combinatorics.Enumerative.DoubleCounting`
- `bash /Users/codymitchell/Documents/code/sunflower-coda/repo/scripts/mathlib-issue-local-gate.sh --repo /Users/codymitchell/Documents/code/mathlib4 --issue 25231 --build-target Mathlib/Combinatorics/Enumerative/DoubleCounting.lean --lint-module Mathlib.Combinatorics.Enumerative.DoubleCounting --skip-mk-all`
|
t-combinatorics
new-contributor
large-import
|
17/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean |
1 |
2 |
['github-actions'] |
nobody |
0-1070 17 minutes ago |
unknown |
unknown |