Welcome to the mathlib review page. Everybody's help with reviewing is appreciated. Reviewing contributions is important, and everybody is welcome to review pull requests! If you're not sure how, the pull request review guide is there to help you.
This page is the main reviewer-facing queue: if a PR is ready for review, it belongs here. The triage page contains additional triage-oriented views, but it is not the primary review queue.
This page contains tables of
| Number |
Author |
Title |
Description |
Labels |
+/- |
Modified files (first 100) |
📝 |
💬 |
All users who commented or reviewed |
Assignee(s) |
Updated |
Last status change |
total time in review |
| 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 |
47-45097 1 month ago |
47-45115 47 days ago |
58-35128 58 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 |
47-44438 1 month ago |
47-44456 47 days ago |
53-15844 53 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 |
47-43946 1 month ago |
47-43965 47 days ago |
53-14987 53 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 |
46-20835 1 month ago |
46-20897 46 days ago |
57-66265 57 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 |
45-85277 1 month ago |
60-74553 60 days ago |
65-39563 65 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 |
45-85274 1 month ago |
54-5249 54 days ago |
54-19305 54 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 |
44-85284 1 month ago |
58-16573 58 days ago |
58-19737 58 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 |
43-85235 1 month ago |
72-48456 72 days ago |
72-48409 72 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 |
42-66733 1 month ago |
54-4749 54 days ago |
55-37535 55 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 |
41-8644 1 month ago |
41-8644 41 days ago |
93-44800 93 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 |
40-27750 1 month ago |
40-27945 40 days ago |
49-29581 49 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 |
38-28661 1 month ago |
54-73678 54 days ago |
54-81624 54 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 |
38-22871 1 month ago |
56-19044 56 days ago |
56-18997 56 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 |
35-85354 1 month ago |
40-67690 40 days ago |
40-70607 40 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 |
35-85352 1 month ago |
47-44889 47 days ago |
53-21340 53 days |
| 34756 |
Hagb author:Hagb |
feat(Algebra/Order/Monoid/Unbundled/WithTop): `AddEquiv` between `WithBot` |
It is like `Equiv.withBotCongr` but preserving also addition (`AddEquiv`).
---
It is like [`Equiv.withBotCongr`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Equiv.withBotCongr#doc) but preserving also addition ([`AddEquiv`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=AddEquiv#doc)).
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
39/0 |
Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean |
1 |
3 |
['Hagb', 'github-actions', 'plp127'] |
mattrobball assignee:mattrobball |
34-85087 1 month ago |
38-85477 38 days ago |
41-39000 41 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 |
34-85082 1 month ago |
41-13836 41 days ago |
41-13789 41 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 |
34-60813 1 month ago |
34-60813 34 days ago |
102-79218 102 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 |
34-54849 1 month ago |
66-64569 66 days ago |
94-16786 94 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 |
33-85200 1 month ago |
42-53815 42 days ago |
46-18882 46 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 |
33-85196 1 month ago |
42-39607 42 days ago |
42-41465 42 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 |
33-85192 1 month ago |
41-13605 41 days ago |
41-13558 41 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 |
33-35216 1 month ago |
33-36990 33 days ago |
33-38358 33 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 |
32-78595 1 month ago |
36-17058 36 days ago |
36-17011 36 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 |
31-39234 1 month ago |
31-39300 31 days ago |
44-47115 44 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 |
31-11829 1 month ago |
31-11829 31 days ago |
92-51435 92 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 |
31-5945 1 month ago |
57-10481 57 days ago |
57-12432 57 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 |
30-85368 1 month ago |
39-2494 39 days ago |
42-15873 42 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 |
30-85367 1 month ago |
34-3550 34 days ago |
40-49433 40 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 |
29-85361 1 month ago |
34-2298 34 days ago |
34-2830 34 days |
| 34948 |
joneugster author:joneugster |
feat(scripts/autolabel): add option to configure number of applied labels |
add option to change the maximum number of labels the script can apply simultaneously.
This does not change the behaviour of the script. The option remains at `1`, but it prepares for potential future adjustments.
factored out from: #34066
---
[](https://gitpod.io/from-referrer/)
|
CI |
13/9 |
scripts/autolabel.lean |
1 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
adomani assignee:adomani |
29-85080 1 month ago |
29-85100 29 days ago |
31-11767 31 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 |
28-85353 1 month ago |
33-9062 33 days ago |
33-9015 33 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 |
28-27725 1 month ago |
28-28549 28 days ago |
28-28502 28 days |
| 35413 |
joneugster author:joneugster |
fix(Util/CountHeartbeats): move elaboration in #count_heartbeats inside a namespace |
This PR continues the work from #21182.
Original PR: https://github.com/leanprover-community/mathlib4/pull/21182 |
t-meta |
73/6 |
Mathlib/Util/CountHeartbeats.lean,MathlibTest/CountHeartbeats.lean |
2 |
3 |
['github-actions', 'joneugster', 'mathlib-bors'] |
adomani assignee:adomani |
28-26807 1 month ago |
28-28621 28 days ago |
28-28574 28 days |
| 34909 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2): `fromRel` equivalence with `Sigma` over a `Quotient` |
Add a non-dependent recursor on members of a `fromRel` set, and the following `Equiv`s:
- The `fromRel` set of a symmetric relation `r` is equivalent to summing that set restricted to fibers of `f`.
- For a relation homomorphism `r →r r'` where `r` is symmetric, the `fromRel` set of `r` is equivalent to summing that set restricted to equivalence classes of `r'` using a `Subtype`.
---
I find this recursor pretty useful when dealing with `fromRel`, the idea came from a suggestion by @kmill [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Eq.2Erec.20with.20a.20constant.20does.20nothing.3A.20h.20.E2.96.B8.20c.20.3D.20c/near/565176948) for another `Sym2` conundrum.
[](https://gitpod.io/from-referrer/)
|
t-data |
43/0 |
Mathlib/Data/Sym/Sym2.lean |
1 |
7 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
pechersky assignee:pechersky |
28-18770 1 month ago |
38-55979 38 days ago |
38-55932 38 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 |
28-18080 1 month ago |
52-48005 52 days ago |
52-50289 52 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 |
27-34002 27 days ago |
59-1171 59 days ago |
112-63031 112 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 |
27-4978 27 days ago |
40-14454 40 days ago |
40-14407 40 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 |
27-447 27 days ago |
27-86145 27 days ago |
131-45568 131 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 |
25-85365 25 days ago |
38-2751 38 days ago |
50-42439 50 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 |
25-60815 25 days ago |
54-55714 54 days ago |
54-62934 54 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 |
23-77708 23 days ago |
23-79062 23 days ago |
77-52761 77 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 |
23-40916 23 days ago |
23-41748 23 days ago |
47-49895 47 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 |
23-16013 23 days ago |
23-16050 23 days ago |
51-38786 51 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 |
20-85372 20 days ago |
36-84306 36 days ago |
45-5805 45 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 |
20-83692 20 days ago |
34-38980 34 days ago |
34-41411 34 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 |
19-85352 19 days ago |
31-27115 31 days ago |
40-75720 40 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 |
19-85347 19 days ago |
26-55285 26 days ago |
26-68730 26 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 |
19-85342 19 days ago |
24-45640 24 days ago |
24-46137 24 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 |
19-25305 19 days ago |
19-46102 19 days ago |
47-58812 47 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 |
18-85374 18 days ago |
22-8648 22 days ago |
28-41889 28 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 |
18-74263 18 days ago |
18-78659 18 days ago |
47-52170 47 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 |
18-34965 18 days ago |
18-34944 18 days ago |
29-30042 29 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 |
17-85377 17 days ago |
21-13068 21 days ago |
21-13021 21 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 |
17-65048 17 days ago |
22-11153 22 days ago |
22-11106 22 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 |
17-40123 17 days ago |
17-40341 17 days ago |
73-52873 73 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 |
17-36105 17 days ago |
17-36127 17 days ago |
19-74575 19 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 |
17-32229 17 days ago |
17-32040 17 days ago |
33-27195 33 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 |
17-30272 17 days ago |
22-18017 22 days ago |
22-18645 22 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 |
17-11106 17 days ago |
17-20178 17 days ago |
17-20588 17 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 |
16-85398 16 days ago |
31-41291 31 days ago |
31-41244 31 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 |
16-85394 16 days ago |
23-80340 23 days ago |
23-81905 23 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 |
16-85392 16 days ago |
22-48897 22 days ago |
22-63356 22 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 |
16-53282 16 days ago |
16-53282 16 days ago |
49-33531 49 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 |
16-26793 16 days ago |
36-77944 36 days ago |
36-79549 36 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 |
15-38265 15 days ago |
15-38288 15 days ago |
36-13398 36 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 |
15-31423 15 days ago |
15-31449 15 days ago |
29-61577 29 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 |
15-29869 15 days ago |
39-33686 39 days ago |
39-33639 39 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 |
15-19147 15 days ago |
15-19147 15 days ago |
64-13804 64 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 |
14-85217 14 days ago |
26-41715 26 days ago |
114-62895 114 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 |
14-73031 14 days ago |
23-69225 23 days ago |
44-79598 44 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 |
14-64863 14 days ago |
14-64863 14 days ago |
14-64862 14 days |
| 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 |
14-56456 14 days ago |
14-56512 14 days ago |
33-30320 33 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 |
14-53772 14 days ago |
18-51774 18 days ago |
18-51763 18 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 |
13-85357 13 days ago |
19-4146 19 days ago |
19-4099 19 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 |
13-85352 13 days ago |
18-3524 18 days ago |
18-4101 18 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 |
13-63024 13 days ago |
27-3897 27 days ago |
29-27940 29 days |
| 34784 |
tb65536 author:tb65536 |
refactor(GroupTheory/Commutator/Basic): to_additivize commutators |
This PR makes some progress on to_additivizing more of the group theory library.
I had to make the bracket instance scoped to avoid clashing with the Lie bracket.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
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 |
13-22905 13 days ago |
13-23331 13 days ago |
40-54761 40 days |
| 35627 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Finite): min/max degrees of top/bot |
And a couple of lemmas about `IsRegularOfDegree`, e.g. the empty graph is regular of any degree.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
28/1 |
Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean |
2 |
6 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
12-68498 12 days ago |
22-75247 22 days ago |
22-75200 22 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 |
4 |
['SnirBroshi', 'github-actions', 'vbeffara', 'vlad902'] |
nobody |
12-36083 12 days ago |
30-3737 30 days ago |
30-3690 30 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 |
35 |
['github-actions', 'jcommelin', 'kim-em', 'metakunt', 'qawbecrdtey', 'vihdzp'] |
kim-em assignee:kim-em |
11-75561 11 days ago |
17-69718 17 days ago |
21-56843 21 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 |
11-58058 11 days ago |
14-66721 14 days ago |
19-47613 19 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.
### 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
|
240/91 |
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 |
23 |
['ADedecker', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mike1729'] |
faenuccio assignee:faenuccio |
11-45042 11 days ago |
12-32909 12 days ago |
11-12992 11 days |
| 35600 |
yisiox author:yisiox |
feat(Computability): add Kleene's algorithm to prove regular languages have regex matching |
This PR adds a proof that every regular language has some regular expression matching it.
This was achieved by the following constructions and proofs of their correctness
- Define `toSingleεNFA` to transform any epsilon-NFA to an equivalent one with only a single start and accept state (and the type is `ExtendedState`)
- Define a bijection between `ExtendedState` and `Fin (FinEnum.card (ExtendedState σ))` to index the states
- Define `pathRegex` which implements Kleene's algorithm
- Define `toRegex` which takes an epsilon-NFA, applies `toSingleεNFA` on it, and computes the corresponding regex using `pathRegex`
The proofs of correctness chain together to yield `(toRegex M).matches' = M.accepts` which asserts the direction of Kleene's theorem required.
As in [#mathlib4 > Regular languages: the review queue @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Regular.20languages.3A.20the.20review.20queue/near/573958148), this overlaps with #15654, which uses GNFA instead but has been inactive.
---
[](https://gitpod.io/from-referrer/)
|
t-computability
new-contributor
|
499/0 |
Mathlib/Computability/EpsilonNFA.lean |
1 |
2 |
['github-actions'] |
nobody |
11-20794 11 days ago |
unknown |
0-0 0 seconds |
| 36210 |
vbeffara author:vbeffara |
feat(Combinatorics/SimpleGraph): definitions of graph contraction and graph minor |
A contraction is the image of a graph through a surjective function with connected fibers, and a minor is a contraction of a subgraph.
This PR shows that being a contraction is transitive, but does not show the same for minors because the proof is more involved, it will be in a subsequent PR. The definitions are in `Prop` and do not contain data, but I'm not sure if that was the right choice.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
151/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Contraction.lean,Mathlib/Combinatorics/SimpleGraph/Minor.lean |
3 |
2 |
['github-actions'] |
nobody |
11-3851 11 days ago |
11-3913 11 days ago |
11-4557 11 days |
| 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'] |
riccardobrasca assignee:riccardobrasca |
10-85326 10 days ago |
14-29745 14 days ago |
14-31085 14 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'] |
Vierkantor assignee:Vierkantor |
10-85322 10 days ago |
20-49976 20 days ago |
20-50185 20 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'] |
riccardobrasca assignee:riccardobrasca |
10-85315 10 days ago |
14-51180 14 days ago |
14-51658 14 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'] |
dwrensha assignee:dwrensha |
10-85307 10 days ago |
14-58224 14 days ago |
14-58177 14 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'] |
joelriou assignee:joelriou |
10-85304 10 days ago |
14-20247 14 days ago |
14-20200 14 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'] |
kex-y assignee:kex-y |
10-85303 10 days ago |
14-5752 14 days ago |
14-5705 14 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 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
alexjbest assignee:alexjbest |
10-61806 10 days ago |
10-61828 10 days ago |
27-27814 27 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
|
156/3 |
Mathlib/Geometry/Manifold/ContMDiff/Basic.lean,Mathlib/Geometry/Manifold/LocalInvariantProperties.lean,Mathlib/Geometry/Manifold/Sheaf/LocallyRingedSpace.lean,Mathlib/Geometry/Manifold/Sheaf/Smooth.lean |
4 |
7 |
['chrisflav', 'github-actions', 'grunweg', 'hrmacbeth'] |
ocfnash assignee:ocfnash |
10-54655 10 days ago |
22-5594 22 days ago |
22-6124 22 days |
| 35820 |
smmercuri author:smmercuri |
feat: unit lemmas and embedding for `FiniteAdeleRing` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
42/2 |
Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean |
1 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
10-17561 10 days ago |
18-28566 18 days ago |
18-28749 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$ |
97/1 |
Mathlib.lean,Mathlib/GroupTheory/FiniteIndexNormalSubgroup.lean,Mathlib/GroupTheory/ResiduallyFinite.lean,Mathlib/Topology/Algebra/Category/ProfiniteGrp/Completion.lean |
4 |
4 |
['ADedecker', 'github-actions'] |
mattrobball assignee:mattrobball |
10-10135 10 days ago |
10-10196 10 days ago |
24-78068 24 days |
| 36308 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Subgraph): a couple of `subgraphOfAdj` lemmas |
---
Also golfed a lemma (it's one line longer but it looks simpler to me).
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
14/5 |
Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
1 |
1 |
['github-actions'] |
nobody |
9-64514 9 days ago |
9-64586 9 days ago |
9-64539 9 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
maintainer-merge
label:t-algebra$ |
124/52 |
Mathlib.lean,Mathlib/Algebra/Order/CompleteField.lean,Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Data/Real/CompleteField.lean,Mathlib/Data/Real/Hom.lean |
5 |
6 |
['Vierkantor', 'astrainfinita', 'github-actions', 'leanprover-radar'] |
Vierkantor assignee:Vierkantor |
9-57323 9 days ago |
11-37044 11 days ago |
19-30113 19 days |
| 36192 |
tb65536 author:tb65536 |
feat(NumberTheory/ArithmeticFunction/LFunction): formal Euler products of Dirichlet series |
This PR defines formal Euler products of Dirichlet series. See #36189 for how this will ultimately be used to construct L-functions.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
label:t-algebra$ |
129/0 |
Mathlib.lean,Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/NumberTheory/ArithmeticFunction/LFunction.lean |
3 |
32 |
['ADedecker', 'AntoineChambert-Loir', 'MichaelStollBayreuth', 'b-mehta', 'github-actions', 'loefflerd', 'riccardobrasca', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
9-53666 9 days ago |
10-30991 10 days ago |
11-44197 11 days |
| 31194 |
grunweg author:grunweg |
feat: add `#check'` command and tactic, which only show explicit arguments |
In some areas (such as differential geometry), many lemmas have a *lot* of implicit and typeclass arguments.
Using `#check foo` to determine which explicit arguments are expected for a given lemma gives output which is painful to read, because the explicit argument is buried among many lines of other output.
The `#check'` command and tactic produce very similar output, but with implicit and typeclass arguments omitted.
This increases usability a lot.
In the future, this could (and should) be unified to the #check command in core, by becoming e.g. `#check +only-explicit`. Until then, let us add this to mathlib to facilitate experimentation of the most useful behaviour.
From the project towards geodesics and the Levi-Civita connection.
Co-authored-by: Kyle Miller
Co-authored-by: Patrick Massot
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
155/17 |
Mathlib/Tactic/Check.lean,MathlibTest/Check.lean |
2 |
20 |
['github-actions', 'grunweg', 'mathlib4-merge-conflict-bot', 'thorimur'] |
thorimur assignee:thorimur |
9-49455 9 days ago |
9-49279 9 days ago |
21-6750 21 days |
| 33143 |
wwylele author:wwylele |
feat(PowerSeries): pentagonal number theorem |
The proof is split in two files: `Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean` for the algebraic part, and `Mathlib/RingTheory/PowerSeries/Pentagonal.lean` for the summability part. In the near future, I also plan to prove the real/complex version that branches off from the algebraic part.
---
- [ ] depends on: #30436
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
427/1 |
Mathlib.lean,Mathlib/RingTheory/PowerSeries/Pentagonal.lean,Mathlib/Topology/Algebra/InfiniteSum/Pentagonal.lean,docs/1000.yaml |
4 |
43 |
['copilot-pull-request-reviewer', 'github-actions', 'jcommelin', 'mathlib4-dependent-issues-bot', 'tb65536', 'urkud', 'vihdzp', 'wwylele'] |
kex-y assignee:kex-y |
9-13970 9 days ago |
21-56166 21 days ago |
79-56509 79 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'] |
Vierkantor assignee:Vierkantor |
8-85383 8 days ago |
17-9270 17 days ago |
17-76575 17 days |
| 34119 |
themathqueen author:themathqueen |
feat(LinearAlgebra/Matrix/WithConv): `Matrix.toLin'` as a star-algebra equivalence between their convolutive rings |
`WithConv (Matrix m n α)` is ⋆-algebraically equivalent to `WithConv ((n → α) →ₗ m → α)`.
In particular, the convolutive product on linear maps corresponds to the Hadamard product on matrices and the intrinsic star on linear maps corresponds to taking the star of each element in the matrix.
---
- [x] depends on: #30880
- [x] depends on: #34111
- [x] depends on: #34312
- [x] depends on: #34600
- [x] depends on: #34601
- [x] depends on: #34945
- [x] depends on: #34997
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
92/2 |
Mathlib/Algebra/Group/Idempotent.lean,Mathlib/Algebra/WithConv.lean,Mathlib/LinearAlgebra/Matrix/WithConv.lean,docs/references.bib |
4 |
63 |
['eric-wieser', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'themathqueen'] |
ocfnash assignee:ocfnash |
8-49905 8 days ago |
11-79931 11 days ago |
19-64080 19 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'] |
riccardobrasca assignee:riccardobrasca |
8-26787 8 days ago |
15-69018 15 days ago |
15-70140 15 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/)
|
|
8/41 |
Mathlib/Algebra/Homology/HomotopyCategory/HomComplexCohomology.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Data/List/MinMax.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/NumberTheory/FLT/Four.lean,Mathlib/Probability/Kernel/IonescuTulcea/Maps.lean |
6 |
4 |
['euprunin', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
kex-y assignee:kex-y |
8-18320 8 days ago |
8-18345 8 days ago |
21-17116 21 days |
| 35638 |
vihdzp author:vihdzp |
chore(Topology/Order/OrderClosed): use `to_dual` |
---
- [x] depends on: #35637
[](https://gitpod.io/from-referrer/)
|
|
124/280 |
Mathlib/Order/ConditionallyCompletePartialOrder/Defs.lean,Mathlib/Order/Cover.lean,Mathlib/Order/Filter/Defs.lean,Mathlib/Topology/Order/OrderClosed.lean |
4 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
kex-y assignee:kex-y |
7-85383 7 days ago |
11-39037 11 days ago |
11-39818 11 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'] |
Vierkantor assignee:Vierkantor |
7-85379 7 days ago |
16-6842 16 days ago |
16-9439 16 days |
| 36168 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Indexed): `f i j ≤ ⨆ (i) (j), f i j` |
Add `le_ciSup₂`/`ciInf₂_le` to match `CompleteLattice`'s `le_iSup₂`/`iInf₂_le`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
28/0 |
Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
7-85373 7 days ago |
11-70939 11 days ago |
11-70892 11 days |
| 36307 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walks): `Walk.ofSupport` / `Walk.ofDarts` |
---
This would hopefully make constructions such as [the cycle in `cycleGraph`](https://github.com/leanprover-community/mathlib4/blob/1b2df6c93fdd0ece89a32521464d5193e0f381ed/Mathlib/Combinatorics/SimpleGraph/Circulant.lean#L140-L155) or [the path in `pathGraph`](https://github.com/leanprover-community/mathlib4/pull/34171) or [the Hamiltonian walk in the complete graph](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/Ore's.20Theorem/near/571353615) easier.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
88/0 |
Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean |
2 |
1 |
['github-actions'] |
nobody |
7-81314 7 days ago |
9-65791 9 days ago |
9-65744 9 days |
| 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$ |
236/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 |
5 |
['github-actions', 'mathlib-merge-conflicts', 'xgenereux'] |
riccardobrasca assignee:riccardobrasca |
7-58086 7 days ago |
8-27986 8 days ago |
14-36829 14 days |
| 35198 |
j-loreaux author:j-loreaux |
feat: generalize Hölder's inequality for sums to `Real.HolderTriple` |
Currently the API exists only for `Real.HolderConjugate`. This generalizes it in anticipation of #35197, which implements the Hölder framework for `lp` spaces.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
160/39 |
Mathlib/Analysis/MeanInequalities.lean,Mathlib/Data/Real/ConjExponents.lean |
2 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
ADedecker assignee:ADedecker |
7-36925 7 days ago |
7-36948 7 days ago |
23-66695 23 days |
| 33864 |
Timeroot author:Timeroot |
feat(Computability/Primrec): Proving several Nat arithmetic functions are primrec |
Prove that gcd, lcm, coprimality, divisiblity, primality, factorial, descending factorial, powers, and various logarithms are all primitive recursive.
Co-authored-by: Aristotle Harmonic <[aristotle-harmonic@harmonic.fun](mailto:aristotle-harmonic@harmonic.fun)>
|
large-import
t-computability
|
195/4 |
Mathlib.lean,Mathlib/Computability/Primrec.lean,Mathlib/Computability/Primrec/List.lean,Mathlib/Computability/Primrec/Nat.lean,Mathlib/Data/Nat/Log.lean |
5 |
6 |
['eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
JovanGerb assignee:JovanGerb |
7-31862 7 days ago |
7-31625 7 days ago |
32-61056 32 days |
| 36220 |
harahu author:harahu |
doc(misc): update two theorem names |
- https://www.wikidata.org/wiki/Q1543149 carries the name "Sokhotski–Plemelj theorem"
- While https://www.wikidata.org/wiki/Q2226807 does carry the name "Vantieghems theorem", I assume the s is assumed to be possessive, since the mathematician credited with the result is called Emmanuel Vantieghem.
---
[](https://gitpod.io/from-referrer/)
|
IMO |
2/2 |
docs/1000.yaml |
1 |
7 |
['dwrensha', 'github-actions', 'harahu'] |
dwrensha assignee:dwrensha |
7-23750 7 days ago |
11-14765 11 days ago |
11-14718 11 days |
| 23835 |
chrisflav author:chrisflav |
feat(Topology): cardinality of connected components is bounded by cardinality of fiber |
We show that if `f : X → Y` is an open and closed map to `Y` and `Y` is connected, the number of connected
components of `X` is bounded by the cardinality of the fiber of any point. In particular, if `Y` has finitely many connected components and `f` finite fibers, also `X` as finitely many connected components.
From Pi1.
---
- [x] depends on: #23849
[](https://gitpod.io/from-referrer/)
|
t-topology |
276/1 |
Mathlib.lean,Mathlib/Data/Fintype/Pi.lean,Mathlib/Data/Set/Lattice.lean,Mathlib/Topology/Clopen.lean,Mathlib/Topology/Connected/CardComponents.lean,Mathlib/Topology/Connected/Clopen.lean |
6 |
11 |
['chrisflav', 'erdOne', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
grunweg assignee:grunweg |
7-22114 7 days ago |
145-34103 145 days ago |
66-69993 66 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 |
7-15643 7 days ago |
60-58201 60 days ago |
60-81502 60 days |
| 22366 |
kim-em author:kim-em |
feat: `check_equalities` tactic for diagnosing defeq problems |
The `check_equalities` tactic,
which checks the typing of equalities in the goal,
reporting discrepancies between the implicit type argument of the equality,
and the inferred types of the left and right hand sides,
at "instances and reducible" transparency.
Reports from this tactic do not necessarily indicate a problem,
although typically `simp` should reduce rather than increase the reported discrepancies.
`check_equalities` may be useful in diagnosing uses of `erw`. |
t-meta |
123/4 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/CheckCompositions.lean,Mathlib/Tactic/CheckEqualities.lean,Mathlib/Tactic/Common.lean,MathlibTest/check_equalities.lean |
7 |
21 |
['adomani', 'b-mehta', 'eric-wieser', 'fpvandoorn', 'github-actions', 'grunweg', 'kim-em', 'mathlib-bors', 'mathlib4-merge-conflict-bot'] |
adamtopaz assignee:adamtopaz |
6-85397 6 days ago |
367-34348 367 days ago |
15-14325 15 days |
| 25983 |
Multramate author:Multramate |
feat(AlgebraicGeometry/EllipticCurve/Scheme): define the affine scheme associated to an elliptic curve |
This contribution was created as part of the AIM workshop "Formalizing Algebraic Geometry" in June 2024.
Co-authored-by: Michael Stoll [Michael.Stoll@uni-bayreuth.de](mailto:Michael.Stoll@uni-bayreuth.de)
Co-authored-by: Junyan Xu [junyanxu.math@gmail.com](mailto:junyanxu.math@gmail.com) |
t-algebraic-geometry |
165/13 |
Mathlib.lean,Mathlib/Algebra/Category/CommAlgCat/Basic.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Scheme.lean,Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean,Mathlib/AlgebraicGeometry/Scheme.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/GroupTheory/GroupExtension/Basic.lean,Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean |
15 |
4 |
['MichaelStollBayreuth', 'Multramate', 'github-actions'] |
alexjbest assignee:alexjbest |
6-85396 6 days ago |
10-36058 10 days ago |
10-38275 10 days |
| 35533 |
mariainesdff author:mariainesdff |
feat(RingTheory/DedekindDomain/Ideal/Lemmas): add nontrivial_heightOneSpectrum |
Co-authored by: @xgenereux.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
12/0 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean |
1 |
4 |
['erdOne', 'github-actions', 'mariainesdff', 'tb65536'] |
mattrobball assignee:mattrobball |
6-85392 6 days ago |
12-56578 12 days ago |
18-83676 18 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'] |
alreadydone assignee:alreadydone |
6-85390 6 days ago |
21-60126 21 days ago |
21-60079 21 days |
| 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.SubobjectRepresentableBy.* -> SubobjectRepresentableBy.*
- Classifier.* -> Subobject.Classifier.*
- HasClassifier.* -> HasSubobjectClassifier.*
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-category-theory
|
191/41 |
Mathlib.lean,Mathlib/CategoryTheory/Subobject/Classifier/Defs.lean |
2 |
4 |
['dagurtomas', 'edegeltje', 'github-actions', 'mathlib-merge-conflicts'] |
joelriou assignee:joelriou |
6-85389 6 days ago |
10-26816 10 days ago |
12-42792 12 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'] |
riccardobrasca assignee:riccardobrasca |
6-85388 6 days ago |
13-1744 13 days ago |
13-1698 13 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
|
75/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean |
2 |
24 |
['IvanRenison', 'SnirBroshi', 'github-actions', 'robo7179'] |
nobody |
6-52498 6 days ago |
7-22841 7 days ago |
34-19104 34 days |
| 31046 |
Thmoas-Guan author:Thmoas-Guan |
feat(Homology) : compatibility of map between `Ext` |
In this PR, we proved the compatibility of map between `Ext` induced by exact functor with
1: `mk_0` 2: `comp` 3: `extClass`
---
- [x] depends on: #31707
[](https://gitpod.io/from-referrer/) |
t-category-theory |
232/8 |
Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/ShortExact.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/HomotopyCategory/ShortExact.lean |
5 |
35 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] |
eric-wieser assignee:eric-wieser |
6-50622 6 days ago |
6-79421 6 days ago |
31-17375 31 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 |
284/0 |
Mathlib.lean,Mathlib/RingTheory/DividedPowerAlgebra/Init.lean |
2 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
6-47073 6 days ago |
6-47143 6 days ago |
18-37681 18 days |
| 35880 |
astrainfinita author:astrainfinita |
feat(Order/Defs/LinearOrder): `min_ind` |
It will be used to simplify the proofs of other lemmas in a subsequent PR.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
11/0 |
Mathlib/Order/Defs/LinearOrder.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
6-44425 6 days ago |
16-65933 16 days ago |
16-65886 16 days |
| 35657 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): distance equal or greater than two in terms of common neighborhood |
Two lemmas classifying distances between two vertices according two their common neighborhood. This is the fork version of #12278.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
33/0 |
Mathlib/Combinatorics/SimpleGraph/Metric.lean,Mathlib/Data/ENat/Basic.lean |
2 |
9 |
['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
6-34234 6 days ago |
6-34038 6 days ago |
11-19979 11 days |
| 36451 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Matching): `edgeSet` is injective and strictly monotonic on matchings, and more API |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
45/11 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Data/Sym/Sym2.lean |
3 |
1 |
['github-actions'] |
nobody |
6-21113 6 days ago |
6-21730 6 days ago |
6-21816 6 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 |
255/0 |
Mathlib.lean,Mathlib/Analysis/Distribution/Support.lean,Mathlib/Topology/MetricSpace/Bounded.lean |
3 |
21 |
['ADedecker', 'github-actions', 'lauramonk', 'mcdoll', 'urkud'] |
ADedecker assignee:ADedecker |
6-7285 6 days ago |
7-27565 7 days ago |
32-59547 32 days |
| 31662 |
edwin1729 author:edwin1729 |
feat(Topology/Order): topological basis of scott topology on Complete… |
…PartialOrder
---
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20Algebraic.20complete.20partial.20order.20and.20domain.20theory/with/536359313) for this PR.
(1/2) PRs in domain theory, proving that scott topologies over Algebraic DCPOs (`CompletePartialOrder`) are sober.
The main reference is [Renata, Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf). But the statements can also be found in the canonical text [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
This first PR proves two prerequisites, namely:
- the specialization order induced by the scott topology corresponds to the existing order of the DCPO. Prop 3.1.5 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.2(1) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
- the upward closures of compact elements of the DCPO form a topological basis for the Scott Topology. Prop 3.5.2 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.6(2) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
- [x] depends on: #33061
**The next PR is here:** #31670
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
239/1 |
Mathlib.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib |
4 |
66 |
['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] |
b-mehta assignee:b-mehta |
6-6086 6 days ago |
9-40126 9 days ago |
16-6396 16 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
|
147/0 |
Mathlib/Topology/Defs/Basic.lean,MathlibTest/TopologyNonstandardNotation.lean |
2 |
7 |
['JJYYY-JJY', 'copilot-pull-request-reviewer', 'github-actions', 'j-loreaux'] |
j-loreaux assignee:j-loreaux |
6-4959 6 days ago |
6-30446 6 days ago |
9-45896 9 days |
| 35649 |
JovanGerb author:JovanGerb |
feat(Order/GaloisConnection/Defs): use `to_dual` for `GaloisInsertion`/`GaloisCoinsertion` |
This PR uses `to_dual` to generate declarations about `GaloisCoinsertion` from those for `GaloisInsertion`.
- An entry is added to the name translation dictionary for this particular name translation.
- One lemma in another file had to be tagged.
- Some uses of `to_dual` have been replaced with `to_dual none`, because I had written them before `to_dual none` existed.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
42/84 |
Mathlib/Algebra/Group/Submonoid/Units.lean,Mathlib/Order/GaloisConnection/Defs.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/Tactic/Translate/ToDual.lean,Mathlib/Topology/Order.lean |
5 |
5 |
['JovanGerb', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
6-770 6 days ago |
6-799 6 days ago |
9-37031 9 days |
| 31135 |
kckennylau author:kckennylau |
feat(RingTheory): is localization iff is localization on saturation |
In this PR we show that `A` is a localization of `R` on the submonoid `S` iff it is so on the saturation of `S`.
Crucially, the saturation of `S` is precisely the elements that become a unit in `A`.
---
- [x] depends on: #31132
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
53/0 |
Mathlib.lean,Mathlib/RingTheory/Localization/Saturation.lean |
2 |
11 |
['alreadydone', 'chrisflav', 'github-actions', 'kckennylau', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
mattrobball assignee:mattrobball |
5-85389 5 days ago |
11-31932 11 days ago |
11-33771 11 days |
| 32033 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): injective dimension equal supremum of localized module |
In this PR, we proved that for module over Noetherian ring, projective dimension is equal to the supremum of injective dimension of localized modules over all prime/maximal ideals.
---
- [ ] depends on: #31995
- [ ] depends on: #31998
[](https://gitpod.io/from-referrer/) |
t-algebra label:t-algebra$ |
184/0 |
Mathlib.lean,Mathlib/RingTheory/LocalProperties/InjectiveDimension.lean |
2 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
ocfnash assignee:ocfnash |
5-85388 5 days ago |
9-65194 9 days ago |
9-67652 9 days |
| 34031 |
lua-vr author:lua-vr |
feat(Dynamics/BirkhoffSum): add the maximal ergodic theorem |
---
This file exports three constants:
```lean
public def birkhoffAverageSupSet (f : α → α) (g : α → ℝ) (a : ℝ) : Set α :=
{x | ∃ n : ℕ, a < birkhoffAverage ℝ f g n x}
public theorem meas_birkhoffAverageSupSet_smul_const_le_integral (a : ℝ) (ha : 0 < a) :
μ.real (birkhoffAverageSupSet f g a) • a ≤ ∫ x in birkhoffAverageSupSet f g a, g x ∂μ
public theorem meas_birkhoffAverageSupSet_smul_const_le_norm (a : ℝ) (ha : 0 < a) :
μ.real (birkhoffAverageSupSet f (fun x ↦ ‖g x‖) a) • a ≤ ∫ x, ‖g x‖ ∂μ
```
In my interpretation, the other constants are auxiliary, so I did not make them public. If it's of independent interest, `birkhoffMax` could be exported or moved to a dedicated file, but I'm not sure of that at the moment.
- [x] depends on: #34030
- [x] depends on: #34029
- [x] depends on: #34025
[](https://gitpod.io/from-referrer/)
|
t-dynamics |
291/0 |
Mathlib.lean,Mathlib/Dynamics/BirkhoffSum/Maximal.lean |
2 |
4 |
['github-actions', 'lua-vr', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
urkud assignee:urkud |
5-85387 5 days ago |
11-40530 11 days ago |
11-40853 11 days |
| 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$ |
86/5 |
Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean |
1 |
6 |
['Multramate', 'github-actions', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
5-85384 5 days ago |
20-59525 20 days ago |
20-59479 20 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'] |
urkud assignee:urkud |
5-85383 5 days ago |
17-74332 17 days ago |
17-77251 17 days |
| 36155 |
grunweg author:grunweg |
feat: custom elaborators for TangentSpace and tangentMap(Within) |
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
58/28 |
Mathlib/Geometry/Manifold/ContMDiffMFDeriv.lean,Mathlib/Geometry/Manifold/GroupLieAlgebra.lean,Mathlib/Geometry/Manifold/IntegralCurve/Basic.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/Geometry/Manifold/MFDeriv/Tangent.lean,Mathlib/Geometry/Manifold/Notation.lean,Mathlib/Topology/FiberBundle/Constructions.lean |
7 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
sgouezel assignee:sgouezel |
5-85378 5 days ago |
11-2188 11 days ago |
1-9762 1 day |
| 36214 |
kebekus author:kebekus |
feat: trivial lemmas and simp lemmas concerning `iteratedFDeriv` and `taylorSeries` |
To prepare for upcoming PRs, add several trivial lemmas and simp lemmas concerning `iteratedFDeriv` and `taylorSeries`. Use `@[to_fun]` to port several existing statements to match new style conventions.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
94/6 |
Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/ContDiff/Operations.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean |
6 |
7 |
['github-actions', 'grunweg', 'kebekus'] |
j-loreaux assignee:j-loreaux |
5-85376 5 days ago |
11-28683 11 days ago |
0-11 11 seconds |
| 36278 |
kebekus author:kebekus |
feat: Poisson Integral Formula for harmonic functions |
Establish two versions of the Poisson Integral Formula for harmonic functions on arbitrary disks in the complex plane, formulated with the real part of the Herglotz–Riesz kernel of integration and with the Poisson kernel, respectively.
This material is used in [Project VD](https://github.com/kebekus/ProjectVD), formalizing Value Distribution Theory for meromorphic functions on the complex plane.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
111/0 |
Mathlib.lean,Mathlib/Analysis/Complex/Harmonic/Poisson.lean,Mathlib/Analysis/Complex/Poisson.lean |
3 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
5-85375 5 days ago |
unknown |
0-0 0 seconds |
| 36328 |
Multramate author:Multramate |
feat(AlgebraicGeometry/EllipticCurve): improve API for maps and base changes |
Dot notation for concrete Weierstrass curves (`Affine`/`Jacobian`/`Projective`) does not quite work on `W : WeierstrassCurve F` even though they're all abbreviations of `WeierstrassCurve`, which is annoying for functions that return `WeierstrassCurve`s (currently just `map`, `baseChange`, and `variableChange`). For instance, for an `A : Affine F`, the expression `A.baseChange K` is a `WeierstrassCurve K` rather than an `Affine K`, so `(A.baseChange K).polynomial` will not work since `polynomial` is a function of `Affine K` rather than `WeierstrassCurve K`; instead we have to do `(A.baseChange K).toAffine.polynomial`, which is wordy. This PR introduces abbreviations `Affine/Jacobian/Projective.map/baseChange` to get around this, and introduces scoped notations `W/K`, where the slashes are given by `\textf`. The notation `W⟮K⟯` for `(W.baseChange K)Point` seems to be useless so far and can now be replaced by `(W/K).Point`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
284/288 |
Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean,Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean |
13 |
1 |
['github-actions'] |
alexjbest assignee:alexjbest |
5-85369 5 days ago |
9-11462 9 days ago |
9-12047 9 days |
| 36332 |
mike1729 author:mike1729 |
feat(Analysis/Normed/Module/WeakDual): register bornology and boundedness API |
## Description
This PR registers `Bornology` instance and introduces a boundedness API as discussed [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/instBornology.20for.20WeakSpace.20and.20WeakDual/with/577457935).
### Main additions
- **`WeakDual.instBornology`**: Bornology instance on `WeakDual 𝕜 E` inherited from `StrongDual 𝕜 E` via `inferInstanceAs`. This makes `IsBounded` available directly on weak dual sets, where boundedness means operator-norm boundedness.
- **`isVonNBounded_iff_pointwise_bounded`**: A set `s` in `WeakDual 𝕜 E` is von Neumann bounded (w.r.t. the weak-* topology) iff it is pointwise bounded: every `x : E` has `‖f x‖ ≤ r x` for all `f ∈ s`.
- **`isBounded_iff_isVonNBounded`**: For normed spaces over `ℝ` or `ℂ`, norm-boundedness and weak-* von Neumann boundedness coincide (via Banach–Steinhaus).
- **`isBounded_iff_pointwise_bounded`**: Combines the above two: norm-boundedness ↔ pointwise boundedness.
- **`isBounded_polar`** and **`isBounded_closedBall`**: Standalone lemmas replacing repeated inline `isBounded_toStrongDual_preimage_iff_isBounded.mpr ...` patterns.
- **Simp lemmas**: `isBounded_toStrongDual_preimage_iff_isBounded` and `isBounded_toWeakDual_preimage_iff_isBounded` for translating between weak and strong dual boundedness.
### API simplification
The existing lemmas `isClosed_image_coe_of_bounded_of_closed`, `isCompact_of_bounded_of_closed`, and `isSeqCompact_of_isBounded_of_isClosed` now take `IsBounded s` directly instead of the more verbose `IsBounded (StrongDual.toWeakDual ⁻¹' s)`, since the two are definitionally equal with the new bornology instance.
### Minor changes
- Replaced `grind` tactic usage with explicit term
- Fixed deprecation dates from 2024-11-19 to 2025-11-19
- Renamed local variable `F` to `E` for consistency with the rest of the file
- Added comprehensive module and declaration docstrings
---
- [ ] depends on: —
- [ ] modifies an existing declaration: yes (simplified signatures of `isClosed_image_coe_of_bounded_of_closed`, `isCompact_of_bounded_of_closed`, `isSeqCompact_of_isBounded_of_isClosed`)
- [ ] adds new declarations: yes (`instBornology`, `isBounded_toStrongDual_preimage_iff_isBounded`, `isBounded_toWeakDual_preimage_iff_isBounded`, `isVonNBounded_iff_pointwise_bounded`, `isBounded_iff_isVonNBounded`, `isBounded_iff_pointwise_bounded`, `isBounded_closedBall`, `isBounded_polar`)
---
Open in Gitpod
-->
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
|
205/70 |
Mathlib/Analysis/Normed/Module/WeakDual.lean |
1 |
2 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
5-85368 5 days ago |
9-16537 9 days ago |
9-16592 9 days |
| 36388 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/AdjMatrix): submatrices and homomorphisms |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
72/3 |
Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean |
1 |
9 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
5-68497 5 days ago |
5-83463 5 days ago |
7-22107 7 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 |
5-67759 5 days ago |
23-82258 23 days ago |
82-63127 82 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/TuringMachine/Config.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 |
15 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'thorimur', 'vihdzp'] |
thorimur assignee:thorimur |
5-67397 5 days ago |
5-67424 5 days ago |
52-5403 52 days |
| 36287 |
ScottCarnahan author:ScottCarnahan |
feat(Algebra/Lie): add graded Lie ring class |
This PR adds graded bracket and graded Lie ring classes. It is a first step toward Lie algebras graded by additive commutative monoids. The design is mostly copied from the graded ring API, but with Props enforcing additivity of degree.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
181/0 |
Mathlib.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/Lie/Graded.lean |
3 |
2 |
['github-actions'] |
ocfnash assignee:ocfnash |
5-48894 5 days ago |
10-24159 10 days ago |
10-24112 10 days |
| 36497 |
eric-wieser author:eric-wieser |
feat: add missing rfl lemmas for WriterT.run |
The `FreeM` example in CSLib that demonstrates an alternate construction of `WriterT` suffers from this API being absent, and results to agressively unfolding everything.
This also adds some missing `.run`s to fix defeq abuse.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
68/16 |
Mathlib/Control/Monad/Writer.lean |
1 |
1 |
['github-actions'] |
nobody |
5-8956 5 days ago |
5-9025 5 days ago |
5-9075 5 days |
| 36505 |
eric-wieser author:eric-wieser |
fix: use `MonadExceptOf` instead of `MonadExcept` for `ContT` and `WriterT` |
This matches how `ReaderT` and `StateT` do this in core.
Also adds some missing `rfl` lemmas, and fixes a stray `id` that should be `Id`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
25/4 |
Mathlib/Control/Monad/Cont.lean,Mathlib/Control/Monad/Writer.lean |
2 |
1 |
['github-actions'] |
nobody |
5-473 5 days ago |
5-2950 5 days ago |
5-2903 5 days |
| 36169 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Indexed): `iSup` of `sup`s vs `sup` of `iSup`s |
`ciSup_sup_eq`/`ciInf_inf_eq` match `CompleteLattice`'s `iSup_sup_eq`/`iInf_inf_eq`, and in a `ConditionallyCompleteLinearOrder` we get an inequality without any bounded assumptions.
`Finset.ciSup_union'` for `ConditionallyCompleteLinearOrderBot` matches `CompleteLattice`'s `Finset.iSup_union`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
39/0 |
Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
2 |
1 |
['github-actions'] |
Vierkantor assignee:Vierkantor |
4-85398 4 days ago |
11-66974 11 days ago |
11-68642 11 days |
| 36174 |
mike1729 author:mike1729 |
feat(Topology/Compactness): add countably compact sets |
This PR introduces the theory of countably compact sets and spaces. The motivation was the Eberlein–Šmulian theorem but of course this theory is of its own interest and there are many more applications.
New definitions:
- `IsCountablyCompact A`: a set `A` is countably compact if every sequence in `A`
has a cluster point in `A`.
- `CountablyCompactSpace E`: the whole space `E` is countably compact.
Main results:
- `IsCountablyCompact.elim_finite_subcover`: finite subcover from any countable open cover.
- `isCountablyCompact_iff_countable_open_cover`: equivalence with the finite-subcover property.
- `IsCompact.IsCountablyCompact`: compact implies countably compact.
- `IsSeqCompact.IsCountablyCompact`: sequentially compact implies countably compact.
- `IsCountablyCompact.isSeqCompact`: countably compact implies sequentially compact
in a first-countable space.
- `isCountablyCompact_iff_infinite_subset_has_accPt`: Bolzano–Weierstrass characterisation
in a T₁ space.
- `IsLindelof.isCompact`: a countably compact Lindelöf set is compact.
- `IsCountablyCompact.image`: continuous images of countably compact sets are countably compact.
- Union stability: binary, `Finset`, `Set.Finite`, and `iUnion` variants.
Co-authored-by: Yongxi Lin @CoolRmal
---
This PR adds `Mathlib.Topology.Compactness.CountablyCompact`, a new file alongside the existing `Compact`, `SeqCompact`, and `Lindelof` files.
The primary definition follows Engelking's *General Topology* (the cluster-point characterisation for sequences), and the equivalence with the finite-subcover characterisation is established immediately.
The immediate motivation for this PR is #35473 (Eberlein–Šmulian theorem), which depends on it. Further PRs will extend the theory of countably compact spaces.
-->
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-topology
|
299/0 |
Mathlib.lean,Mathlib/Topology/ClusterPt.lean,Mathlib/Topology/Compactness/CountablyCompact.lean |
3 |
4 |
['github-actions', 'mike1729', 'plp127'] |
j-loreaux assignee:j-loreaux |
4-85397 4 days ago |
11-55015 11 days ago |
11-54968 11 days |
| 36346 |
kckennylau author:kckennylau |
chore: add simp lemma to unfold Algebra.algHom |
```lean
@[simp] lemma Algebra.coe_algHom : ⇑(Algebra.algHom R A B) = algebraMap A B := rfl
```
---
[](https://gitpod.io/from-referrer/)
|
|
6/2 |
Mathlib/Algebra/Algebra/Hom.lean,Mathlib/RingTheory/Etale/StandardEtale.lean |
2 |
2 |
['acmepjz', 'github-actions'] |
dupuisf assignee:dupuisf |
4-85393 4 days ago |
8-75858 8 days ago |
8-75811 8 days |
| 36349 |
SnirBroshi author:SnirBroshi |
feat(LinearAlgebra/Matrix): expand `IsSymm`/`IsHermitian` API |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
156/14 |
Mathlib/Data/Matrix/Composition.lean,Mathlib/LinearAlgebra/Matrix/ConjTranspose.lean,Mathlib/LinearAlgebra/Matrix/Defs.lean,Mathlib/LinearAlgebra/Matrix/Hermitian.lean,Mathlib/LinearAlgebra/Matrix/Swap.lean,Mathlib/LinearAlgebra/Matrix/Symmetric.lean |
6 |
10 |
['SnirBroshi', 'github-actions', 'themathqueen'] |
joelriou assignee:joelriou |
4-85393 4 days ago |
8-59763 8 days ago |
8-61168 8 days |
| 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 |
4-79583 4 days ago |
12-82465 12 days ago |
14-46769 14 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 |
30 |
['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] |
awainverse assignee:awainverse |
4-75888 4 days ago |
41-7471 41 days ago |
93-66553 93 days |
| 36165 |
Parcly-Taxel author:Parcly-Taxel |
chore: deprecate `Nat.strongRec(On)'` |
In favour of Batteries's `Nat.strongRec` for definitions and `Nat.strong_induction_on` for proofs. |
t-data |
34/66 |
Mathlib/Analysis/Analytic/Inverse.lean,Mathlib/Data/Int/GCD.lean,Mathlib/Data/Nat/Factorization/Induction.lean,Mathlib/Data/Nat/Init.lean,Mathlib/Data/Set/Finite/Basic.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/Topology/EMetricSpace/Paracompact.lean |
8 |
4 |
['JovanGerb', 'MichaelStollBayreuth', 'Parcly-Taxel', 'github-actions'] |
nobody |
4-53033 4 days ago |
11-80939 11 days ago |
11-83007 11 days |
| 36166 |
wwylele author:wwylele |
feat(Data/Nat): formula for cardinal of finsuppAntidiag on Nat |
Co-authored-by: Bingyu Xia
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge |
82/0 |
Mathlib.lean,Mathlib/Algebra/Order/Antidiag/FinsuppEquiv.lean |
2 |
16 |
['BryceT233', 'copilot-pull-request-reviewer', 'github-actions', 'tb65536', 'wwylele'] |
tb65536 assignee:tb65536 |
4-47390 4 days ago |
5-6106 5 days ago |
10-69102 10 days |
| 36335 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/LapMatrix): {`adjMatrix`/`degMatrix`/`lapMatrix`} are Hermitian |
Also a small cleanup and golf.
This should let us access the eigenvalues of these matrices, for spectral graph theory.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
33/19 |
Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/LapMatrix.lean |
2 |
2 |
['github-actions', 'themathqueen'] |
nobody |
4-39262 4 days ago |
4-41764 4 days ago |
8-58602 8 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
|
98/3 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
3 |
26 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-merge-conflicts'] |
adamtopaz assignee:adamtopaz |
4-32295 4 days ago |
4-50022 4 days ago |
29-58487 29 days |
| 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
maintainer-merge
|
362/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Subgraph.lean |
2 |
81 |
['Jun2M', 'YaelDillies', 'github-actions', 'lauramonk', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
YaelDillies assignee:YaelDillies |
4-27659 4 days ago |
10-26869 10 days ago |
168-74871 168 days |
| 35622 |
SnirBroshi author:SnirBroshi |
feat(Logic/Function/Basic): `onFun` and `swap` preserve relation properties |
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
141/19 |
Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Function/Defs.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/WellFounded.lean,Mathlib/Order/WithBot.lean |
8 |
7 |
['SnirBroshi', 'github-actions', 'leanprover-radar', 'vihdzp'] |
nobody |
4-24419 4 days ago |
10-75812 10 days ago |
22-59616 22 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 |
3 |
['Jun2M', 'github-actions', 'lauramonk'] |
nobody |
4-22753 4 days ago |
15-77996 15 days ago |
15-78377 15 days |
| 36541 |
BGuillemet author:BGuillemet |
feat(CategoryTheory): define internal equivalence relations |
Define internal equivalence relations in any category `C`, as a structure on parallel pairs of morphisms.
Prove that equivalence relations on types are equivalence relations in the category of types.
Prove that kernel pairs are equivalence relations.
Define (universally) effective equivalence relations, and a associated class for categories in which every equivalence relation is effective universal.
Prove that an effective equivalence relation yields a coequalizer diagram, and that the associated projection on the "quotient" of the relation is a regular epimorphism.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
228/0 |
Mathlib.lean,Mathlib/CategoryTheory/EquivalenceRelation.lean,Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean |
3 |
1 |
['github-actions'] |
b-mehta assignee:b-mehta |
4-14230 4 days ago |
4-14298 4 days ago |
4-15779 4 days |
| 36104 |
LarsenClose author:LarsenClose |
feat(CategoryTheory/Endofunctor/Algebra): add Adámek's initial algebra theorem |
Adds Adámek's initial algebra theorem for endofunctors on categories
with an initial object. Given `F : C ⥤ C` where `C` has an initial
object, if the initial chain `⊥ → F(⊥) → F²(⊥) → ⋯` has a colimit
preserved by `F`, then `F` has an initial algebra whose structure map
is an isomorphism.
New files:
- `InitialChain.lean`: defines `iterateObj F n`, `iterateMap F n`,
and `initialChain F : ℕ ⥤ C` via `Functor.ofSequence`.
- `ChainShift.lean`: constructs `shiftCocone` and `extendCocone`,
proves `shiftCoconeIsColimit` (shifted cocone inherits colimit).
- `Adamek.lean`: main result. Constructs the initial `F`-algebra
`adamek F c hc` and proves `adamek_isInitial`. Convenience API:
`adamekFromInitial`, `adamekStructureIso`, `adamekFixedPoint`.
0 sorry. References Adámek 1974.
--- |
t-category-theory
new-contributor
|
505/0 |
Mathlib.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/Adamek.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/ChainShift.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/InitialChain.lean,docs/references.bib |
5 |
3 |
['dagurtomas', 'github-actions'] |
joelriou assignee:joelriou |
4-14225 4 days ago |
11-70939 11 days ago |
11-71006 11 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
maintainer-merge
|
309/37 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/Shapes/IsTerminal.lean,Mathlib/CategoryTheory/Limits/Types/Products.lean,Mathlib/CategoryTheory/Sites/Closed.lean,Mathlib/CategoryTheory/Sites/Sheaf.lean,Mathlib/CategoryTheory/Topos/Sheaf.lean |
6 |
68 |
['chrisflav', 'dagurtomas', 'edegeltje', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'mathlib-splicebot', 'robin-carlier'] |
chrisflav assignee:chrisflav |
4-8599 4 days ago |
4-21847 4 days ago |
14-35716 14 days |
| 36539 |
SnirBroshi author:SnirBroshi |
feat(SetTheory/Ordinal/Basic): the `#s`-th element of `α` is an upper-bound for the set's mex |
This is a translation of `card_typein_min_le_mk` to be in terms of `α`.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
42/5 |
Mathlib/AlgebraicGeometry/Properties.lean,Mathlib/Data/Set/Basic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
3 |
8 |
['SnirBroshi', 'b-mehta', 'github-actions', 'vihdzp'] |
nobody |
4-7232 4 days ago |
4-7296 4 days ago |
4-13857 4 days |
| 36571 |
harahu author:harahu |
doc(Combinatorics): fix typos |
Found by `PyCharm`'s code inspection tool. Fixes were made by Codex.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
25/25 |
Mathlib/Combinatorics/Colex.lean,Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Enumerative/IncidenceAlgebra.lean,Mathlib/Combinatorics/Matroid/Basic.lean,Mathlib/Combinatorics/Matroid/Circuit.lean,Mathlib/Combinatorics/Matroid/Map.lean,Mathlib/Combinatorics/Matroid/Minor/Contract.lean,Mathlib/Combinatorics/Matroid/Rank/ENat.lean,Mathlib/Combinatorics/Nullstellensatz.lean,Mathlib/Combinatorics/SetFamily/FourFunctions.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean,Mathlib/Combinatorics/SimpleGraph/FiveWheelLike.lean,docs/references.bib |
15 |
1 |
['github-actions'] |
nobody |
4-3421 4 days ago |
4-4414 4 days ago |
4-4367 4 days |
| 34571 |
xroblot author:xroblot |
feat(CyclotomicField/Galois): the bijection between subfields and subgroups of Dirichlet characters |
This PR adds the first results relating the Galois theory of cyclotomic extensions to Dirichlet characters, following Washington, _Introduction to Cyclotomic Fields_. The main result is the definition of the order-preserving bijection between intermediate fields of `ℚ(ζₙ)/ℚ` and subgroups of the group of Dirichlet characters of level `n`.
---
- [x] depends on: #33878
[](https://gitpod.io/from-referrer/)
|
large-import
t-algebra
label:t-algebra$ |
83/1 |
Mathlib/FieldTheory/Normal/Defs.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
dagurtomas assignee:dagurtomas |
3-85382 3 days ago |
7-38356 7 days ago |
7-40978 7 days |
| 36086 |
Multramate author:Multramate |
feat(Algebra): add liftEquiv for groups, rings, algebras, and adjoin roots |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
105/22 |
Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Bivariate.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/RatFunc/Luroth.lean,Mathlib/GroupTheory/GroupExtension/Basic.lean,Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/RingTheory/AdjoinRoot.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Valuation/ValuationSubring.lean |
12 |
3 |
['CBirkbeck', 'Multramate', 'github-actions', 'mathlib-merge-conflicts'] |
dagurtomas assignee:dagurtomas |
3-85375 3 days ago |
12-49214 12 days ago |
12-53190 12 days |
| 36114 |
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):
* `Real.GammaIntegral_convergent`: unchanged 🎉
* `PartENat.lt_find`: unchanged 🎉
* `MvPFunctor.liftR_iff`: unchanged 🎉
* `LinearMap.ortho_smul_right`: unchanged 🎉
* `MeasureTheory.setToFun_nonneg`: unchanged 🎉
* `ProbabilityTheory.Kernel.measurable_lmarginalPartialTraj`: 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/)
|
|
6/32 |
Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/PFunctor/Multivariate/Basic.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean,Mathlib/MeasureTheory/Integral/SetToL1.lean,Mathlib/Probability/Kernel/IonescuTulcea/PartialTraj.lean |
6 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
3-85375 3 days ago |
12-52529 12 days ago |
12-52482 12 days |
| 36146 |
Multramate author:Multramate |
feat(AlgebraicGeometry/GammaSpecAdjunction): add equivalences for Spec morphisms that commute with algebra maps |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
t-algebra
label:t-algebra$ |
46/2 |
Mathlib/Algebra/Category/CommAlgCat/Basic.lean,Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean,Mathlib/AlgebraicGeometry/Scheme.lean |
3 |
14 |
['CBirkbeck', 'Multramate', 'erdOne', 'github-actions'] |
dagurtomas assignee:dagurtomas |
3-85374 3 days ago |
10-52287 10 days ago |
11-82780 11 days |
| 36338 |
harahu author:harahu |
doc(Algebra): fix typos |
Found by `PyCharm`'s code inspection tool.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
documentation
label:t-algebra$ |
30/30 |
Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Category/ModuleCat/Ulift.lean,Mathlib/Algebra/FiniteSupport/Basic.lean,Mathlib/Algebra/FiniteSupport/Defs.lean,Mathlib/Algebra/Group/Action/End.lean,Mathlib/Algebra/Group/Hom/Defs.lean,Mathlib/Algebra/Homology/BifunctorShift.lean,Mathlib/Algebra/Homology/CochainComplexPlus.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/Embedding/ExtendHomotopy.lean,Mathlib/Algebra/Homology/HomologicalBicomplex.lean,Mathlib/Algebra/Homology/HomotopyCategory/HomComplexSingle.lean,Mathlib/Algebra/Homology/HomotopyCategory/Pretriangulated.lean,Mathlib/Algebra/Homology/HomotopyCategory/SingleFunctors.lean,Mathlib/Algebra/Homology/ModelCategory/Lifting.lean,Mathlib/Algebra/Lie/CartanExists.lean,Mathlib/Algebra/Lie/Derivation/Basic.lean,Mathlib/Algebra/Lie/EngelSubalgebra.lean,Mathlib/Algebra/NonAssoc/LieAdmissible/Defs.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/SuccPred/TypeTags.lean,Mathlib/Algebra/Polynomial/PartialFractions.lean |
23 |
3 |
['euprunin', 'github-actions', 'harahu', 'mathlib-merge-conflicts', 'plp127'] |
dagurtomas assignee:dagurtomas |
3-85367 3 days ago |
8-27941 8 days ago |
9-4257 9 days |
| 36407 |
j-loreaux author:j-loreaux |
feat: norm of sums of continuous functions whose product is zero |
For continuous functions whose pairwise products are zero, the norm of the sum is the maximum of the norms of the individual functions. This is useful for proving the analogous norm properties for commuting selfadjoint (or normal) elements in a C⋆-algebra.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
87/0 |
Mathlib/Topology/ContinuousMap/Bounded/Normed.lean,Mathlib/Topology/ContinuousMap/Compact.lean |
2 |
3 |
['github-actions', 'themathqueen'] |
dagurtomas assignee:dagurtomas |
3-85363 3 days ago |
7-6505 7 days ago |
7-22915 7 days |
| 36413 |
JovanGerb author:JovanGerb |
chore(Algebra/Group/InjSurj): clean up instances |
This PR give a bit of speedup by cleaning up some `Function.Injective.` and `Function.Surjective.` instances. The main point is to put the arguments in the correct order in `{ ..., ... with }`, matching the order of the `extends` clause.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
21/24 |
Mathlib/Algebra/Group/InjSurj.lean |
1 |
4 |
['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-bors'] |
dwrensha assignee:dwrensha |
3-85363 3 days ago |
7-20527 7 days ago |
0-6 6 seconds |
| 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 |
['Parcly-Taxel', 'b-mehta', 'eric-wieser', 'github-actions', 'jsm28', 'vihdzp'] |
kmill assignee:kmill |
3-75228 3 days ago |
62-16094 62 days ago |
62-16047 62 days |
| 35963 |
Parcly-Taxel author:Parcly-Taxel |
refactor: review Kleene algebra axioms |
Derive
```lean
one_add_mul_kstar (a : α) : 1 + a * a∗ = a∗
one_add_kstar_mul (a : α) : 1 + a∗ * a = a∗
```
which is Proposition 2 in Kozen's 1994 paper.
We also remove the `bot` and `bot_le` fields in `IdemSemiring`, since the remaining axioms already show `0 ≤ a` for all `a`. |
t-algebra label:t-algebra$ |
82/81 |
Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean |
3 |
13 |
['Parcly-Taxel', 'dagurtomas', 'github-actions', 'plp127', 'vihdzp'] |
nobody |
3-69696 3 days ago |
3-69747 3 days ago |
14-7172 14 days |
| 36520 |
tb65536 author:tb65536 |
feat(Analysis/InnterProductSpace/Spectrum): the spectral theorem for compact self-adjoint operators |
This PR proves that the eigenspaces of a compact self-adjoint operator are finite dimensional and have trivial orthogonal complement.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
89/4 |
Mathlib/Analysis/InnerProductSpace/Spectrum.lean,Mathlib/Analysis/Normed/Group/Submodule.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean |
3 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
3-66622 3 days ago |
3-66676 3 days ago |
4-54444 4 days |
| 36414 |
alainchmt author:alainchmt |
feat(FieldTheory/Finite): irreducible factors of X^q^n - X have degree dividing n |
Add the theorem that if an irreducible polynomial over a finite field `K` divides `X ^ (Fintype.card K) ^ n - X`, then the degree of the polynomial divides `n`. We also add an auxiliary lemma stating that polynomials of nonzero degree dividing `X ^ (Fintype.card K) - X` have a root in `K`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
53/0 |
Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Finite/GaloisField.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean,Mathlib/FieldTheory/Minpoly/Field.lean |
4 |
9 |
['alainchmt', 'github-actions', 'tb65536'] |
nobody |
3-62821 3 days ago |
5-30238 5 days ago |
7-5129 7 days |
| 34717 |
CoolRmal author:CoolRmal |
feat: add more APIs for the first derivative test |
The derivative test in Mathlib right now only says whether a point is local maximum. This is hard to use in practice (for example in the [PNT](https://github.com/AlexKontorovich/PrimeNumberTheoremAnd) project) as we sometimes want to show that a point is a maximum on some interval. This PR adds more APIs for the first derivative test to resolve this issue.
Co-authored-by: Louis Liu @Deep0Thinking
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
t-order
|
412/32 |
Mathlib/Analysis/Calculus/DerivativeTest.lean,Mathlib/Topology/Order/OrderClosedExtr.lean |
2 |
4 |
['CoolRmal', 'MichaelStollBayreuth', 'github-actions'] |
nobody |
3-60359 3 days ago |
42-53655 42 days ago |
0-25 25 seconds |
| 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
- [x] depends on: #36144
- [x] depends on: #36310
[](https://gitpod.io/from-referrer/)
|
FLT
t-algebra
label:t-algebra$ |
164/4 |
Mathlib.lean,Mathlib/NumberTheory/RamificationInertia/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/Valuation/Discrete/RankOne.lean,Mathlib/RingTheory/Valuation/Extension.lean |
5 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
3-56754 3 days ago |
4-6475 4 days ago |
6-45512 6 days |
| 36282 |
smmercuri author:smmercuri |
chore(Topology/Algebra/Valued/WithVal): remove `@` lemma |
Prove `Valuation.IsEquiv.uniformContinuous_congr` directly and remove `Valuation.IsEquiv.uniformContinuous` which is not needed.
---
- [x] depends on: #36310
[](https://gitpod.io/from-referrer/)
|
|
18/32 |
Mathlib/Topology/Algebra/Valued/WithVal.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
3-56601 3 days ago |
4-6592 4 days ago |
4-61532 4 days |
| 33731 |
nielsvoss author:nielsvoss |
feat(Analysis/InnerProductSpace): definition of singular values for finite-dimensional inner product spaces |
This PR defines the singular values for linear maps between finite-dimensional inner product spaces.
The API is designed in a way that allows it to be generalized to the approximation numbers, as defined in #32126.
See the discussion on Zulip: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Singular.20Value.20Decomposition/with/558914024
---
- [x] depends on: #34362
- [x] depends on: #34660
- [x] depends on: #35174
- [x] depends on: #35236
- [x] depends on: #35582
- [x] depends on: #36106
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
216/0 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/SingularValues.lean |
2 |
27 |
['b-mehta', 'dupuisf', 'eric-wieser', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'nielsvoss', 'themathqueen'] |
nobody |
3-53517 3 days ago |
3-53393 3 days ago |
3-53658 3 days |
| 36470 |
joelriou author:joelriou |
feat(CategoryTheory/Monoidal): the left adjoint of a lax monoidal functor is oplax monoidal |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
79/0 |
Mathlib/CategoryTheory/Monoidal/Functor.lean |
1 |
4 |
['dagurtomas', 'github-actions'] |
nobody |
3-52395 3 days ago |
3-52461 3 days ago |
5-43389 5 days |
| 36201 |
themathqueen author:themathqueen |
feat(Analysis/CStarAlgebra): set of star projections equals the extreme points of the nonnegative closed unit ball |
An element in a non-unital C⋆-algebra is a projection iff it is an extreme point of the nonnegative closed unit ball. This is from 1.6.2 in Sakai's C⋆-algebras and W⋆-algebras (the proof is different though).
Co-authored-by: Jon Bannon <59937998+JonBannon@users.noreply.github.com>
---
- [x] depends on: #35997
[](https://gitpod.io/from-referrer/)
|
t-analysis |
96/0 |
Mathlib.lean,Mathlib/Analysis/CStarAlgebra/Extreme.lean,docs/references.bib |
3 |
4 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'themathqueen'] |
nobody |
3-49116 3 days ago |
3-49167 3 days ago |
5-38880 5 days |
| 36376 |
jessealama author:jessealama |
feat(SimpleGraph): bridge from Perm.IsCycle to IsHamiltonian |
This PR provides `IsHamiltonian.ofPerm`, a bridge from `Equiv.Perm.IsCycle` to `SimpleGraph.IsHamiltonian`: if σ is a permutation that is a single cycle with full support on at least 3 elements, and each step `v → σ v` is an edge of `G`, then `G` is Hamiltonian.
### New definitions and lemmas
**`Mathlib/Combinatorics/SimpleGraph/Walks/Iterate.lean`** (new file):
- `Walk.iterate`: builds a walk of length `n` from `x` to `f^[n] x` for any function `f` with `G.Adj x (f x)` for all `x`
- `Walk.iterate_length`, `Walk.iterate_getVert`, `Walk.iterate_support`, `Walk.iterate_edges`: basic API
**`Mathlib/GroupTheory/Perm/Cycle/Basic.lean`**:
- `IsCycleOn.injOn_pow_apply`: the map `n ↦ (f ^ n) a` is injective on `Finset.range #s`
**`Mathlib/GroupTheory/Perm/Cycle/Concrete.lean`**:
- `Perm.toList_eq_range_map_pow`: expresses `toList` as a range map over powers
**`Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean`**:
- `edge_ne_of_isCycleOn`: edge distinctness for cycle-on permutations
- `IsHamiltonian.ofPerm`: the main theorem |
large-import |
158/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Iterate.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean |
5 |
33 |
['SnirBroshi', 'github-actions', 'jessealama', 'mathlib-merge-conflicts'] |
nobody |
3-48927 3 days ago |
3-53927 3 days ago |
6-61985 6 days |
| 36592 |
Vierkantor author:Vierkantor |
chore(Tactic): rewrite `introv` tactic docstring |
This PR rewrites the docstrings for the `introv` tactic, to consistently match the official style guide, to make sure they are complete while not getting too long.
In particular, I wanted to clarify exactly what `introv` does and does not introduce, depending on the list of names given to it.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
21/19 |
Mathlib/Tactic/Basic.lean |
1 |
2 |
['github-actions'] |
nobody |
3-47373 3 days ago |
3-48330 3 days ago |
3-48283 3 days |
| 36594 |
Vierkantor author:Vierkantor |
chore(Tactic): rewrite `lift` tactic docstring |
This PR rewrites the docstrings for the `lift` tactic, to make sure they are complete while not getting too long.
The main change, apart from restructuring the bullet points to fit the style guide, is to treat the form `lift e to t with x`, where `e` is any expression, as the "general" form, and the case where `e` is a variable as a specialized form. Although it doesn't match the historical development, I think this is clearer for new users (since explaining `lift` without `with` as a special case can be done with only one line). Similarly, we separate `using` into its own bullet point.
In this docstring I did not include the alternative form `lift e to t with x rfl`, since it is exactly equivalent to `lift e to to with x` as far as I can tell. I did include `lift e to t with x rfl h`, because it is useful for preserving the `using` hypothesis without naming the introduced equality.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
61/33 |
Mathlib/Tactic/Lift.lean |
1 |
1 |
['github-actions'] |
nobody |
3-47349 3 days ago |
3-47422 3 days ago |
3-47375 3 days |
| 36208 |
EtienneC30 author:EtienneC30 |
feat: central limit theorem |
Prove the central limit theorem in dimension 1.
Co-authored-by: @hanwenzhu
---
- [ ] depends on: #36178
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
163/3 |
Mathlib.lean,Mathlib/Analysis/SpecialFunctions/Complex/LogBounds.lean,Mathlib/MeasureTheory/Measure/CharacteristicFunction/TaylorExpansion.lean,Mathlib/Probability/CentralLimitTheorem.lean,Mathlib/Probability/Moments/Variance.lean,docs/100.yaml,docs/1000.yaml |
7 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
3-43354 3 days ago |
7-40598 7 days ago |
7-40551 7 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 |
6 |
['dagurtomas', 'github-actions', 'pevogam'] |
dagurtomas assignee:dagurtomas |
3-43276 3 days ago |
13-6230 13 days ago |
13-6289 13 days |
| 36593 |
joelriou author:joelriou |
feat(Algebra/Homology): first step of a factorization lemma |
This is the first in a series of three PRs towards #35813 which shall show that if `f : K ⟶ L` is a morphism between bounded below cochain complexes in an abelian category with enough injectives, then there exists a factorization `ι ≫ π = f` with `ι : K ⟶ K'` a monomorphism that is also a quasi-isomorphism and `π : K' ⟶ L` a morphism which degreewise is an epimorphism with an injective kernel, while `K'` is also bounded below (with precise bounds depending on the available bounds for `K` and `L`). The construction of the intermediate object `K'` is obtained by taking a degreewise eventually constant projective limit of cochain complexes, where the complexes in the projective system are constructed step by step. Each step decomposes further into two lemmas `step₁` and `step₂`. In this PR, we prove `step₁`.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
t-algebra
label:t-algebra$ |
248/0 |
Mathlib.lean,Mathlib/Algebra/Homology/Factorizations/CM5a.lean |
2 |
2 |
['github-actions', 'joelriou'] |
nobody |
3-40192 3 days ago |
3-40253 3 days ago |
3-40654 3 days |
| 35643 |
chrisflav author:chrisflav |
chore(Algebra): make `TensorProduct.equivOfCompatibleSMul` more linear |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
maintainer-merge
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 |
17 |
['chrisflav', 'github-actions', 'kckennylau', 'robin-carlier'] |
kim-em assignee:kim-em |
3-36309 3 days ago |
3-41343 3 days ago |
19-3423 19 days |
| 36425 |
yuma-mizuno author:yuma-mizuno |
fix: prevent stack overflow in `monoidal` tactic |
Fix stack overflow when trying to use the tactic with incomplete expressions.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
t-meta
|
48/0 |
Mathlib/Tactic/CategoryTheory/Bicategory/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,MathlibTest/CategoryTheory/Bicategory/Basic.lean,MathlibTest/CategoryTheory/Monoidal/Basic.lean |
4 |
4 |
['github-actions', 'robin-carlier', 'yuma-mizuno'] |
nobody |
3-36215 3 days ago |
3-44351 3 days ago |
3-24795 3 days |
| 35680 |
joelriou author:joelriou |
feat(CategoryTheory/Sites): alternative constructor for points |
By definition, given a point of a site `(C, J)`, the fiber of a presheaf `P` is defined as a filtered colimit indexed by the opposite category of the category of elements of the functor from `C` to types that is part of the definition of the point. In this PR, we introduce a constructor for points which allows to provide a functor `p : N ⥤ C` from a cofiltered and initially small instead.
This construction is applied to the construction of the image of a point by a cocontinuous functor.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
337/0 |
Mathlib.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Map.lean,Mathlib/CategoryTheory/Sites/Point/OfIsCofiltered.lean |
4 |
16 |
['bryangingechen', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier'] |
adamtopaz assignee:adamtopaz |
3-35566 3 days ago |
3-35606 3 days ago |
10-37938 10 days |
| 36596 |
harahu author:harahu |
chore(Algebra): fix markdown list indentation |
We replace lazy continuation lines in lists with either:
- indented lines, to signify that the line is indeed a continuation line; or
- a newline, where the continuation line(s) were in fact intended to be disconnected from the list.
We do this because lazy continuation is a markdown footgun that one does well to avoid.
We also standardize indentation such that continuation lines now line up with the first line of the item they're continuing. This seems to be the solution enforced by markdown formatters, e.g. `mdformat`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
36/27 |
Mathlib/Algebra/ContinuedFractions/Basic.lean,Mathlib/Algebra/ContinuedFractions/Computation/CorrectnessTerminating.lean,Mathlib/Algebra/ContinuedFractions/Computation/Translations.lean,Mathlib/Algebra/DirectSum/Finsupp.lean,Mathlib/Algebra/FreeAlgebra.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Homology/ShortComplex/ExactFunctor.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/Algebra/Order/Hom/Basic.lean,Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Algebra/Polynomial/Inductions.lean,Mathlib/Algebra/Polynomial/Laurent.lean |
12 |
1 |
['github-actions'] |
nobody |
3-34257 3 days ago |
unknown |
0-0 0 seconds |
| 36182 |
joelriou author:joelriou |
feat(Algebra/Homology/SpectralObject): homology of the differentials |
---
- [x] depends on: #35374
- [x] depends on: #35375
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
maintainer-merge
label:t-algebra$ |
166/0 |
Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/Homology.lean |
2 |
48 |
['faenuccio', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier', 'smorel394'] |
faenuccio assignee:faenuccio |
3-29798 3 days ago |
3-29898 3 days ago |
4-11467 4 days |
| 36197 |
RemyDegenne author:RemyDegenne |
feat: integrability of a convex function of R.N. derivatives |
For `f` a convex continuous real function, if `f ((μ ⊗ₘ κ).rnDeriv (ν ⊗ₘ η))` is `(ν ⊗ₘ η)`-integrable, then `f (μ.rnDeriv ν)` is `ν`-integrable.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
maintainer-merge
|
146/2 |
Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Measure/Decomposition/IntegralRNDeriv.lean,Mathlib/MeasureTheory/Measure/Decomposition/RadonNikodym.lean |
3 |
12 |
['EtienneC30', 'RemyDegenne', 'github-actions'] |
EtienneC30 assignee:EtienneC30 |
3-29413 3 days ago |
3-53780 3 days ago |
8-62896 8 days |
| 36606 |
harahu author:harahu |
chore(AlgebraicGeometry): fix markdown list indentation |
We replace lazy continuation lines in lists with either:
- indented lines, to signify that the line is indeed a continuation line; or
- a newline, where the continuation line(s) were in fact intended to be disconnected from the list.
We do this because lazy continuation is a markdown footgun that one does well to avoid.
We also standardize indentation such that continuation lines now line up with the first line of the item they're continuing. This seems to be the solution enforced by markdown formatters, e.g. `mdformat`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
19/17 |
Mathlib/AlgebraicGeometry/Gluing.lean,Mathlib/AlgebraicGeometry/Morphisms/Basic.lean,Mathlib/AlgebraicGeometry/Morphisms/Flat.lean,Mathlib/AlgebraicGeometry/Morphisms/RingHomProperties.lean,Mathlib/AlgebraicGeometry/Properties.lean |
5 |
1 |
['github-actions'] |
nobody |
3-27928 3 days ago |
3-28010 3 days ago |
3-27963 3 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 |
5 |
['SnirBroshi', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
3-27117 3 days ago |
22-69938 22 days ago |
22-70906 22 days |
| 36456 |
b-mehta author:b-mehta |
feat(ENat): relate ENat to finset sums and products |
The names and statements are picked to mimic https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/ENNReal/BigOperators.html.
- [x] depends on: #36454
- [x] depends on: #36452
|
t-data
large-import
|
75/1 |
Mathlib/Data/ENat/BigOperators.lean |
1 |
3 |
['b-mehta', 'github-actions', 'mathlib-dependent-issues'] |
nobody |
3-26297 3 days ago |
3-26360 3 days ago |
3-27314 3 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 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
3-23821 3 days ago |
3-23843 3 days ago |
13-51379 13 days |
| 36283 |
Vierkantor author:Vierkantor |
chore(Tactic/GRewrite): rewrite `grw` family tactic docstrings |
This PR rewrites the docstrings for tactics in the `grw` family: `grw`, `grewrite`, `apply_rw`, `apply_rewrite`, `nth_rw` and `nth_rewrite`, to consistently match the official style guide, to make sure they are complete while not getting too long.
The `grw` tactic docstring was nice and complete, but the others were very brief and needed expansion (especially since it took me quite some time to understand the motivation behind `apply_rw`).
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
|
141/23 |
Mathlib/Tactic/GRewrite/Elab.lean |
1 |
13 |
['JovanGerb', 'Vierkantor', 'github-actions'] |
adamtopaz assignee:adamtopaz |
3-23094 3 days ago |
10-27077 10 days ago |
10-27030 10 days |
| 36599 |
joelriou author:joelriou |
feat(Algebra/Category/ModuleCat): the monoidal adjunction between the extension and the restriction of scalars |
---
Note: there are a few new `erw` in the code, but this is due to issues in the file `Algebra/Category/ModuleCat/ChangeOfRings`. A refactor of this file would be very much welcome, but I am not completely sure how it should be done...
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
178/6 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Adjunction.lean,Mathlib/CategoryTheory/Monoidal/Braided/Transport.lean,Mathlib/CategoryTheory/Monoidal/Functor.lean |
5 |
1 |
['github-actions'] |
nobody |
3-22254 3 days ago |
3-22317 3 days ago |
3-23340 3 days |
| 36298 |
ocfnash author:ocfnash |
feat: define bases of semisimple Lie algebras and add API |
---
- [x] depends on: #36297
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
569/0 |
Mathlib.lean,Mathlib/Algebra/Lie/Basis.lean,Mathlib/LinearAlgebra/Basis/Basic.lean |
3 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
3-20117 3 days ago |
3-54937 3 days ago |
3-54891 3 days |
| 35568 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): switch NormedSpace instance to `projectiveSeminorm` |
The PR switches the `NormedSpace` instance on `PiTensorProduct`s from `injectiveSeminorm` to `projectiveSeminorm` and updates all follow-up results.
The signature of `norm_eval_le_projectiveSeminorm` is changed to match the one of `norm_eval_le_injectiveSeminorm`.
This is the second 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).
---
- [x] depends on: #35567
This series is the result of splitting up #34137. More discussion there.
Co-authored-by: Davood H. H. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
27/29 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
5 |
['github-actions', 'goliath-klein', 'mathlib-dependent-issues', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
3-19844 3 days ago |
3-19844 3 days ago |
10-25836 10 days |
| 35940 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(NumberTheory/Height/MvPolynomial): lower height bounds for images under polynomial maps |
We continue the development of height bounds for polynomial maps. Here we add the lower bound.
---
- [x] depends on: #35927
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
label:t-algebra$ |
147/9 |
Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/NumberTheory/Height/MvPolynomial.lean |
2 |
10 |
['AntoineChambert-Loir', 'MichaelStollBayreuth', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536'] |
mariainesdff assignee:mariainesdff |
3-18716 3 days ago |
10-25109 10 days ago |
10-27759 10 days |
| 36603 |
themathqueen author:themathqueen |
feat(Analysis/Convex/Strict/Extreme): `extremePoints ℝ (Icc a b) = {a, b}` |
Also provide `StrictConvexSpace ℝ ℝ` instance without needing to invoke the inner product space.
Co-authored-by: Jireh Loreaux
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
easy
|
15/0 |
Mathlib/Analysis/Convex/Extreme.lean,Mathlib/Analysis/Convex/Strict/Extreme.lean,Mathlib/Analysis/Convex/StrictConvexSpace.lean,Mathlib/Analysis/Normed/Group/Real.lean |
4 |
1 |
['github-actions'] |
nobody |
3-17203 3 days ago |
3-33514 3 days ago |
3-33467 3 days |
| 36617 |
j-loreaux author:j-loreaux |
feat: add `IsSemitopologicalRing` |
With the recent addition of the class `SeparatelyContinuousMul`, it becomes possible to define `IsSemitopologicalRing` (and a version for semirings). A *semitopological ring* is a ring with jointly continuous addition and separately continuous multiplication (and continuous negation, but this is implied by the other two). Such structures arise quite frequently in functional analysis.
This PR defines these classes and then generalizes a number of things in the library. For example, the topological closures of ring-like structures only need multiplication to be separately continuous (they also only need addition to be separately continuous, but ring-like structures for which addition is separately but not jointly continuous do not generally arise in practice). In addition, this allows us to weaken the conditions of instances pertaining to `ContinuousMap.UniqueHom` and `ContinuousMapZero.UniqueHom` which are used in the continuous functional calculus.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-algebra
label:t-algebra$ |
241/102 |
Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Commute.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Continuity.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Instances.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unique.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Basic.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/PosPart/Basic.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/Basic.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/NonUnitalAlgebra.lean,Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean,Mathlib/Topology/Algebra/Ring/Basic.lean,Mathlib/Topology/Algebra/StarSubalgebra.lean |
12 |
1 |
['github-actions'] |
nobody |
3-15589 3 days ago |
3-15660 3 days ago |
3-15613 3 days |
| 36392 |
JovanGerb author:JovanGerb |
chore: deprecate `push_neg` |
This PR deprecates `push_neg` in favour of `push Not`. The deprecation message includes an example of how to implement `push_neg` as a macro, in case people want to keep using `push_neg`.
This PR replaces all uses of `push_neg` with `push Not`, or golfs them away using `!` tactics like `by_contra!`.
The doc-string of `push` is updated with some of the information from the `push_neg` doc-string.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
292/287 |
Archive/Examples/Kuratowski.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo2006Q5.lean,Archive/Wiedijk100Theorems/BallotProblem.lean,Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Archive/ZagierTwoSquares.lean,Counterexamples/IrrationalPowerOfIrrational.lean,Mathlib/Algebra/BigOperators/Group/Finset/Piecewise.lean,Mathlib/Algebra/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/GroupWithZero/Regular.lean,Mathlib/Algebra/Homology/HomologicalComplex.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/Algebra/Order/AbsoluteValue/Basic.lean,Mathlib/Algebra/Order/Antidiag/Nat.lean,Mathlib/Algebra/Order/Archimedean/IndicatorCard.lean,Mathlib/Algebra/Order/Monoid/Defs.lean,Mathlib/Algebra/Order/Rearrangement.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/Taylor.lean,Mathlib/Algebra/Regular/SMul.lean,Mathlib/Analysis/Analytic/Binomial.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Analysis/Analytic/OfScalars.lean,Mathlib/Analysis/Calculus/Deriv/ZPow.lean,Mathlib/Analysis/Calculus/LagrangeMultipliers.lean,Mathlib/Analysis/Complex/Basic.lean,Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Asymptotic.lean,Mathlib/Analysis/ConstantSpeed.lean,Mathlib/Analysis/Convex/Integral.lean,Mathlib/Analysis/Convex/Radon.lean,Mathlib/Analysis/Convex/SimplicialComplex/Basic.lean,Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/LocallyConvex/Bounded.lean,Mathlib/Analysis/LocallyConvex/SeparatingDual.lean,Mathlib/Analysis/Real/Hyperreal.lean,Mathlib/Analysis/SpecialFunctions/BinaryEntropy.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/Integrability/LogMeromorphic.lean,Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/Combinatorics/Matroid/Circuit.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Diam.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/Combinatorics/Young/YoungDiagram.lean,Mathlib/Computability/ContextFreeGrammar.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Nat/Factorization/Defs.lean,Mathlib/Data/Nat/Find.lean,Mathlib/Data/Nat/Nth.lean,Mathlib/Data/Nat/Prime/Basic.lean,Mathlib/Data/Nat/Prime/Defs.lean,Mathlib/Data/PEquiv.lean,Mathlib/Data/Set/Basic.lean,Mathlib/Data/Set/Prod.lean,Mathlib/FieldTheory/Extension.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/PrimitiveElement.lean,Mathlib/Geometry/Manifold/IntegralCurve/ExistUnique.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean,Mathlib/GroupTheory/Exponent.lean,Mathlib/GroupTheory/Perm/Centralizer.lean,Mathlib/GroupTheory/Perm/List.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/GroupTheory/PushoutI.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/LinearAlgebra/Alternating/Basic.lean,Mathlib/LinearAlgebra/Dimension/Localization.lean,Mathlib/LinearAlgebra/Dimension/RankNullity.lean,Mathlib/LinearAlgebra/Dimension/StrongRankCondition.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean,Mathlib/LinearAlgebra/Eigenspace/Zero.lean,Mathlib/LinearAlgebra/InvariantBasisNumber.lean,Mathlib/LinearAlgebra/LinearIndependent/Defs.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean,Mathlib/LinearAlgebra/Matrix/ToLinearEquiv.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Multilinear/DFinsupp.lean,Mathlib/LinearAlgebra/Projectivization/Cardinality.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/Order.lean,Mathlib/MeasureTheory/Function/AEEqOfLIntegral.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/Basic.lean,Mathlib/MeasureTheory/Function/Egorov.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Indicator.lean,Mathlib/MeasureTheory/Function/SimpleFuncDense.lean |
170 |
1 |
['github-actions'] |
nobody |
3-15565 3 days ago |
3-15629 3 days ago |
6-76203 6 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 |
11 |
['DavidLedvinka', 'github-actions', 'metakunt', 'pfaffelh'] |
kex-y and ocfnash assignee:ocfnash assignee:kex-y |
3-5958 3 days ago |
14-10167 14 days ago |
56-15866 56 days |
| 35535 |
mariainesdff author:mariainesdff |
feat(RingTheory/ClassGroup): prove mulEquiv |
We prove that isomorphic rings have isomorphic class groups.
Co-authored by: @xgenereux.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
233/9 |
Mathlib/Algebra/Ring/CompTypeclasses.lean,Mathlib/RingTheory/ClassGroup.lean,Mathlib/RingTheory/FractionalIdeal/Operations.lean,Mathlib/RingTheory/IntegralClosure/IsIntegral/Basic.lean,Mathlib/RingTheory/LocalProperties/Basic.lean,Mathlib/RingTheory/Localization/FractionRing.lean |
6 |
29 |
['erdOne', 'eric-wieser', 'github-actions', 'mariainesdff', 'mathlib-merge-conflicts', 'tb65536'] |
mattrobball assignee:mattrobball |
2-85380 2 days ago |
10-34720 10 days ago |
17-79168 17 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'] |
robin-carlier assignee:robin-carlier |
2-85376 2 days ago |
19-28535 19 days ago |
19-28488 19 days |
| 36243 |
Hagb author:Hagb |
feat(Data/Finsupp/Order): `{emb,map}Domain` preserve pairwise order |
`embDomain`, and thus also `mapDomain` by an injective map, preserve pairwise order.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
39/0 |
Mathlib/Data/Finsupp/Order.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
2-85373 2 days ago |
10-72603 10 days ago |
10-72556 10 days |
| 36319 |
themathqueen author:themathqueen |
feat(Analysis/CStarAlgebra/Unitary): left multiplication by a unitary as a linear isometric equivalence |
Co-authored-by: Jon Bannon <59937998+JonBannon@users.noreply.github.com>
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
171/0 |
Mathlib.lean,Mathlib/Algebra/Module/Equiv/Basic.lean,Mathlib/Analysis/CStarAlgebra/Unitary/Maps.lean |
3 |
5 |
['github-actions', 'j-loreaux', 'themathqueen'] |
j-loreaux assignee:j-loreaux |
2-85370 2 days ago |
6-5195 6 days ago |
9-35448 9 days |
| 36329 |
rwst author:rwst |
feat(PowerSeries): add barebones Log.lean |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
67/0 |
Mathlib.lean,Mathlib/RingTheory/PowerSeries/Log.lean |
2 |
1 |
['github-actions'] |
mariainesdff assignee:mariainesdff |
2-85369 2 days ago |
9-21380 9 days ago |
9-21333 9 days |
| 36374 |
EtienneC30 author:EtienneC30 |
refactor: define the Poisson measure via a sum of Dirac masses |
Change the definition of `poissonMeasure r` to be
`Measure.sum (fun n ↦ ENNReal.ofReal (exp (-r) * r ^ n / (n)!) • (.dirac n))`
instead of using `PMF`. This allows to directly use API for measures instead of having to develop an API for `PMF`, which anyway is defined as a sum of Dirac masses.
Also add some results about integrals against the poissonMeasure.
---
- [x] depends on: #36355
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
|
105/30 |
Mathlib/MeasureTheory/Measure/Dirac.lean,Mathlib/Probability/Distributions/Poisson/Basic.lean,Mathlib/Probability/Distributions/Poisson/PoissonLimitThm.lean |
3 |
11 |
['DavidLedvinka', 'EtienneC30', 'b-mehta', 'github-actions', 'mathlib-dependent-issues'] |
kex-y assignee:kex-y |
2-85367 2 days ago |
7-23585 7 days ago |
7-37571 7 days |
| 36378 |
EtienneC30 author:EtienneC30 |
refactor: define the geometric distribution via a sum of Dirac masses |
Change the definition of `geometricMeasure p` to be
`Measure.sum (fun n ↦ ENNReal.ofReal ((1 - p) ^ n * p)) • (.dirac n))`
instead of using `PMF`. This allows to directly use API for measures instead of having to develop an API for `PMF`, which anyway is defined as a sum of Dirac masses.
Also add some results about integrals against the geometricMeasure.
---
- [x] depends on: #36355
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
|
135/25 |
Mathlib/MeasureTheory/Measure/Dirac.lean,Mathlib/Probability/Distributions/Geometric.lean |
2 |
17 |
['DavidLedvinka', 'EtienneC30', 'b-mehta', 'github-actions', 'mathlib-dependent-issues'] |
RemyDegenne assignee:RemyDegenne |
2-85365 2 days ago |
7-37452 7 days ago |
7-37420 7 days |
| 36389 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): add some lemma about quotSMulTop |
Add some lemma about quotSMulTop, especially some usual application of Nakayama lemma in related stuffs.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
26/0 |
Mathlib/RingTheory/QuotSMulTop.lean,Mathlib/RingTheory/Regular/RegularSequence.lean |
2 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
2-85363 2 days ago |
7-65516 7 days ago |
7-65469 7 days |
| 36401 |
JovanGerb author:JovanGerb |
feat(positivity): positivity extension for `a - b` |
This PR adds support in `positivity` for proving things about subtraction. For example, if the goal is `0 < a - b`, and there is a local hypothesis of type `b < a`, then we close the goal.
The motivation is that we want `positivity` to be a flexible tactic. So, when trying to prove `0 < a - b` using a local hypothesis, we should look for the simp normal form of this, which is `b < a`.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
61/24 |
Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Complex/AbelLimit.lean,Mathlib/Analysis/Complex/BorelCaratheodory.lean,Mathlib/Analysis/Complex/Hadamard.lean,Mathlib/Analysis/Convex/BetweenList.lean,Mathlib/Analysis/SpecialFunctions/Log/Deriv.lean,Mathlib/Analysis/SpecificLimits/FloorPow.lean,Mathlib/Geometry/Manifold/Riemannian/PathELength.lean,Mathlib/Tactic/Positivity/Basic.lean,MathlibTest/positivity.lean |
10 |
4 |
['github-actions', 'hrmacbeth', 'j-loreaux', 'leanprover-radar'] |
dwrensha assignee:dwrensha |
2-85361 2 days ago |
7-4682 7 days ago |
7-8057 7 days |
| 36415 |
j-loreaux author:j-loreaux |
feat: interactions of the continuous functional calculus with the real and imaginary parts |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
180/0 |
Mathlib.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/RealImaginaryPart.lean |
2 |
2 |
['github-actions', 'themathqueen'] |
ADedecker assignee:ADedecker |
2-85360 2 days ago |
6-73668 6 days ago |
6-73727 6 days |
| 36435 |
grunweg author:grunweg |
feat: transfer IsTopologicalAddGroup and ContinuousSMul across continuous linear equivalences |
and use this to remove mathematically superfluous typeclass hypotheses in the tensoriality criterion.
Follow-up to #36277/#36432.
---
- [x] depends on: #36432
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
67/8 |
Mathlib/Geometry/Manifold/VectorBundle/Tensoriality.lean,Mathlib/Topology/Algebra/Module/TransferInstance.lean |
2 |
6 |
['ADedecker', 'github-actions', 'grunweg', 'mathlib-dependent-issues', 'plp127'] |
PatrickMassot assignee:PatrickMassot |
2-85358 2 days ago |
6-45005 6 days ago |
6-45620 6 days |
| 36441 |
mariainesdff author:mariainesdff |
feat(Data/Finsupp/Indicator): add lemmas |
Co-authored by : @AntoineChambert-Loir
---
[](https://gitpod.io/from-referrer/)
|
t-data |
22/1 |
Mathlib/Data/Finsupp/Indicator.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
2-85356 2 days ago |
6-35172 6 days ago |
6-35125 6 days |
| 36618 |
SnirBroshi author:SnirBroshi |
feat(Order/RelClasses): `IsTrans` is redundant in `IsWellOrder` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
13/14 |
Mathlib/Order/RelClasses.lean,Mathlib/SetTheory/ZFC/Ordinal.lean |
2 |
1 |
['github-actions', 'vihdzp'] |
nobody |
2-85238 2 days ago |
2-85300 2 days ago |
3-1956 3 days |
| 36612 |
JovanGerb author:JovanGerb |
chore(Order/SuccPred/Basic): use `to_dual` more |
When this file was originally tagged with `to_dual`, the attribute was less capable. Now, we can tag almost everything in the file. This PR does the first half of the remaining tagging. The rest can be done in a future PR.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
35/150 |
Mathlib/Order/SuccPred/Basic.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
nobody |
2-84678 2 days ago |
3-18250 3 days ago |
3-18203 3 days |
| 36626 |
SnirBroshi author:SnirBroshi |
feat(Order/UpperLower/Basic): an injective function constrained by the identity function using a well-order is the identity |
---
(yes I know `IsLowerSet` is bundled but I need the theorems for unbundled relations 🙈)
[](https://gitpod.io/from-referrer/)
|
t-order |
30/0 |
Mathlib/Order/UpperLower/Basic.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
2-79765 2 days ago |
2-85358 2 days ago |
2-85311 2 days |
| 35287 |
arnoudvanderleer author:arnoudvanderleer |
feat(AlgebraicTopology/SimplicialSet): define isomorphisms in simplicial sets, and the coherent isomorphism simplicial set |
show that any edge in a simplicial set, that is the image of the forward edge of the coherent isomorphism under a simplicial set morphism, is an isomorphism.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
new-contributor
infinity-cosmos
|
339/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/CoherentIso.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/CategoryTheory/CodiscreteCategory.lean |
5 |
66 |
['arnoudvanderleer', 'github-actions', 'joelriou', 'robin-carlier'] |
nobody |
2-64677 2 days ago |
20-53600 20 days ago |
2-17522 2 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
maintainer-merge
|
20/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
2 |
['YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
2-61165 2 days ago |
23-2687 23 days ago |
23-2640 23 days |
| 36597 |
kebekus author:kebekus |
feat: add lemmas on (fin)sums and (fin)products of meromorphic functions |
Add a host of missing lemmas on (fin)sums and (fin)products of meromorphic functions, and weaken assumptions in existing lemmas.
This material is used in [Project VD](https://github.com/kebekus/ProjectVD), formalizing Value Distribution Theory for meromorphic functions on the complex plane.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
247/61 |
Mathlib/Analysis/Complex/ValueDistribution/CharacteristicFunction.lean,Mathlib/Analysis/Complex/ValueDistribution/LogCounting/Basic.lean,Mathlib/Analysis/Complex/ValueDistribution/Proximity/Basic.lean,Mathlib/Analysis/Meromorphic/Basic.lean,Mathlib/Analysis/Meromorphic/Divisor.lean,Mathlib/Analysis/Meromorphic/NormalForm.lean,Mathlib/Analysis/Meromorphic/Order.lean,Mathlib/Analysis/Meromorphic/TrailingCoefficient.lean |
8 |
1 |
['github-actions'] |
nobody |
2-56417 2 days ago |
3-29084 3 days ago |
3-29037 3 days |
| 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 |
257/0 |
Mathlib.lean,Mathlib/RingTheory/Smooth/Quotient.lean,Mathlib/RingTheory/TensorProduct/Quotient.lean |
3 |
14 |
['Thmoas-Guan', 'github-actions', 'jcommelin'] |
jcommelin assignee:jcommelin |
2-56219 2 days ago |
13-36121 13 days ago |
21-30886 21 days |
| 36471 |
eric-wieser author:eric-wieser |
feat: more API for Function.IsPartialInv |
This also renames some lemmas to enable dot notation.
---
[](https://gitpod.io/from-referrer/)
|
t-logic
maintainer-merge
|
33/22 |
Mathlib/Data/Set/Finite/Basic.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/Logic/Function/Basic.lean |
3 |
13 |
['Komyyy', 'eric-wieser', 'github-actions'] |
nobody |
2-53722 2 days ago |
3-85322 3 days ago |
5-3245 5 days |
| 36314 |
JovanGerb author:JovanGerb |
feat(gcongr): support `rintro` patterns |
This PR adds support for `rintro` patterns in the `with` clause of `gcongr`. This makes it consistent with `congr!`.
I've only found one case in mathlib where this could actually be used to shorten a proof.
I split the gcongr `elab` into a separate `syntax` and `elab_rules`, which makes it easier to deal with the syntax.
I noticed that the implementation of `congr!` was unnecessarily converting back and forth between `rintroPat` and `rcasesPat`, so I changed it to simply only use `rintroPat`, and then did the same in `gcongr`.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
41/28 |
Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Tactic/CongrExclamation.lean,Mathlib/Tactic/Convert.lean,Mathlib/Tactic/Core.lean,Mathlib/Tactic/GCongr/Core.lean |
5 |
2 |
['dupuisf', 'github-actions'] |
nobody |
2-51249 2 days ago |
9-48389 9 days ago |
9-48470 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', 'vlad902'] |
nobody |
2-46508 2 days ago |
30-49635 30 days ago |
30-49588 30 days |
| 33506 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): construct a cycle of two distinct paths with same start and end |
Co-authored-by: Vlad Tsyrklevich
---
- [x] depends on: #33249
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
109/1 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Nodup.lean |
4 |
17 |
['Rida-Hamadani', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'vlad902'] |
nobody |
2-44336 2 days ago |
17-18824 17 days ago |
2-17599 2 days |
| 36509 |
euprunin author:euprunin |
chore: golf using `fin_omega`, `simp_all` and `grind +splitIndPred` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Fin.lt_sub_iff`: 46 ms before, <30 ms after 🎉
* `ArchimedeanClass.add_left_cancel_of_ne_top`: 134 ms before, <30 ms after 🎉
* `exists_seq_of_forall_finset_exists'`: <30 ms before, 53 ms after
* `Filter.hasBasis_biInf_of_directed'`: unchanged 🎉
* `Filter.hasBasis_biInf_of_directed`: <30 ms before, 53 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/)
|
|
6/48 |
Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Order/Ring/Archimedean.lean,Mathlib/Data/Fintype/Basic.lean,Mathlib/Geometry/Manifold/Immersion.lean,Mathlib/Order/Filter/Bases/Basic.lean |
5 |
4 |
['euprunin', 'github-actions', 'j-loreaux'] |
nobody |
2-44089 2 days ago |
4-83415 4 days ago |
4-83368 4 days |
| 36545 |
yuanyi-350 author:yuanyi-350 |
feat(ProbabilityTheory): Add Kolmogorov's inequality |
ref: https://en.wikipedia.org/wiki/Kolmogorov%27s_inequality
---
- [x] depends on: #36542
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
|
147/0 |
Mathlib.lean,Mathlib/Probability/CondVar.lean,Mathlib/Probability/Martingale/Kolmogorov.lean,Mathlib/Probability/Martingale/OptionalStopping.lean |
4 |
3 |
['CoolRmal', 'github-actions', 'mathlib-dependent-issues'] |
nobody |
2-43720 2 days ago |
4-20253 4 days ago |
0-1789 29 minutes |
| 36605 |
martinwintermath author:martinwintermath |
feat(Geometry/Convex/Cone): Add linear span for cones and lemmas about interaction between span and negation |
This PR introduces `linSpan` (linear span) as a short form of `Submodule.span` in the context of cones. This abbreviation allows for shorter, easier to parse lemma statement as well as more descriptive lemma names.
This PR also introduces lemmas about the interaction of cone span, linear span and negation. This demonstrates the usefulness of `linSpan`.
Co-authored-by: Olivia Röhrig, Kilian Rueß
---
[](https://gitpod.io/from-referrer/)
|
|
86/0 |
Mathlib/Geometry/Convex/Cone/Pointed.lean |
1 |
1 |
['github-actions'] |
nobody |
2-42150 2 days ago |
3-20366 3 days ago |
3-21341 3 days |
| 36637 |
Smithl-Lin author:Smithl-Lin |
feat(InformationTheory): Pinsker's inequality for finite distributions |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
507/0 |
Mathlib.lean,Mathlib/InformationTheory/Pinsker.lean |
2 |
2 |
['github-actions'] |
nobody |
2-41877 2 days ago |
2-41950 2 days ago |
2-42463 2 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
maintainer-merge
|
21/17 |
Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean |
2 |
6 |
['YaelDillies', 'github-actions', 'vlad902'] |
YaelDillies assignee:YaelDillies |
2-41485 2 days ago |
2-61127 2 days ago |
28-73855 28 days |
| 36642 |
tb65536 author:tb65536 |
feat(NumberTheory/ArithmeticFunction/LFunction): arithmetic functions from power series |
This PR constructs arithmetic functions from power series. See #36189 for how this will ultimately be used to construct L-functions.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
label:t-algebra$ |
132/0 |
Mathlib.lean,Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/NumberTheory/ArithmeticFunction/LFunction.lean |
3 |
1 |
['github-actions'] |
nobody |
2-39645 2 days ago |
2-39055 2 days ago |
2-39035 2 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
|
91/1 |
Mathlib/Analysis/Asymptotics/Defs.lean |
1 |
17 |
['github-actions', 'j-loreaux', 'khwilson'] |
j-loreaux assignee:j-loreaux |
2-33823 2 days ago |
2-33874 2 days ago |
18-13918 18 days |
| 36641 |
Smithl-Lin author:Smithl-Lin |
feat(Probability/Martingale): Ville's inequality for nonneg supermart… |
…ingales
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
110/0 |
Mathlib.lean,Mathlib/Probability/Martingale/Ville.lean |
2 |
2 |
['github-actions'] |
nobody |
2-33231 2 days ago |
2-33297 2 days ago |
2-35290 2 days |
| 36324 |
psinary-sketch author:psinary-sketch |
feat(NumberTheory/LSeries): Schwarz reflection for completedRiemannZeta₀ |
---
Three new theorems about `completedRiemannZeta₀`:
- `completedRiemannZeta₀_conj`: Schwarz reflection
`Λ₀(conj s) = conj(Λ₀(s))`
- `completedRiemannZeta₀_im_eq_zero_on_half`: the completed zeta
function is real-valued on the critical line
- `completedRiemannZeta₀_conj_eq_self_on_half`: equivalent fixed-point
formulation
The Schwarz reflection follows from the Mellin representation: the
kernel is real-valued, so the integral commutes with conjugation via
`integral_conj`. The critical-line results compose this with the
functional equation. |
t-number-theory
new-contributor
|
147/0 |
Mathlib.lean,Mathlib/NumberTheory/LSeries/SchwarzReflection.lean |
2 |
13 |
['SnirBroshi', 'github-actions', 'psinary-sketch'] |
alexjbest assignee:alexjbest |
2-20213 2 days ago |
2-20271 2 days ago |
5-38737 5 days |
| 36646 |
NoahW314 author:NoahW314 |
doc(Topology/Homotopy): fix ContinuousMap.Homotopy docstrings |
Some of the docstrings referenced Homotopy (from Algebra/Homology) instead of ContinuousMap.Homotopy.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
15/11 |
Mathlib/Topology/Homotopy/Basic.lean |
1 |
2 |
['erdOne', 'github-actions'] |
nobody |
2-17186 2 days ago |
2-19920 2 days ago |
2-19873 2 days |
| 36379 |
JadAbouHawili author:JadAbouHawili |
doc: module docs for Finset Lattice and Defs |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
6/7 |
Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Lattice/Basic.lean |
2 |
4 |
['JadAbouHawili', 'github-actions'] |
joneugster assignee:joneugster |
2-16743 2 days ago |
8-11108 8 days ago |
8-12712 8 days |
| 34622 |
vihdzp author:vihdzp |
feat: Nat/Int casts on char two rings |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
maintainer-merge
label:t-algebra$ |
50/8 |
Mathlib/Algebra/CharP/Two.lean,Mathlib/Data/Set/Insert.lean |
2 |
11 |
['erdOne', 'eric-wieser', 'github-actions', 'vihdzp'] |
erdOne assignee:erdOne |
2-12521 2 days ago |
13-52858 13 days ago |
44-75149 44 days |
| 36650 |
Ljon4ik4 author:Ljon4ik4 |
feat: added simp lemmas to LieRinehartAlgebra |
This pull request adds simp lemmas for the defining properties of Lie-Rinehart-Algebras.
Additionally the definition of anchor is moved out of the Hom namespace.
(Even though the anchor itself is a Hom, it is an object associated to an LR-algebra, not a Hom of algebras).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
25/13 |
Mathlib/Algebra/LieRinehartAlgebra/Defs.lean |
1 |
2 |
['github-actions'] |
nobody |
2-10749 2 days ago |
2-10828 2 days ago |
2-10781 2 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
|
128/1 |
Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
4 |
19 |
['CoolRmal', 'Deep0Thinking', 'EtienneC30', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
2-10310 2 days ago |
5-16879 5 days ago |
30-41067 30 days |
| 36649 |
JovanGerb author:JovanGerb |
chore(CategoryTheory/Adjunction/Basic): use `dsimp%` in definition |
The theorems `left_triangle_components` and `right_triangle_components` are only well typed up to unfolding the `Functor.id` and `Functor.comp` in `unit` and `counit`. This PR uses `dsimp%` to make sure the implicit arguments have `Functor.id` and `Functor.comp` unfolded where possible.
This came up because `to_dual` complained that `left_triangle_components` and `right_triangle_components` aren't actually dual in `reducible` transparency.
---
[](https://gitpod.io/from-referrer/)
|
|
18/14 |
Mathlib/Algebra/Category/ModuleCat/Sheaf/PushforwardContinuous.lean,Mathlib/AlgebraicTopology/ModelCategory/BifibrantObjectHomotopy.lean,Mathlib/CategoryTheory/Adjunction/Basic.lean,Mathlib/CategoryTheory/Adjunction/Triple.lean,Mathlib/CategoryTheory/Limits/Preserves/Shapes/Zero.lean,Mathlib/CategoryTheory/Monad/Monadicity.lean,Mathlib/CategoryTheory/Shift/Adjunction.lean,Mathlib/Topology/Sheaves/Skyscraper.lean |
8 |
2 |
['JovanGerb', 'github-actions'] |
nobody |
2-3701 2 days ago |
2-8915 2 days ago |
2-9657 2 days |
| 36651 |
Ljon4ik4 author:Ljon4ik4 |
feat: compatible (pairs of) derivations form a Lie algebra |
Given a map of $R$-algebras $\sigma: A\to A'$, a derivation $X$ of $A$ is called compatible with a Derivation $X'$ of $A'$, if $\sigma\circ X =X'\circ \sigma$. Given two such pairs $(X,X')$ and $(Y,Y')$, their Lie brackets $([X,Y], [X',Y'])$ again form such a pair. This concept is relevant in differential geometry, where $A$, $A'$ are the algebras of smooth functions on manifolds and $\sigma$ comes from a smooth map between manifolds. (In this case one calls the vector fields (= Derivations) 'related').
This concept can be encoded by the fact that the compatible Derivations form a Lie subalgebra of the direct sum of the derivations of $A$ with the derivations of $A'$.
In this PR we add this fact, along with a convenient way to express the direct sum of two Lie algebras, as a special case of their semidirect sum. (There already is a direct sum construction for aribtrary families of Lie algebras in `Mathlib.Algebra.Lie.DirectSum`), but I don't know if there is a very convenient way to use it in the binary case.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
39/0 |
Mathlib/Algebra/Lie/SemiDirect.lean,Mathlib/RingTheory/Derivation/Lie.lean |
2 |
3 |
['github-actions'] |
nobody |
2-3498 2 days ago |
2-3563 2 days ago |
2-4025 2 days |
| 36654 |
JovanGerb author:JovanGerb |
chore(Translate): address outdated comment |
This PR addresses an outdated comment I wrote in `checkExistingType`. It was written when `==` was used for the comparison. But since we now use reducible `isDefEq`, the precise universe instantiation doesn't matter.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
2/6 |
Mathlib/Tactic/Translate/Core.lean |
1 |
1 |
['github-actions'] |
nobody |
2-2532 2 days ago |
2-2621 2 days ago |
2-2574 2 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
|
113/2 |
Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Measure/QuasiMeasurePreserving.lean,Mathlib/Order/Filter/Basic.lean |
4 |
33 |
['ADedecker', 'EtienneC30', 'github-actions', 'samueloettl'] |
ADedecker assignee:ADedecker |
2-1954 2 days ago |
2-52703 2 days ago |
22-45642 22 days |
| 36535 |
JovanGerb author:JovanGerb |
perf(Rintheory/Ideal/Quotient/HasFiniteQuotients): remove unused instance |
This PR helps to fix the timeouts in #36395. The removed instance is a special case of `of_module_finite` which isn't tagged as an instance. But I don't see a reason why this particular special case should be an instance. It is problematic because it causes type class search to suddenly search for things related to `Int`, making it extra slow.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
0/4 |
Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean |
1 |
3 |
['JovanGerb', 'github-actions', 'leanprover-radar'] |
nobody |
2-1097 2 days ago |
4-35632 4 days ago |
4-35585 4 days |
| 36304 |
JovanGerb author:JovanGerb |
feat(Translate): translate binder names starting with `h` |
This PR expands the binder name translation in `to_dual` and `to_additive`. If the binder name cannot be translated by itself, then try translating without the prefix `h`. This is useful when a hypothesis is called `hmin` or `hmax`.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
22/4 |
Mathlib/Tactic/Translate/Core.lean,MathlibTest/ToDual.lean |
2 |
5 |
['JovanGerb', 'gasparattila', 'github-actions', 'mathlib-merge-conflicts'] |
dwrensha assignee:dwrensha |
2-636 2 days ago |
2-659 2 days ago |
8-83879 8 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'] |
nobody |
1-85389 1 day ago |
69-55626 69 days ago |
69-55579 69 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'] |
nobody |
1-85388 1 day ago |
27-53285 27 days ago |
28-2530 28 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 |
306/0 |
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'] |
j-loreaux assignee:j-loreaux |
1-85209 1 day ago |
27-12507 27 days ago |
41-73475 41 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'] |
mattrobball assignee:mattrobball |
1-85206 1 day ago |
34-40929 34 days ago |
63-23142 63 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'] |
sgouezel assignee:sgouezel |
1-85205 1 day ago |
47-59692 47 days ago |
47-61233 47 days |
| 34728 |
j-loreaux author:j-loreaux |
feat: continuous linear equivalence between continuous `ℝ`- and `𝕜`-linear functionals (in either the strong or weak-⋆ topologies) |
This realizes the map `StrongDual.extendRCLikeₗ`, after pre- and post-composing so that it is an equivalence between the weak duals, as a *continuous* linear equivalence.
In addition, when the space is a topological vector space, we realize `StrongDual.extendRCLikeₗ` as a *continuous* linear equivalence between the strong duals.
---
- [x] depends on: #34543
The placement in `Analysis/Normed/Module/WeakDual` seems suboptimal because this has nothing to do with the norm. This is because `WeakDual.toStrongDual` is already in this file, which should probably be moved to `Topology/Algebra/Module/WeakDual`. However, even if that moves, the declarations added in this PR cannot easily go with it because they involve `RCLike`. Potentially, they could move to `Analysis/RCLike/Extend` if that file gained the `Topology/Algebra/Module/WeakDual` import.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
87/2 |
Mathlib/Analysis/Normed/Module/RCLike/Extend.lean,Mathlib/Analysis/Normed/Module/WeakDual.lean |
2 |
8 |
['ADedecker', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
urkud assignee:urkud |
1-85204 1 day ago |
7-22757 7 days ago |
7-25126 7 days |
| 35285 |
SnirBroshi author:SnirBroshi |
feat(Algebra/LinearRecurrence): define a standard basis for the solution space of a linear recurrence |
Also `mkSol` is injective.
---
The hard work was already done by the existing equivalence `toInit`; this defines the basis that the equivalence provides and uses it to simplify a couple of proofs.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
24/12 |
Mathlib/Algebra/LinearRecurrence.lean |
1 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
1-85201 1 day ago |
30-73728 30 days ago |
30-73681 30 days |
| 35798 |
xroblot author:xroblot |
feat(RamificationInertia): compute the degrees of the decomposition field and inertia field |
Prove the degree formulas for the decomposition and inertia fields.
---
- [x] depends on: #35530
- [x] depends on: #35303
[](https://gitpod.io/from-referrer/)
|
large-import
t-number-theory
|
92/5 |
Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean |
1 |
9 |
['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536', 'xroblot'] |
tb65536 assignee:tb65536 |
1-85196 1 day ago |
6-46142 6 days ago |
6-51424 6 days |
| 36018 |
wwylele author:wwylele |
feat(LinearAlgebra/AffineSpace): shifting a subspace towards a point |
This is preparing to calculate the volume of a simplex by integrating the cross-section created by shifting the base plane.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
254/0 |
Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean,Mathlib/LinearAlgebra/AffineSpace/Simplex/Basic.lean |
3 |
7 |
['copilot-pull-request-reviewer', 'github-actions', 'mathlib-bors'] |
kim-em assignee:kim-em |
1-85194 1 day ago |
5-3382 5 days ago |
5-3351 5 days |
| 36242 |
joneugster author:joneugster |
feat(scripts/autolabel): collect label dependencies transitively |
Collect label dependencies transitively. if `t-algebraic-geometry -> t-ring-theory` and `t-ring-theory -> t-algebra` are two dependencies where the latter label is dropped from the list of applicable labels, then `t-algebraic-geometry -> t-algebra` is also dropped.
---
I forgot if this was an oversight in #34066 or if we split this out to facilitate discussion should this not be desired behaviour.
- [x] depends on: #34066
- part of: #34079
[](https://gitpod.io/from-referrer/)
|
CI |
2/3 |
scripts/autolabel.lean |
1 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
bryangingechen assignee:bryangingechen |
1-85193 1 day ago |
10-73904 10 days ago |
10-74314 10 days |
| 36334 |
Multramate author:Multramate |
feat(AlgebraicGeometry/EllipticCurve): add notation and pretty printer for points |
Co-authored-by: Kenny Lau
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
41/0 |
Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean |
3 |
11 |
['CBirkbeck', 'Multramate', 'erdOne', 'github-actions', 'riccardobrasca'] |
dagurtomas assignee:dagurtomas |
1-85192 1 day ago |
9-15540 9 days ago |
9-15493 9 days |
| 36357 |
yuanyi-350 author:yuanyi-350 |
feat(Analysis/Deriv): add some lemmas for `iteratedDeriv` |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
84/8 |
Mathlib/Analysis/Calculus/ContDiff/FTaylorSeries.lean,Mathlib/Analysis/Calculus/Deriv/Basic.lean,Mathlib/Analysis/Calculus/FDeriv/Add.lean,Mathlib/Analysis/Calculus/FDeriv/Equiv.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Lemmas.lean |
5 |
7 |
['github-actions', 'j-loreaux', 'urkud', 'yuanyi-350'] |
sgouezel assignee:sgouezel |
1-85191 1 day ago |
5-66369 5 days ago |
7-38595 7 days |
| 36399 |
chrisflav author:chrisflav |
feat(RingTheory/Flat): finite flat algebra is trivial if rank is equal to `1` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
177/3 |
Mathlib.lean,Mathlib/LinearAlgebra/TensorProduct/Associator.lean,Mathlib/RingTheory/Flat/Rank.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Spectrum/Prime/Topology.lean,Mathlib/RingTheory/TensorProduct/Maps.lean |
6 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
1-85190 1 day ago |
7-32176 7 days ago |
7-32129 7 days |
| 36433 |
tb65536 author:tb65536 |
feat(RingTheory/Ideal/Quotient/HasFiniteQuotients): a ring with finite quotients has finitely many ideals of bounded norm |
This PR proves that a ring with finite quotients has only finitely many ideals of bounded norm.
This is needed for the construction of L-functions over number fields.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
69/5 |
Mathlib/RingTheory/Ideal/Quotient/HasFiniteQuotients.lean |
1 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
1-85188 1 day ago |
6-48768 6 days ago |
0-1 1 second |
| 36442 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2/Card): cardinality theorems about `Sym2 α` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
95/0 |
Mathlib.lean,Mathlib/Data/Sym/Sym2/Card.lean |
2 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
1-85187 1 day ago |
6-34596 6 days ago |
6-34549 6 days |
| 36458 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(Algebra/Group): some API lemmas for powMonoidHom |
This adds a few lemmas about `powMonoidHom`/`nsmulAddMonoidHom` and one convenience lemma that says that the range (as a `MonoidHom`/`AddMonoidHom`) of a `MulEquiv`/`AddEquiv` is the top subobject.
It also defines the isomorphism `((i : ι) → A i) ⧸ (powMonoidHom n).range ≃* ((i : ι) → A i ⧸ (powMonoidHom n).range)` and its additive version.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
67/2 |
Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Subgroup/ZPowers/Lemmas.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean |
3 |
14 |
['MichaelStollBayreuth', 'Vierkantor', 'github-actions'] |
dagurtomas assignee:dagurtomas |
1-85187 1 day ago |
5-18371 5 days ago |
6-12675 6 days |
| 36491 |
aditya-ramabadran author:aditya-ramabadran |
feat(Analysis/Distribution): define Dirac delta distribution |
Defines Dirac delta distribution (classical)
Closes #36464
* Note: Used `continuous_eval_const` in defining Delta in Distribution.lean, rather than the way it's done in TemperedDistribution.lean (which could also work)
* Also chose to define for $x \in \Omega$ rather than all $x \in E$, can make the other way if that's better?
---
**Testing**:
```lean
example (x : E) : Continuous fun φ : 𝓓^{n}(Ω, F) => φ x :=
continuous_eval_const x
```
Lean builds successfully
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
29/0 |
Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/Distribution.lean,Mathlib/Analysis/Distribution/TestFunction.lean |
3 |
2 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
1-85185 1 day ago |
5-26123 5 days ago |
5-26076 5 days |
| 36657 |
BryceT233 author:BryceT233 |
feat(RingTheory): adds two lemmas on `Module.length` |
This PR adds two lemmas regarding the length of modules:
* `Submodule.length_le_restrictScalar` shows that the length of an $R$-submodule is less than or equal to its length as an $A$-submodule under scalar restriction.
* `Submodule.length_quotient_lt` shows that for a module of finite length, the length of a quotient module $M \big/ p$ is strictly less than the length of $M$ when the submodule $p$ is non-trivial.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
23/0 |
Mathlib/RingTheory/Length.lean |
1 |
1 |
['github-actions'] |
nobody |
1-83351 1 day ago |
1-83416 1 day ago |
1-86219 1 day |
| 36658 |
JovanGerb author:JovanGerb |
chore(Topology/Order/Hom/Esakia): replace `RelHomClass` with `OrderHomClass` |
Let's use the `abbrev` if we already have it.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
1/1 |
Mathlib/Topology/Order/Hom/Esakia.lean |
1 |
1 |
['github-actions'] |
nobody |
1-78948 1 day ago |
1-82485 1 day ago |
1-82438 1 day |
| 36661 |
wwylele author:wwylele |
feat(Analysis/Lp): simp lemma for LinearMap.det and toLpLin |
Analog to [LinearMap.det_toLin'](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/Determinant.html#LinearMap.det_toLin')
---
Seems trivial given the proof is only one line, but this took me quite some time to find when the obvious simplification didn't happen.
[](https://gitpod.io/from-referrer/)
|
easy
t-analysis
large-import
|
6/0 |
Mathlib/Analysis/Normed/Lp/Matrix.lean |
1 |
1 |
['github-actions'] |
nobody |
1-78475 1 day ago |
1-78985 1 day ago |
1-78938 1 day |
| 36663 |
plp127 author:plp127 |
fix(Computability/Halting): remove `set_option linter.flexible false` |
Also unsqueeze some terminal `simp`s.
---
[](https://gitpod.io/from-referrer/)
|
tech debt
t-computability
|
12/17 |
Mathlib/Computability/Halting.lean |
1 |
1 |
['github-actions'] |
nobody |
1-75727 1 day ago |
1-75805 1 day ago |
1-75758 1 day |
| 36656 |
JovanGerb author:JovanGerb |
fix(Simps): don't reduce the type of the equality |
This PR fixes a small problem with `simps`, that the type in the generated equality lemmas is unnecessarily reduced. This can result in raw projections, which we typically don't want in our lemmas. This doesn't affect how these lemmas behave in `simp`.
This problem confused `to_dual` a bit in `CategoryTheory.Iso`. This PR lets us remove the `respectTansparency` option there.
---
[](https://gitpod.io/from-referrer/)
|
|
20/6 |
Mathlib/CategoryTheory/Iso.lean,Mathlib/Tactic/Simps/Basic.lean,MathlibTest/Simps.lean |
3 |
1 |
['github-actions'] |
nobody |
1-75133 1 day ago |
2-138 2 days ago |
2-593 2 days |
| 36655 |
plp127 author:plp127 |
chore(IsFractionRing): make argument explicit |
Makes the base ring an explicit argument in `IsFractionRing.div_surjective`. This argument cannot be inferred by typeclass inference, because the base ring is not an `outParam` or `semiOutParam` in the type of `IsFractionRing`. It is also rarely determined by the expected type, since this is typically used as the discriminant for an `obtain` or `rcases`.
Also update every usage of `IsFractionRing.div_surjective` to take advantage of this explicit argument.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
25/24 |
Mathlib/Algebra/Algebra/Epi.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/NumberTheory/NumberField/ProductFormula.lean,Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Localization/AsSubring.lean,Mathlib/RingTheory/Localization/FractionRing.lean,Mathlib/RingTheory/Localization/Integral.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean |
11 |
1 |
['github-actions', 'vihdzp'] |
nobody |
1-73535 1 day ago |
2-1274 2 days ago |
2-1464 2 days |
| 36667 |
NoneMore author:NoneMore |
feat(ModelTheory): add `exClosure` definition for first-order formulas |
Prepare for moving realizations between elementarily equivalent structures.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
47/0 |
Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean |
2 |
2 |
['github-actions'] |
nobody |
1-69507 1 day ago |
1-69605 1 day ago |
1-69558 1 day |
| 36585 |
vihdzp author:vihdzp |
feat: order type of `Iio o` is `lift o` |
Downstreamed from the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
18/16 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Family.lean,Mathlib/SetTheory/ZFC/Ordinal.lean,Mathlib/SetTheory/ZFC/VonNeumann.lean |
5 |
4 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
1-68943 1 day ago |
1-69009 1 day ago |
2-42647 2 days |
| 36117 |
vihdzp author:vihdzp |
chore(RingTheory/IntegralDomain): review file |
This PR does the following:
- rename two theorems to better match Mathlib standards
- golf a proof
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
27/34 |
Mathlib/NumberTheory/NumberField/Units/Basic.lean,Mathlib/RingTheory/IntegralDomain.lean,Mathlib/RingTheory/RootsOfUnity/Basic.lean |
3 |
1 |
['github-actions'] |
nobody |
1-67964 1 day ago |
1-68026 1 day ago |
1-71457 1 day |
| 36510 |
Parcly-Taxel author:Parcly-Taxel |
chore: delete >6 month old deprecated modules |
* Every `deprecated_module` up to and including `2025-09-12`.
* `Mathlib.Deprecated.Estimator` and `Mathlib.Deprecated.MLList.BestFirst` from #29549.
* `Mathlib.Data.Nat.PartENat` from #29231.
* `Mathlib.Deprecated.RingHom` from #33429 – at the time it was removed (see https://github.com/leanprover-community/mathlib4/blob/561ba4ae9408025b2d4c9403116b575b7d2a0205/Mathlib/Deprecated/RingHom.lean) there were only two declarations inside and they both had `@[deprecated (since := "2025-06-09")]`, so there was effectively a `deprecated_module (since := "2025-06-09")` on top. |
file-removed
tech debt
|
0/1606 |
Mathlib.lean,Mathlib/Analysis/NormedSpace/BallAction.lean,Mathlib/Analysis/NormedSpace/DualNumber.lean,Mathlib/Analysis/NormedSpace/FunctionSeries.lean,Mathlib/Analysis/NormedSpace/HomeomorphBall.lean,Mathlib/Analysis/NormedSpace/IndicatorFunction.lean,Mathlib/Analysis/NormedSpace/Int.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Asymptotics.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Basic.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Bilinear.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Completeness.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Mul.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/NNNorm.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/NormedSpace.lean,Mathlib/Analysis/NormedSpace/OperatorNorm/Prod.lean,Mathlib/Analysis/NormedSpace/Pointwise.lean,Mathlib/Analysis/NormedSpace/RCLike.lean,Mathlib/Analysis/NormedSpace/Real.lean,Mathlib/Analysis/NormedSpace/SphereNormEquiv.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Deprecated/Estimator.lean,Mathlib/Deprecated/MLList/BestFirst.lean,Mathlib/Deprecated/Order.lean,Mathlib/Deprecated/RingHom.lean,Mathlib/RingTheory/Valuation/IntegrallyClosed.lean,Mathlib/Topology/Algebra/Module/StrongDual.lean,MathlibTest/search/BestFirst.lean |
27 |
1 |
['github-actions'] |
nobody |
1-67755 1 day ago |
4-82666 4 days ago |
4-82619 4 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
|
213/2 |
Mathlib.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
4 |
7 |
['BryceT233', 'github-actions', 'joneugster', 'mathlib-bors', 'wwylele'] |
erdOne assignee:erdOne |
1-65460 1 day ago |
11-79167 11 days ago |
20-62011 20 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-64750 1 day ago |
14-5509 14 days ago |
29-61130 29 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-64729 1 day ago |
20-76737 20 days ago |
23-64050 23 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'] |
riccardobrasca assignee:riccardobrasca |
1-64702 1 day ago |
15-66747 15 days ago |
20-79174 20 days |
| 36245 |
BryceT233 author:BryceT233 |
feat(RingTheory/LocalRing): introduce algebra map version of `ResidueField.map` |
This PR added `IsLocalHom` instances to `AlgHom` and introduced the algebra map version of `IsLocalRing.ResidueField.map`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
57/0 |
Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean,Mathlib/RingTheory/LocalRing/RingHom/Basic.lean |
2 |
2 |
['github-actions'] |
mattrobball assignee:mattrobball |
1-64667 1 day ago |
10-66919 10 days ago |
10-66969 10 days |
| 36673 |
kebekus author:kebekus |
feat: lemmas on coercions of functions with locally finite support |
Add lemmas on coercions of functions with locally finite support. Add a lemma allowing to write a function with finite support as a linear combination of singleton indicator functions.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
large-import
|
38/0 |
Mathlib/Topology/LocallyFinsupp.lean |
1 |
1 |
['github-actions'] |
nobody |
1-60722 1 day ago |
unknown |
0-0 0 seconds |
| 36473 |
AlexeyMilovanov author:AlexeyMilovanov |
feat(Computability.Primrec.List): add primrec proofs for drop, takeWhile, and dropWhile |
This PR adds missing proofs that several standard `List` operations are primitive recursive (Primrec), as well as a basic property of `tail` and `drop`.
Specifically, it introduces:
* `List.tail_iterate`: Applying `tail` to a list `n` times is equivalent to dropping `n` elements.
* `Primrec.list_drop`: `List.drop` is primitive recursive.
* `Primrec.list_take`: `List.take` is primitive recursive.
* `Primrec.list_takeWhile`: `List.takeWhile` is primitive recursive.
* `Primrec.list_dropWhile`: `List.dropWhile` is primitive recursive.
These are basic computability properties for lists that were currently missing from `Mathlib.Computability.Primrec.List`. All proofs use standard combinators and `of_eq`. |
t-computability
new-contributor
maintainer-merge
|
27/0 |
Mathlib/Computability/Primrec/List.lean,Mathlib/Data/List/TakeDrop.lean |
2 |
23 |
['AlexeyMilovanov', 'Komyyy', 'github-actions'] |
nobody |
1-54092 1 day ago |
1-57386 1 day ago |
4-77511 4 days |
| 36506 |
BryceT233 author:BryceT233 |
feat(Data/Finsupp): adds various computational lemmas for `Finsupp` |
This PR adds various computational lemmas related to operations of finitely supported functions. Alongside #35329, theses lemmas provide the necessary helpers to construct various equivalences for `MvPowerSeries`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
62/0 |
Mathlib/Data/Finsupp/Antidiagonal.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Option.lean |
3 |
1 |
['github-actions'] |
nobody |
1-51901 1 day ago |
1-51860 1 day ago |
4-85786 4 days |
| 36318 |
grunweg author:grunweg |
feat: delaborators for `MDifferentiable(On)` |
And make a precise list which elaborators are missing delaborators at the moment.
Continuation of #36230.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-meta
|
158/15 |
Mathlib/Geometry/Manifold/Notation.lean,MathlibTest/DifferentialGeometry/Notation/Delaborators.lean,MathlibTest/DifferentialGeometry/Notation/Sphere.lean |
3 |
1 |
['github-actions'] |
nobody |
1-44397 1 day ago |
7-10954 7 days ago |
7-12135 7 days |
| 36677 |
AlexeyMilovanov author:AlexeyMilovanov |
feat(Computability.Partrec): add computability of Nat.find |
This PR bridges `Partrec.rfind` with total unbounded search (`Nat.find`).
It adds:
* `Computable.find`: Proves that `x ↦ Nat.find (h_ex x)` is computable for a computable decidable predicate `P`.
* `Computable.rightInverse_of_surjective`: Proves that the right inverse of a computable surjective function is computable. |
t-computability
new-contributor
|
31/0 |
Mathlib/Computability/Partrec.lean |
1 |
5 |
['AlexeyMilovanov', 'github-actions', 'vlad902'] |
nobody |
1-42687 1 day ago |
1-47159 1 day ago |
1-47112 1 day |
| 36679 |
SnirBroshi author:SnirBroshi |
chore(Archive/Imo/Imo2019Q4): remove flexible linter exception + spring cleaning |
---
[](https://gitpod.io/from-referrer/)
|
IMO
easy
|
5/10 |
Archive/Imo/Imo2019Q4.lean |
1 |
1 |
['github-actions'] |
nobody |
1-41892 1 day ago |
1-41966 1 day ago |
1-41919 1 day |
| 36492 |
smmercuri author:smmercuri |
chore(NumberField/FinitePlaces): generalise `RingOfIntegers K` to `R` |
This PR slightly generalises the domain in `FinitePlaces.lean` from `RingOfIntegers K` to `R` such that `Module.Finite ℤ R` and `Module.Free ℤ R`. This enables these results to be applied equally to `O ℚ` and `ℤ` when `K = ℚ`
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
136/104 |
Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/NumberTheory/NumberField/ProductFormula.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
1-41096 1 day ago |
1-40823 1 day ago |
4-32057 4 days |
| 36137 |
smmercuri author:smmercuri |
feat: define pullbacks of `HeightOneSpectrum` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
maintainer-merge
|
8/0 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean |
1 |
3 |
['erdOne', 'github-actions'] |
erdOne assignee:erdOne |
1-40898 1 day ago |
12-39123 12 days ago |
12-39076 12 days |
| 36676 |
euprunin author:euprunin |
chore: replace long terminal `simp only […]`:s (≥3 lemmas) with bare `simp`:s |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Polynomial.map_comp`: unchanged 🎉
* `AlgebraicGeometry.IsClosedImmersion.Spec_iff`: 152 ms before, 107 ms after 🎉
* `nnnorm_pow_le`: unchanged 🎉
* `norm_pow_le`: unchanged 🎉
* `integral_sin`: unchanged 🎉
* `SimpleGraph.Subgraph.le_induce_union`: unchanged 🎉
* `ENNReal.iSup_add_iSup`: unchanged 🎉
* `ENat.iSup_add_iSup`: unchanged 🎉
* `ENat.mul_epow`: unchanged 🎉
* `EReal.abs_eq_zero_iff`: unchanged 🎉
* `Finset.disjoint_biUnion_left`: unchanged 🎉
* `List.splitOnP.go_acc`: unchanged 🎉
* `Multiset.count_map_eq_count`: unchanged 🎉
* `Nat.toDigitsCore_length`: unchanged 🎉
* `PartENat.pos_iff_one_le`: unchanged 🎉
* `Rat.intCast_div_self`: unchanged 🎉
* `Set.biUnion_empty_finset`: unchanged 🎉
* `Quot.subsingleton_iff`: unchanged 🎉
* `Equiv.Perm.support_closure_subset_union`: unchanged 🎉
* `Module.Basis.reindexRange_repr'`: unchanged 🎉
* `MeasureTheory.mul_le_addHaar_image_of_lt_det`: unchanged 🎉
* `MeasureTheory.memLp_finset_sum`: unchanged 🎉
* `MeasureTheory.exists_lt_lowerSemicontinuous_integral_lt`: 450 ms before, 404 ms after 🎉
* `BoundedContinuousFunction.toReal_lintegral_coe_eq_integral`: unchanged 🎉
* `nullMeasurableSet_region_between_oc`: unchanged 🎉
* `nullMeasurableSet_region_between_co`: unchanged 🎉
* `nullMeasurableSet_region_between_cc`: unchanged 🎉
* `MeasureTheory.integral_le_liminf_integral_of_forall_isOpen_measure_le_liminf_measure`: unchanged 🎉
* `padicValNat.pow_add_pow`: unchanged 🎉
* `Monotone.biUnion_Ico_Ioc_map_succ`: unchanged 🎉
* `ProbabilityTheory.condIndepSets_singleton_iff`: unchanged 🎉
* `ProbabilityTheory.sum_variance_truncation_le`: unchanged 🎉
* `IsLocalRing.CotangentSpace.span_image_eq_top_iff`: unchanged 🎉
* `galRestrict'_galLift`: 163 ms before, 48 ms after 🎉
* `Valuation.ne_zero_of_isUnit`: unchanged 🎉
* `hasProd_prod`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
38/38 |
Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/ENat/Lattice.lean,Mathlib/Data/ENat/Pow.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finset/Union.lean,Mathlib/Data/List/SplitOn.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Nat/Digits/Defs.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Rat/Lemmas.lean,Mathlib/Data/Set/Constructions.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/Portmanteau.lean,Mathlib/NumberTheory/Multiplicity.lean,Mathlib/Order/SuccPred/IntervalSucc.lean,Mathlib/Probability/Independence/Conditional.lean,Mathlib/Probability/StrongLaw.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean |
33 |
1 |
['github-actions'] |
nobody |
1-40474 1 day ago |
1-51618 1 day ago |
1-51571 1 day |
| 36645 |
euprunin author:euprunin |
chore: golf using `grind` and `simp` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `HomotopicalAlgebra.Cylinder.LeftHomotopy.weakEquivalence_iff`: unchanged 🎉
* `HomotopicalAlgebra.PathObject.RightHomotopy.weakEquivalence_iff`: unchanged 🎉
* `Finset.noncommProd_mulSingle`: unchanged 🎉
* `Finset.support_smulAntidiagonal_subset_smul`: unchanged 🎉
* `Function.updateFinset_updateFinset_of_subset`: unchanged 🎉
* `AlgebraicGeometry.PresheafedSpace.stalkMap.id`: 94 ms before, <30 ms after 🎉
* `IsUpperSet.total`: unchanged 🎉
* `MeasureTheory.IsStoppingTime.measurableSet_le_stopping_time`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
12/52 |
Mathlib/AlgebraicTopology/ModelCategory/LeftHomotopy.lean,Mathlib/AlgebraicTopology/ModelCategory/RightHomotopy.lean,Mathlib/Data/Finset/NoncommProd.lean,Mathlib/Data/Finset/SMulAntidiagonal.lean,Mathlib/Data/Finset/Update.lean,Mathlib/Geometry/RingedSpace/Stalks.lean,Mathlib/Order/UpperLower/Basic.lean,Mathlib/Probability/Process/Stopping.lean |
8 |
1 |
['github-actions'] |
nobody |
1-40366 1 day ago |
2-26690 2 days ago |
2-26643 2 days |
| 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`.
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge |
20/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 |
14 |
['euprunin', 'github-actions', 'mathlib-merge-conflicts', 'tb65536', 'vihdzp'] |
tb65536 assignee:tb65536 |
1-40315 1 day ago |
8-14055 8 days ago |
12-4035 12 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`.
---
[](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'] |
joelriou assignee:joelriou |
1-40289 1 day ago |
15-2913 15 days ago |
15-2866 15 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`.
---
[](https://gitpod.io/from-referrer/)
|
|
22/91 |
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 |
25 |
['euprunin', 'github-actions', 'leanprover-radar', 'robin-carlier', 'vihdzp'] |
robin-carlier assignee:robin-carlier |
1-40272 1 day ago |
8-59389 8 days ago |
11-46534 11 days |
| 36682 |
harahu author:harahu |
chore(Data): avoid lazy continuation in md lists |
We replace lazy continuation lines in lists with either:
- indented lines, to signify that the line is indeed a continuation line; or
- a newline, where the continuation line(s) were in fact intended to be disconnected from the list.
We do this because lazy continuation is a markdown footgun that one does well to avoid.
We also standardize indentation such that continuation lines now line up with the first line of the item they're continuing. This seems to be the solution enforced by markdown formatters, e.g. `mdformat`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
24/14 |
Mathlib/Data/Bracket.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/FlagRange.lean,Mathlib/Data/Finset/Density.lean,Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Data/Multiset/DershowitzManna.lean,Mathlib/Data/NNRat/Defs.lean,Mathlib/Data/PNat/Xgcd.lean,Mathlib/Data/Part.lean,Mathlib/Data/Stream/Defs.lean |
11 |
1 |
['github-actions'] |
nobody |
1-36351 1 day ago |
1-36428 1 day ago |
1-36381 1 day |
| 36684 |
euprunin author:euprunin |
chore: golf using `grind` and `simp` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `CategoryTheory.classifier_isSheaf`: unchanged 🎉
* `EuclideanGeometry.orthogonalProjection_vadd_eq_self`: unchanged 🎉
* `AEMeasurable.map_add₀`: unchanged 🎉
* `PrimitiveSpectrum.hull_inf`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
6/21 |
Mathlib/CategoryTheory/Sites/Closed.lean,Mathlib/Geometry/Euclidean/Projection.lean,Mathlib/MeasureTheory/Measure/AEMeasurable.lean,Mathlib/Topology/Order/HullKernel.lean |
4 |
1 |
['github-actions'] |
nobody |
1-35077 1 day ago |
1-35144 1 day ago |
1-35097 1 day |
| 36588 |
harahu author:harahu |
doc(CategoryTheory): fix typos |
Found by `PyCharm`'s code inspection tool.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
11/11 |
Mathlib/CategoryTheory/Adhesive/Basic.lean,Mathlib/CategoryTheory/Adhesive/Subobject.lean,Mathlib/CategoryTheory/Bicategory/Yoneda.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/GrpLimits.lean,Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean,Mathlib/CategoryTheory/RegularCategory/Basic.lean,Mathlib/CategoryTheory/Sites/Hypercover/One.lean,Mathlib/CategoryTheory/Sites/SheafOfTypes.lean,Mathlib/CategoryTheory/Triangulated/TStructure/TruncLEGT.lean |
9 |
1 |
['euprunin', 'github-actions'] |
nobody |
1-34266 1 day ago |
3-56588 3 days ago |
3-56541 3 days |
| 36640 |
euprunin author:euprunin |
chore: replace long terminal `rw […]`:s (≥5 lemmas) with bare `simp`:s |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `CategoryTheory.Functor.reflectsMonomorphisms.of_iso`: unchanged 🎉
* `CategoryTheory.Functor.reflectsEpimorphisms.of_iso`: unchanged 🎉
* `Orientation.oangle_add_right_smul_rotation_pi_div_two`: unchanged 🎉
* `Equiv.Perm.IsCycle.sign`: unchanged 🎉
* `sdiff_sdiff_right`: unchanged 🎉
* `dvd_coeff_zero_of_aeval_eq_prime_smul_of_minpoly_isEisensteinAt`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
maintainer-merge |
6/7 |
Mathlib/CategoryTheory/Functor/EpiMono.lean,Mathlib/Geometry/Euclidean/Angle/Oriented/RightAngle.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/RingTheory/Polynomial/Eisenstein/IsIntegral.lean |
5 |
4 |
['erdOne', 'euprunin', 'github-actions'] |
nobody |
1-33985 1 day ago |
2-43137 2 days ago |
2-43090 2 days |
| 36686 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `List.prod_map_ite`: unchanged 🎉
* `Path.Homotopy.trans_assoc_reparam`: 2938 ms before, 717 ms after 🎉
* `SimplexCategory.δ_comp_δ`: 522 ms before, 316 ms after 🎉
* `Finsupp.ext_iff'`: unchanged 🎉
* `Computation.bind_assoc`: unchanged 🎉
* `Set.piecewise_insert`: unchanged 🎉
* `ZMod.valMinAbs_mem_Ioc`: unchanged 🎉
* `Matrix.det_eq_of_forall_row_eq_smul_add_pred_aux`: 2141 ms before, 2004 ms after 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
10/51 |
Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Set/Piecewise.lean,Mathlib/Data/ZMod/ValMinAbs.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean |
8 |
1 |
['github-actions'] |
nobody |
1-33122 1 day ago |
1-33191 1 day ago |
1-33144 1 day |
| 36674 |
EtienneC30 author:EtienneC30 |
feat: telescopic product/sum over Fin |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-data
large-import
label:t-algebra$ |
42/4 |
Archive/Imo/Imo1987Q1.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/BigOperators/Intervals.lean,Mathlib/AlgebraicTopology/DoldKan/Decomposition.lean,Mathlib/Data/Fintype/BigOperators.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean |
6 |
3 |
['EtienneC30', 'eric-wieser', 'github-actions'] |
nobody |
1-32725 1 day ago |
1-32790 1 day ago |
1-58931 1 day |
| 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 |
5 |
['dupuisf', 'gasparattila', 'github-actions'] |
dupuisf assignee:dupuisf |
1-30063 1 day ago |
13-4704 13 days ago |
13-6610 13 days |
| 36685 |
wwylele author:wwylele |
refactor(Analysis/Lp): EuclideanSpace.single -> PiLp.single |
Resolving a TODO in the code. This also makes `PiLp.single` the simp-normal form, as opposite to `toLp _ (Pi.single _ _)` that was in the code.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
136/56 |
Mathlib/Analysis/CStarAlgebra/Matrix.lean,Mathlib/Analysis/InnerProductSpace/PiL2.lean,Mathlib/Analysis/Matrix/Spectrum.lean,Mathlib/Analysis/Normed/Lp/PiLp.lean |
4 |
1 |
['github-actions'] |
nobody |
1-29070 1 day ago |
1-32495 1 day ago |
1-33360 1 day |
| 36364 |
Bergschaf author:Bergschaf |
feat(Order/Sublocale): Better API for NucleusIsoSublocale |
I propose defining the conversion from Nuclei to Sublocales (and vice versa) directly in the `NucleusIsoSublocale` OrderIso. `Nucleus.toSublocale` and `Sublocale.toNucleus` will then just be abbrev's for the underlying OrderIso. This makes it a lot nicer to transition between the two Structures, especially when (infinite) infima and suprema are involved.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
46/33 |
Mathlib/Order/Sublocale.lean |
1 |
4 |
['Bergschaf', 'YaelDillies', 'github-actions'] |
nobody |
1-28137 1 day ago |
8-29985 8 days ago |
8-30382 8 days |
| 35323 |
martinwintermath author:martinwintermath |
feat(Geometry/Convex/Cone): Add lemmas for PointedCone.dual |
Add several useful lemmas for `PointedCone.dual` in preparation for duality theory for FG cones.
Some other changes are:
* renamed `dual_le_dual` to `dual_anti` and added partner lemma `dual_antitone`
* removed TODO comment since the stated lemma is not sufficient to prove the claim, an also this has now been proven and will become a PR in the near future.
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
maintainer-merge
|
37/6 |
Mathlib/Geometry/Convex/Cone/Dual.lean |
1 |
23 |
['YaelDillies', 'github-actions', 'martinwintermath'] |
YaelDillies assignee:YaelDillies |
1-27471 1 day ago |
11-61005 11 days ago |
17-60628 17 days |
| 36611 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Data/Nat/Choose/Multinomial): rename Multiset.multinomial |
Rename `Multiset.multinomial` to `Multiset.countPerms`.
See Zulip thread : [#mathlib4 > Multinomial coefficients](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Multinomial.20coefficients/with/576343071)
This will be used in #35830 to allow another, more natural, definition of `Multiset.multinomial`.
Co-authored with: @mariainesdff
---
[](https://gitpod.io/from-referrer/)
|
|
24/22 |
Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Data/Nat/Choose/Multinomial.lean |
2 |
14 |
['AntoineChambert-Loir', 'SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
1-25014 1 day ago |
1-25079 1 day ago |
3-22356 3 days |
| 36680 |
joelriou author:joelriou |
feat(CategoryTheory/Limits): action of a bifunctor on cokernels |
Let `c₁` (resp. `c₂`) be a cokernel cofork for a morphism `f₁ : X₁ ⟶ Y₁` in a category `C₁` (resp. `f₂ : X₂ ⟶ Y₂` in `C₂`). Given a bifunctor `F : C₁ ⥤ C₂ ⥤ C`, we construct a cokernel cofork with point `(F.obj c₁.pt).obj c₂.pt` for the obvious morphism `(F.obj X₁).obj Y₂ ⨿ (F.obj Y₁).obj X₂ ⟶ (F.obj Y₁).obj Y₂`, and show that it is a colimit when the cokernel of `f₁` is preserved by `F.obj c₁.pt` and the cokernel of `f₂` is perserved by `F.flip.obj X₁` and `F.flip.obj Y₁`.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
103/0 |
Mathlib.lean,Mathlib/CategoryTheory/Limits/Preserves/BifunctorCokernel.lean |
2 |
1 |
['github-actions'] |
nobody |
1-24740 1 day ago |
1-40799 1 day ago |
1-40803 1 day |
| 36609 |
JovanGerb author:JovanGerb |
chore(Order/Hom/Lattice): clean up `to_dual` use |
This PR cleans up the use of `to_dual` for `LatticeHom` after #36159, avoiding `to_dual existing` where this is not needed.
Another benefit of this PR is that `LatticeHom.toInfHom` now becomes reducible, just like `LatticeHom.toSupHom`, as a result of generating it with `extends`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
13/41 |
Mathlib/Order/Hom/Basic.lean,Mathlib/Order/Hom/Lattice.lean |
2 |
2 |
['github-actions', 'vihdzp'] |
nobody |
1-24563 1 day ago |
3-16353 3 days ago |
3-21743 3 days |
| 36574 |
Jun2M author:Jun2M |
feat(Order/Partition): add refinement order and set partition API |
This PR expands the API for `Partition s` (partitions of an element `s` in a complete lattice, and specifically partitions of a set).
**Main changes:**
* **Order instances**: Introduces a `PartialOrder (Partition s)` instance where partitions are ordered by refinement (`P ≤ Q` if every part of `P` is contained in a part of `Q`). Also adds an `OrderTop` instance where the top partition consists of the single part `s`.
* **Set partition API**: Adds a `Set` section with various useful lemmas for working with partitions of sets.
* **Induced relation**: Defines `Partition.Rel`, a transitive and symmetric binary relation (partial equivalence relation) induced by a partition of a set.
* **Representative functions**: Defines `Partition.IsRepFun`, a predicate characterizing when a function maps each element to a canonical representative in its equivalence class.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-order |
318/14 |
Mathlib/Order/Partition/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
1-23614 1 day ago |
1-75684 1 day ago |
3-80609 3 days |
| 36689 |
martinwintermath author:martinwintermath |
feat(Algebra/Module/Submodule): Submodules over a ring are modular elements in the lattice of submodules over a semiring |
Add lemmas that state that submodules over a sub-ring `S` of a semiring `R` are modular elements in the lattice of submodules over the semiring `R`, that is, they satisfy the modular law.
There are two new lemmas. Let `s` and `t` are `R`-submodules, and `p` is an `S`-submodule:
* `sup_inf_assoc_of_le_restrictScalars`: if `s ≤ p` then `s ⊔ (t ⊓ p) = (s ⊔ t) ⊓ p` (i.e., `p` is right-modular)
* `inf_sup_assoc_of_restrictScalars_le`: if `p ≤ s` then `s ⊓ (t ⊔ p) = (s ⊓ t) ⊔ p` (i.e., `p` is left-modular)
I am not aware of an implementation of right/left-modular elements, so I stated the lemmas without using the language of modular lattices.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
51/0 |
Mathlib/Algebra/Module/Submodule/RestrictScalars.lean |
1 |
1 |
['github-actions'] |
nobody |
1-23241 1 day ago |
1-23241 1 day ago |
1-23194 1 day |
| 36264 |
kebekus author:kebekus |
feat: introduce canonical factors, a.k.a. "Blaschke factors", as used in complex analysis |
Introduce canonical factors, also known as "Blaschke factors", used in complex analysis when discussing meromorphic functions defined on spheres.
This material is used in [Project VD](https://github.com/kebekus/ProjectVD), formalizing Value Distribution Theory for meromorphic functions on the complex plane.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
172/0 |
Mathlib.lean,Mathlib/Analysis/Complex/CanonicalDecomposition.lean |
2 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
1-18377 1 day ago |
10-40537 10 days ago |
10-40490 10 days |
| 36489 |
yoh-tanimoto author:yoh-tanimoto |
feat(Order/Partition/Finpartition): add `toSubtype` constructor |
add `Finpartition` constructor in `Subtype pr` for `pr : Set X → Prop` such that `pr` is closed
under intersection and union and `pr ⊥` holds from a `P : Finpartition s` with explicit assumptions
that `hs: pr s` and `pr p` for each part `p`. In other words, this obtains `Finpartition ⟨s, hs⟩` from `P`.
This splits from #26160. |
t-order |
113/0 |
Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/Finset/Preimage.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/Partition/Finpartition.lean |
5 |
11 |
['EtienneC30', 'github-actions', 'yoh-tanimoto'] |
nobody |
1-17189 1 day ago |
1-16953 1 day ago |
1-17515 1 day |
| 36693 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Equiv.Perm.ofSubtype_swap_eq`: unchanged 🎉
* `Filter.hasBasis_biInf_of_directed'`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
2/15 |
Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Order/Filter/Bases/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
1-16201 1 day ago |
1-16267 1 day ago |
1-16220 1 day |
| 36653 |
Ljon4ik4 author:Ljon4ik4 |
feat: LieDerivations of Lie Algebras obtained by BaseChange |
Let $R$ be a commutative ring. Given a commutative $R$-algebra $A$ and an $R$-Lie algebra $L$, there is a natural Lie algebra structure on $A\otimes_R L$. In this file we add the facts that derivations of $A$, as well as Lie Derivations of $L$ induce Lie derivations of $A\otimes_R L$. The corresponding assignments are Lie algebra homomorphisms.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
131/0 |
Mathlib.lean,Mathlib/Algebra/Lie/Derivation/BaseChange.lean |
2 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
1-14560 1 day ago |
1-14589 1 day ago |
1-83833 1 day |
| 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/)
|
|
15/14 |
docs/undergrad.yaml |
1 |
5 |
['SnirBroshi', 'github-actions', 'robin-carlier', 'stepan2698-cpu'] |
robin-carlier assignee:robin-carlier |
1-14435 1 day ago |
1-14435 1 day ago |
11-11770 11 days |
| 34396 |
dupuisf author:dupuisf |
feat: notation for `Ring.inverse` |
This PR adds the notation `x⁻¹ʳ` for `Ring.inverse x`, scoped to the namespace `Ring`, and a few extra API lemmas about it.
See the [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/LawfulInv/near/569123171) about this.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
149/87 |
Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/GroupWithZero/Commute.lean,Mathlib/Algebra/GroupWithZero/Invertible.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/GroupWithZero/Units/Lemmas.lean,Mathlib/Algebra/Ring/Invertible.lean,Mathlib/Algebra/Star/Basic.lean,Mathlib/Analysis/Analytic/Constructions.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Unital.lean,Mathlib/Analysis/Calculus/FDeriv/Mul.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/Normed/Algebra/GelfandFormula.lean,Mathlib/Analysis/Normed/Ring/Units.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean,Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean,Mathlib/NumberTheory/MulChar/Basic.lean,Mathlib/RepresentationTheory/Maschke.lean,Mathlib/RingTheory/Henselian.lean,Mathlib/Topology/Algebra/Module/Equiv.lean |
20 |
1 |
['github-actions'] |
nobody |
1-13813 1 day ago |
50-71871 50 days ago |
0-1 1 second |
| 36202 |
vihdzp author:vihdzp |
feat: more theorems on the Cantor normal form |
We also remove some redundant assumptions.
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
67/58 |
Mathlib/SetTheory/Ordinal/CantorNormalForm.lean |
1 |
15 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
1-10120 1 day ago |
1-74973 1 day ago |
10-51549 10 days |
| 36584 |
vihdzp author:vihdzp |
feat: lemmas on ordinal `Nat.cast` |
Downstreamed from the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
30/11 |
Mathlib/SetTheory/Cardinal/Ordinal.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
3 |
5 |
['SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
b-mehta assignee:b-mehta |
1-8645 1 day ago |
1-8708 1 day ago |
3-61783 3 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 |
14/9 |
Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean |
2 |
9 |
['b-mehta', 'github-actions', 'leanprover-radar', 'vihdzp'] |
b-mehta assignee:b-mehta |
1-8458 1 day ago |
1-8458 1 day ago |
42-959 42 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
maintainer-merge
|
91/0 |
Mathlib.lean,Mathlib/Data/Nat/Factorization/Divisors.lean |
2 |
24 |
['SnirBroshi', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'jcommelin', 'joneugster', 'mathlib-bors', 'plp127'] |
joneugster assignee:joneugster |
1-7910 1 day ago |
19-55553 19 days ago |
20-16617 20 days |
| 36702 |
vihdzp author:vihdzp |
feat: cofinality is idempotent |
We prove this result for `Order.cof` and deduce the `Ordinal.cof` version from it.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
|
15/6 |
Mathlib/SetTheory/Cardinal/Cofinality.lean |
1 |
1 |
['github-actions'] |
nobody |
1-3411 1 day ago |
1-3495 1 day ago |
1-3448 1 day |
| 29251 |
yoh-tanimoto author:yoh-tanimoto |
feat(Analysis/InnerProductSpace/): define standard subspaces of a complex Hilbert space |
define standard subspaces of a complex Hilbert space: a standard subspace `S` of `H` is a closed real subspace `S` such that `S ⊓ i S = ⊥` and `S ⊔ i S = ⊤`.
prove that the symplectic complement of `S` is again a standard subspace and the double symplectic complement is itself.
motivation: one can define a closable operator `x + i y ↦ x - i y` and develop an analogue of the Tomita-Takesaki
modular theory for von Neumann algebras. By considering inclusions of standard subspaces, one can
obtain unitary representations of various Lie groups.
https://ems.press/content/serial-article-files/48171
`#min_imports` does not give a correct set of imports.
- [x] depends on: #29230 for `Lattice` `CompleteLattice`
- [x] depends on: #29241 for the definition of `orthogonal`
- [x] depends on: #29243 for `sup_orthogonal`
- [x] depends on: #29235 for `mapEquiv` |
t-analysis |
243/0 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/StandardSubspace.lean,Mathlib/Topology/Algebra/Module/Equiv.lean |
3 |
36 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'yoh-tanimoto'] |
j-loreaux assignee:j-loreaux |
1-73 1 day ago |
1-134 1 day ago |
5-83940 5 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'] |
Komyyy assignee:Komyyy |
0-85222 23 hours ago |
27-18061 27 days ago |
36-74074 36 days |
| 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/)
|
t-algebra label:t-algebra$ |
22/27 |
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 |
9 |
['github-actions', 'mathlib-merge-conflicts', 'vihdzp', 'xgenereux'] |
dagurtomas assignee:dagurtomas |
0-85216 23 hours ago |
8-28106 8 days ago |
14-4410 14 days |
| 36285 |
grunweg author:grunweg |
feat: torsion of an affine connection |
We define the torsion tensor of an affine connection, i.e. a covariant derivative on the tangent bundle `TM` of some manifold `M`.
From the path towards the the Levi-Civita connection and Riemannian geometry.
Co-authored-by: Heather Macbeth [25316162+hrmacbeth@users.noreply.github.com](mailto:25316162+hrmacbeth@users.noreply.github.com)
Co-authored-by: Patrick Massot
---
- [x] depends on: #36279
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
171/5 |
Mathlib.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Torsion.lean,Mathlib/Geometry/Manifold/VectorField/LieBracket.lean |
3 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
ocfnash assignee:ocfnash |
0-85215 23 hours ago |
10-26602 10 days ago |
0-224 3 minutes |
| 36362 |
bryangingechen author:bryangingechen |
ci: only generate auto-merge token if the label is present |
Similar to #35958, we don't need to generate this token if the steps that use it don't need to run. This was causing a build failure for the dependabot PR: #36358
I also cleanup a TODO from #29726.
---
[](https://gitpod.io/from-referrer/)
|
CI |
12/21 |
.github/workflows/build_template.yml |
1 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
0-85214 23 hours ago |
5-63903 5 days ago |
8-34744 8 days |
| 36421 |
ROTARTSI82 author:ROTARTSI82 |
feat(RingTheory/IsAdjoinRoot): add mkOfAdjoinEqTop' |
Alternative hypothesis to existing theorem: prove the result from a `Module.Free `hypothesis instead of `IsIntegrallyClosed`. If `α` generates `S` as an algebra, then `S` is given by adjoining a root of `minpoly R α`.
---
Hello, we are the Algebraic Geometry group from the UW Math AI lab, and this is our first PR! This definition of `mkOfAdjoinEqTop'` generalizes the existing `mkOfAdjoinEqTop` and shows the result from `Module.Free` instead of `IsIntegrallyClosed`. It is used in future results that we would like to upstream at https://github.com/uw-math-ai/monogenic-extensions, which is a project to formalize lemmas 3.1 and 3.2 from https://arxiv.org/abs/2503.07846.
Co-authored-by: George Peykanu
Co-authored-by: Bryan Boehnke
Co-authored-by: Bianca Viray <67076332+b-viray@users.noreply.github.com>
-->
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
|
57/0 |
Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/RingTheory/IsAdjoinRoot.lean |
2 |
3 |
['ROTARTSI82', 'github-actions'] |
dupuisf assignee:dupuisf |
0-85213 23 hours ago |
7-292 7 days ago |
7-245 7 days |
| 36446 |
Vierkantor author:Vierkantor |
feat(Tactic/Linter): weekly lint for Verso syntax in docstrings |
This PR defines the linter option `linter.style.docStringVerso`, which tries to parse docstrings as Verso documents (while skipping the elaboration part), and reports any parse errors that may occur. This should help the eventual transition to Verso-based docstrings by already collecting examples of docstrings will need to be updated. Verso is not perfectly backward-compatible with Markdown, and so it doesn't make sense to enable this for all CI runs. Instead, I added the linter to the weekly report (that also contains the suggestions for replacing `tac; grind` with `grind`).
Since this linter only checks syntax, not semantics, of Verso it won't detect issues that we also need to fix before enabling Verso in Mathlib, like:
* `#`-headings being wrongly nested
* code snippets referring to non-existent declarations
* broken code blocks
* code snippets not defining which language / parser to use
etc. I argue it is better to incrementally tackle the syntax, since this would also directly improve the quality of our current Markdown rendering.
---
[](https://gitpod.io/from-referrer/)
|
t-linter
documentation
|
68/1 |
Mathlib/Init.lean,Mathlib/Tactic/Linter/DocString.lean |
2 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
0-85212 23 hours ago |
6-29051 6 days ago |
6-29004 6 days |
| 36447 |
sharky564 author:sharky564 |
feat(Analysis/Topology): Generalize Riesz' theorem to locally compact… |
… T2 topological vector spaces
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
large-import
|
130/67 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean |
2 |
5 |
['CoolRmal', 'github-actions', 'sharky564'] |
j-loreaux assignee:j-loreaux |
0-85211 23 hours ago |
6-27559 6 days ago |
6-27541 6 days |
| 36457 |
joelriou author:joelriou |
feat(Algebra/Category/ModuleCat/Presheaf): the pushforward by a functor is monoidal |
If `F : C ⥤ D` is a functor and `R : Dᵒᵖ ⥤ CommRingCat` is a presheaf of commutative rings, then the pushforward functor from the category of presheaves of modules on `R` to the category of presheaves of modules on `F.op ⋙ R` is monoidal.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
t-algebra
maintainer-merge
label:t-algebra$ |
50/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Pushforward.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/PushforwardZeroMonoidal.lean |
3 |
5 |
['chrisflav', 'github-actions', 'joelriou'] |
dagurtomas assignee:dagurtomas |
0-85210 23 hours ago |
4-59884 4 days ago |
5-58201 5 days |
| 36463 |
AlexeyMilovanov author:AlexeyMilovanov |
feat(Data.Nat.Bits): add Nat.ofBits and prove bits_injective |
This PR introduces `Nat.ofBitsList` for `List Bool` and provides the missing proofs that the standard binary representation `Nat.bits` is injective (`Nat.bits_injective`) and possesses a right inverse for normalized lists (`Nat.bits_ofBitsList`).
`ofBitsList` is implemented as an `abbrev` using `foldr` (keeping it transparent to tactics like `simp`). It serves as the exact left inverse to `bits`. Furthermore, `bits_ofBitsList` establishes that `bits` and `ofBitsList` form a bijection between `ℕ` and the set of lists with no trailing `false` values.
This avoids the name collision with `Nat.ofBits` from `Batteries` and aligns with previous Zulip discussions (see [here](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/PR.20.2335857.3A.20Bijective.20Base-2.20Numeration)) regarding the utility of having a complete list-based API for `Nat.bits` in the library.
CC: @linesthatinterlace
- Adds `Nat.ofBitsList` (as an `abbrev`)
- Adds `Nat.ofBitsList_bits` (left inverse property)
- Adds `Nat.bits_injective`
- Adds `Nat.ofBitsList_eq_zero_iff` (helper lemma for lists without trailing zeros)
- Adds `Nat.bits_ofBitsList` (right inverse property) |
t-data
new-contributor
|
68/1 |
Mathlib/Data/Nat/Bits.lean |
1 |
3 |
['github-actions', 'linesthatinterlace'] |
joneugster assignee:joneugster |
0-85208 23 hours ago |
6-569 6 days ago |
6-622 6 days |
| 36467 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2): `fromRel` & `ToRel` order isomorphism |
This obsoletes the existing `fromRel` order embedding, but adds an order embedding for `ToRel` since it can avoid `Subtype` which makes it more useful (e.g. it shows `ToRel` is injective).
---
[](https://gitpod.io/from-referrer/)
|
t-data |
35/10 |
Mathlib/Data/Sym/Sym2.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
0-85208 23 hours ago |
5-73482 5 days ago |
5-73435 5 days |
| 36495 |
AlexKontorovich author:AlexKontorovich |
chore(Finset/NatDivisors): refactor `card_divisors_mul` and `sum_divisors_mul` to not rely on `ArithmeticFunction` |
`Nat.Coprime.card_divisors_mul` and `Nat.Coprime.sum_divisors_mul` are moved to not rely on `ArithmeticFunction`. See zulip discussion here: [#mathlib4 > Library design question, e.g.`Nat.Coprime.card_divisors_mul` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Library.20design.20question.2C.20e.2Eg.2E.60Nat.2ECoprime.2Ecard_divisors_mul.60/near/577769899)
Co-authored-by: Ziyan Wei and Aayush Rajasekaran
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-number-theory
t-algebra
label:t-algebra$ |
45/14 |
Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Data/Finset/NatDivisors.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean |
3 |
2 |
['AlexKontorovich', 'github-actions'] |
alreadydone assignee:alreadydone |
0-85207 23 hours ago |
5-18250 5 days ago |
5-18203 5 days |
| 36544 |
xroblot author:xroblot |
feat(RingTheory/Ideal): restriction maps on decomposition and inertia groups in a Galois tower |
Adds a new file `Mathlib/RingTheory/Ideal/Galois.lean` with results on the action of `Gal(L/K)` on ideals of a ring `B ⊆ L` for a Galois subextension `F/K` of `L/K`. The main results are the surjectivity and kernel descriptions of the natural maps from the decomposition (resp. inertia) group of `P` in `Gal(L/K)` to the decomposition (resp. inertia) group of `p` in `Gal(F/K)`, induced by restriction.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
223/0 |
Mathlib.lean,Mathlib/FieldTheory/Normal/Defs.lean,Mathlib/RingTheory/Ideal/Galois.lean,Mathlib/RingTheory/Invariant/Basic.lean |
4 |
1 |
['github-actions'] |
erdOne assignee:erdOne |
0-85206 23 hours ago |
4-24910 4 days ago |
4-24863 4 days |
| 36162 |
SnirBroshi author:SnirBroshi |
chore(Data/Finsupp/Defs): make `Finsupp.onFinset` computable |
Delete the `noncomputable section` to let every `def` choose whether it's computable, and replace the use of `Classical.decEq` in `onFinset_support` and `onFinset` with a `[DecidableEq M]` assumption.
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Finsupp.20noncomputability/with/576412101)
[](https://gitpod.io/from-referrer/)
|
t-data |
43/33 |
Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Data/Finsupp/Basic.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Finsupp/ToDFinsupp.lean,Mathlib/Data/Sym/Sym2/Finsupp.lean,Mathlib/FieldTheory/PurelyInseparable/Tower.lean,Mathlib/LinearAlgebra/Finsupp/LinearCombination.lean |
8 |
2 |
['SnirBroshi', 'github-actions'] |
joneugster assignee:joneugster |
0-84838 23 hours ago |
12-1264 12 days ago |
12-2960 12 days |
| 36513 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory/Smooth): composition of formally smooth ring hom |
Add the lemma that composition of formally smooth ring hom is formally smooth.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
8/4 |
Mathlib/RingTheory/RingHom/Smooth.lean |
1 |
1 |
['github-actions'] |
nobody |
0-81679 22 hours ago |
2-56369 2 days ago |
2-56349 2 days |
| 36705 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walks/Operations): permutations of support and cleaning up append/concat |
---
The cleaning-up follows the feedback from https://github.com/leanprover-community/mathlib4/pull/35630#issuecomment-4035207900 and https://github.com/leanprover-community/mathlib4/pull/35631#discussion_r2936736735
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
38/21 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Subwalks.lean |
7 |
1 |
['github-actions'] |
nobody |
0-80330 22 hours ago |
0-80405 22 hours ago |
0-80358 22 hours |
| 36015 |
mcdoll author:mcdoll |
chore(Analysis/SchwartzMap): unify style for `mkCLM` uses |
Avoid using `refine` for definitions in favour of `where finally` and unify the indentation.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
238/208 |
Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Deriv.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Fourier.lean |
3 |
8 |
['github-actions', 'j-loreaux', 'mcdoll'] |
j-loreaux assignee:j-loreaux |
0-79109 21 hours ago |
0-79014 21 hours ago |
8-58427 8 days |
| 36665 |
NoahW314 author:NoahW314 |
feat: add indiscrete topology lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
34/0 |
Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Monoid.lean,Mathlib/Topology/Order.lean |
3 |
6 |
['NoahW314', 'eric-wieser', 'github-actions'] |
nobody |
0-77669 21 hours ago |
1-71687 1 day ago |
1-71640 1 day |
| 36629 |
SnirBroshi author:SnirBroshi |
chore(Algebra/Order/Monoid/Unbundled/Basic): replace `mul_left_cancel''` with an `IsLeftCancelMul` instance |
---
[`mul_left_cancel`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Defs.html#mul_left_cancel)
[`mul_left_cancel''`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Monoid/Unbundled/Basic.html#mul_left_cancel'')
[`mul_right_cancel`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Group/Defs.html#mul_right_cancel)
[`mul_right_cancel''`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Monoid/Unbundled/Basic.html#mul_right_cancel'')
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
16/13 |
Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-76921 21 hours ago |
2-62440 2 days ago |
2-62393 2 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
|
51/79 |
Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/Logic/Equiv/Fintype.lean |
2 |
26 |
['LLaurance', 'cameronfreer', 'github-actions', 'mathlib-merge-conflicts', 'tb65536'] |
mattrobball assignee:mattrobball |
0-76575 21 hours ago |
9-17366 9 days ago |
30-38293 30 days |
| 36598 |
CoolRmal author:CoolRmal |
feat: f is lowersemicontinuous iff -f is uppersemicontinuous |
Proved that a function `f` is lowersemicontinuous iff `-f` is uppersemicontinuous. Also changed the hypothesis of `upperSemicontinuousOn_iff_preimage_Iio` from LinearOrder to Preorder.
Used in the proof of conditional Jensen's inequality for concave functions.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
73/3 |
Mathlib/Algebra/Notation/Pi/Defs.lean,Mathlib/Topology/Semicontinuity/Basic.lean |
2 |
9 |
['CoolRmal', 'github-actions', 'j-loreaux', 'themathqueen'] |
nobody |
0-75492 20 hours ago |
2-48102 2 days ago |
2-78314 2 days |
| 36672 |
Komyyy author:Komyyy |
refactor(Data/Fintype/Order): `g (⨆ i, f i) = ⨆ i, g (f i)` holds when the codomain isn't linear |
This was found while reviewing #35822.
---
[](https://gitpod.io/from-referrer/)
|
t-order
easy
|
1/1 |
Mathlib/Data/Fintype/Order.lean |
1 |
1 |
['github-actions'] |
nobody |
0-74325 20 hours ago |
1-62725 1 day ago |
1-62678 1 day |
| 36681 |
SnirBroshi author:SnirBroshi |
feat(SetTheory/Ordinal/Principal): the smallest nonzero ordinal that add-commutes with a given ordinal |
For any ordinal `o`, `(ω ^ log ω o) + o % (ω ^ log ω o)` is the smallest nonzero ordinal that add-commutes with `o`.
This value can also be calculated by considering the CNF of `o` with base `ω` and changing the first
coefficient to `1`.
---
The proofs involve annoying algebraic manipulations (to annihilate the tails as explained below), golfs welcome.
Details on the math involved
Think about the Cantor-normal form:
#36664 shows `AddCommute o₁ o₂ ↔ ∃ (o : Ordinal) (n₁ n₂ : ℕ), o * n₁ = o₁ ∧ o * n₂ = o₂`.
If you write a given ordinal `o` in CNF in base `ω` as `(ω ^ e₀) * c₀ + (ω ^ e₁) * c₁ + ...` then `o * n = (ω ^ e₀) * (c₀ * n) + (ω ^ e₁) * c₁ + ...`. Notice that only the leading term got multiplied by `n`, because the earlier copies of `o` annihilate all the tails except for the last one (e.g. `o * 2 = o + o = (ω ^ e₀) * c₀ + tail + (ω ^ e₀) * c₀ + tail = (ω ^ e₀) * c₀ + (ω ^ e₀) * c₀ + tail = (ω ^ e₀) * (c₀ * 2) + tail`).
So given the characterization of `AddCommute`, if we keep the tail and remove the `* c₀` from the leading coefficient (effectively calculating `o / c₀`, we'll get the smallest ordinal that we can multiply by a natural number to get `o`.
`o / (o / (ω ^ log ω o))` should also give the same smallest ordinal (and `o - (ω ^ log ω o) * (o / (ω ^ log ω o) - 1)`), but I chose the expression that fits the existing CNF definitions. Maybe a future PR can show they're all equal.
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
90/0 |
Mathlib.lean,Mathlib/SetTheory/Ordinal/ArithmeticAnalysis.lean,Mathlib/SetTheory/Ordinal/Principal.lean |
3 |
4 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
0-74209 20 hours ago |
1-39311 1 day ago |
1-39264 1 day |
| 36664 |
SnirBroshi author:SnirBroshi |
feat(SetTheory/Ordinal/Arithmetic): characterize when ordinal addition commutes |
---
The proof is from ["Cardinal and Ordinal Numbers"](https://en.wikipedia.org/wiki/Cardinal_and_Ordinal_Numbers).
A similar fact for multiplication is mentioned on [Wikipedia](https://en.wikipedia.org/wiki/Ordinal_arithmetic).
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
19/0 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean |
1 |
20 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] |
vihdzp assignee:vihdzp |
0-74044 20 hours ago |
0-78769 21 hours ago |
1-47437 1 day |
| 36715 |
vihdzp author:vihdzp |
feat: `IsCofinal s` implies `IsCofinal (f '' s)` |
---
[](https://gitpod.io/from-referrer/)
|
|
26/15 |
Mathlib/Order/Cofinal.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean |
2 |
1 |
['github-actions'] |
nobody |
0-70536 19 hours ago |
0-70608 19 hours ago |
0-70561 19 hours |
| 36386 |
SnkXyx author:SnkXyx |
feat(Algebra/MvPolynomial/Degrees): add some lemmas about `degreeOf` |
These lemmas are used in #36103
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
84/0 |
Mathlib/Algebra/MvPolynomial/Degrees.lean |
1 |
3 |
['Hagb', 'github-actions'] |
dagurtomas assignee:dagurtomas |
0-68951 19 hours ago |
7-79223 7 days ago |
7-79176 7 days |
| 36712 |
thorimur author:thorimur |
feat: `runSkimmer.sh` for applying interactive suggestions |
This PR introduces a script `scripts/runSkimmer.sh` which runs `lake build Mathlib:applyCurrentTryThis` via a minimal "side package" that depends on (only) both skimmer and Mathlib. The command `scripts/runSkimmer.sh` will apply all interactive suggestions (try this suggestions, hints) in Mathlib.
Because it uses a local dependency, it can use the oleans obtained from a top-level `lake exe cache get` or `lake build` without needing to modify mathlib's lakefile and rebuild mathlib. The facet safely builds any missing oleans itself.
This is still very experimental (and says so!), and hopefully can afford to be so by living entirely in `scripts/`.
This script is configurable to be copy-pasted into other repos, after changing the config variables to point to the appropriate new targets. `runSkimmer.sh --init` then sets up the side package. (This PR already commits the result of `runSkimmer.sh --init`, and it does not need to be run again for Mathlib.)
Technical note on updating the side package:
Currently, running the script also runs `lake update` in the side package (only) (but does not fetch the cache). This may update the `lake-manifest.json` and `lean-toolchain` in the side package (here, in `scripts/SideSkimmer`). To prevent this from mixing with intentional refactors performed by skimmer, the `.gitignore` in that side package ignores the `lake-manifest.json` and the `lean-toolchain`.
The alternative would be to use `./scripts/runSkimmer.sh --lake-update` in the workflows to simply keep the side package up to date instead of ignoring the side manifest and toolchain, but `lake update` in the side package is not very costly.
Technical question on cache management:
`lake update` attempts to get the mathlib cache (whether or not any substantive update actually happened) unless `MATHLIB_NO_CACHE_ON_UPDATE=1`. Currently this script sets `MATHLIB_NO_CACHE_ON_UPDATE=1` for mathlib and just advises getting the cache beforehand.
But notice the following: even though mathlib is `require`d from a local path, mathlib *dependencies* are duplicated into `scripts/SideSkimmer/.lake/packages` and rebuilt there. This isn't such a big deal for mathlib's dependencies, but it might be a big deal for projects *depending* on mathlib. So, we only set `MATHLIB_NO_CACHE_ON_UPDATE=1` if we're targeting mathlib. But is there a better way?
The usage is as follows:
```
Usage: runSkimmer.sh [[--no-update] [--on [tgts...]] | --lake-update | --init | -h | --help]
Options:
[no arguments] Run `lake update` in `SideSkimmer`, then run `lake build :applyCurrentTryThis` on targets configured in `runSkimmer.sh`. (When refactoring mathlib, does not get mathlib's cache.)
--on [tgts...] Run `lake update` in `SideSkimmer`, then run `lake build :applyCurrentTryThis` for `tgt` in the supplied `tgts`. Each `tgt` may be lake target syntax for the current package or a library or module. (When refactoring mathlib, does not get mathlib's cache.)
--no-update Only run `lake build :applyCurrentTryThis`, without first running `lake update` in `SideSkimmer`. Applies both the default targets and those supplied with `--on`.
--init Set up the `SideSkimmer` side package. This only needs to be done when first introducing `runSkimmer.sh` to a new repo.
--lake-update Only run `lake update -v` in `SideSkimmer`, and if refactoring mathlib, do not get mathlib's cache while doing so.
```
Disclosure: Proofreading services and reminders of bash syntax/conventions were provided by Claude Opus 4.6, but I'm fully to blame for the design and keystrokes. :)
---
[](https://gitpod.io/from-referrer/)
|
CI |
173/0 |
scripts/README.md,scripts/SideSkimmer/.gitignore,scripts/SideSkimmer/lakefile.lean,scripts/runSkimmer.sh |
4 |
1 |
['github-actions'] |
nobody |
0-64891 18 hours ago |
0-64661 17 hours ago |
0-71170 19 hours |
| 36643 |
Thmoas-Guan author:Thmoas-Guan |
feat(Homology): interaction of projective and injective dimension and SES |
In this PR, we directly implemented the relation of `projectiveDimension` and `injectiveDimension` in SES.
---
[](https://gitpod.io/from-referrer/)
|
|
171/0 |
Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean,Mathlib/Data/ENat/Basic.lean |
3 |
1 |
['github-actions'] |
nobody |
0-63590 17 hours ago |
2-35675 2 days ago |
2-35628 2 days |
| 36718 |
EtienneC30 author:EtienneC30 |
feat: processes with independent increments |
Define a predicate stating that a stochastic process has independent increments. Prove an equivalent definition using sequences instead of `Fin`. Prove some basic invariance properties.
Co-authored-by: @jvanwinden
---
[](https://gitpod.io/from-referrer/)
|
brownian
t-measure-probability
file-removed
|
131/3 |
Mathlib.lean,Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Independence.lean,Mathlib/Probability/Independence/BoundedContinuousFunction.lean,Mathlib/Probability/Independence/Process/Basic.lean,Mathlib/Probability/Independence/Process/HasIndepIncrements.lean |
5 |
2 |
['EtienneC30', 'github-actions'] |
nobody |
0-59436 16 hours ago |
0-59503 16 hours ago |
0-59954 16 hours |
| 36353 |
smmercuri author:smmercuri |
feat(NumberField/InfinitePlace/Ramification): add cardinality results for (un)ramified places over |
The number of unramified/ramified places over a fixed infinite place `v` is equal/twice the number of unmixed/mixed complex embeddings over `v.embedding`
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
maintainer-merge
|
137/34 |
Mathlib/Data/Set/Card.lean,Mathlib/Logic/Basic.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean |
4 |
14 |
['MichaelStollBayreuth', 'github-actions', 'smmercuri', 'tb65536'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-56543 15 hours ago |
1-41959 1 day ago |
6-53008 6 days |
| 36697 |
jano-wol author:jano-wol |
feat: semisimple eigenspace API and JC decomposition through ad |
Semisimple eigenspace API and JC decomposition through ad
---
PR introduces the proof of the following results:
- Eigenspace/Semisimple.lean: `IsFinitelySemisimple.iSup_eigenspace_eq_top`, `IsFinitelySemisimple.eq_zero_of_forall_eigenvalue_eq_zero`.
- Eigenspace/Minpoly.lean: `aeval_apply_of_mem_eigenspace` generalizing
`aeval_apply_of_hasEigenvector` (drops `x ≠ 0`), `eval_zero_of_aeval_apply_eq_zero`.
- AdjointAction/JordanChevalley.lean (new): `ad_semisimplePart_mem_adjoin`, `ad_nilpotentPart_mem_adjoin`, `eval_zero_of_aeval_ad_eq`.
These results are building blocks for a formalization of Cartan's criterion for semisimplicity.
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
124/4 |
Mathlib.lean,Mathlib/Algebra/Lie/AdjointAction/JordanChevalley.lean,Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean,Mathlib/LinearAlgebra/Eigenspace/Semisimple.lean |
4 |
3 |
['github-actions', 'mathlib-bors'] |
ocfnash assignee:ocfnash |
0-54699 15 hours ago |
1-2049 1 day ago |
1-2580 1 day |
| 36439 |
xgenereux author:xgenereux |
feat(Algebra/Adjoin): CoeT instances for Algebra.adjoin on singletons |
Is it a common occurrence that I need to consider an element `x` or some polynomial evaluated in `x`, `p.eval x` as an element of `Algebra.adjoin R {x}`.
This makes it so that we can write
- `(x : adjoin R {x})` instead of `⟨x, self_mem_adjoin_singleton A x⟩`
- `(p.eval x : adjoin R {x})` instead of `⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩`
This is particularly useful when we need to write the type anyways, so that we need not to write `(⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩ : adjoin R {x})` anymore.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
|
9/3 |
Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
0-52928 14 hours ago |
6-41530 6 days ago |
6-41483 6 days |
| 34487 |
martinwintermath author:martinwintermath |
feat(LinearAlgebra/SesquilinearForm/Basic): add instances for SeparatingLeft, SeparatingRight and Nondegenerate |
Add typeclass instances for `Fact B.SeparatingLeft`, `Fact B.SeparatingRight`, `Fact B.Nondegenerate`:
* inferring `Fact B.flip.SeparatingLeft` from `Fact B.SeparatingRight` and vice versa
* inferring `Fact B.SeparatingLeft` and `Fact B.SeparatingRight` from `Fact B.Nondegenerate`
* inferring `Fact B.SeparatingLeft` and `Fact B.Nondegenerate` for `.id` and `Dual.eval`
* inferring `Fact B.Nondegenerate` from `B.IsPerfPair`
I also updated `PointedCone.dual_univ` to demonstrate the usefulness of these additions. Note that I needed to add an import to `Cone/Dual.lean` which somehow imports cardinals. So I needed to remove cardinals from `assert_not_exists`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
large-import
label:t-algebra$ |
87/16 |
Mathlib/Geometry/Convex/Cone/Dual.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean,Mathlib/LinearAlgebra/PerfectPairing/Basic.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean |
4 |
3 |
['github-actions', 'martinwintermath', 'mathlib4-merge-conflict-bot'] |
nobody |
0-52491 14 hours ago |
1-8223 1 day ago |
1-8176 1 day |
| 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'] |
kmill assignee:kmill |
0-51713 14 hours ago |
28-45688 28 days ago |
28-45641 28 days |
| 33375 |
kex-y author:kex-y |
feat(Probability): Local and stable properties |
---
Defines local and stable properties which is useful for local martingales.
- [x] depends on: #33371
- [x] depends on: #33374
- [x] depends on: #33372
Co-authored-by: @RemyDegenne
[](https://gitpod.io/from-referrer/)
|
brownian
t-measure-probability
|
390/0 |
Mathlib.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/Probability/Process/LocalProperty.lean |
3 |
38 |
['EtienneC30', 'github-actions', 'kex-y', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
0-51329 14 hours ago |
3-52556 3 days ago |
6-71763 6 days |
| 36711 |
mcdoll author:mcdoll |
feat(Algebra): Bound `Finset.sum` in terms of `Finset.sup` |
We add a version for `Finset` and for seminorms (with the additional `sum_apply` lemma).
---
I am not sure where to put the `Finset` lemma, `#find_home` was useless and there seems to be no natural candidate.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
34/0 |
Mathlib/Algebra/Module/BigOperators.lean,Mathlib/Analysis/Seminorm.lean |
2 |
1 |
['github-actions'] |
nobody |
0-50909 14 hours ago |
0-50909 14 hours ago |
0-52070 14 hours |
| 35418 |
vlad902 author:vlad902 |
feat(SimpleGraph): `IsAcyclic` iff not 2-edge-reachable |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
45/5 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean |
3 |
5 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vlad902'] |
nobody |
0-50468 14 hours ago |
9-56516 9 days ago |
26-67286 26 days |
| 36720 |
YanYablonovskiy author:YanYablonovskiy |
feat(Order): `OrderType.lift` and more order type API |
Adding the universe lifting operation to `OrderType` , addresses a 'TODO' .
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
maintainer-merge
|
36/2 |
Mathlib/Order/Types/Defs.lean |
1 |
17 |
['YaelDillies', 'YanYablonovskiy', 'github-actions'] |
nobody |
0-49159 13 hours ago |
0-49223 13 hours ago |
0-50350 13 hours |
| 36472 |
EtienneC30 author:EtienneC30 |
feat: finite dimensional distribution of Brownian motion |
Define `gaussianProjectiveFamily : (I : Finset ℝ≥0) → Measure (I → ℝ)`. Each `gaussianProjectiveFamily I` is the centered Gaussian measure over `I → ℝ` with covariance matrix given by `brownianCovMatrix I s t := min s t`.
Prove that these measures satisfy `IsProjectiveMeasureFamily`, which means that they can be extended into a measure over `ℝ≥0 → ℝ` thanks to the Kolmogorov's extension theorem (not in Mathlib yet). The obtained measure is a measure over the set of real processes indexed by `ℝ≥0` and is the law of the Brownian motion.
---
- [x] depends on: #36143
[](https://gitpod.io/from-referrer/)
|
brownian
t-measure-probability
|
226/1 |
Mathlib.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/Probability/BrownianMotion/GaussianProjectiveFamily.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/Probability/Moments/Basic.lean |
5 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-49013 13 hours ago |
5-55705 5 days ago |
0-1 1 second |
| 36721 |
yoh-tanimoto author:yoh-tanimoto |
refactor(LinearAlgebra/LinearPMap): generalize (partially) to semilinear maps |
replace `LinearPMap.toFun : domain →ₗ[R] F` by `domain →ₛₗ[σ] F`, in order to allow semilinear maps, in particular conjugate-linear maps.
TODO: to define graph of a semilinear map, one has to consider twisted modules #35877
see discussion https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.60SemilinearPMap.60/with/576451756 |
|
177/159 |
Mathlib/Algebra/Module/Injective.lean,Mathlib/Analysis/Convex/Cone/Extension.lean,Mathlib/Analysis/LocallyConvex/Separation.lean,Mathlib/LinearAlgebra/LinearPMap.lean,Mathlib/Topology/Algebra/Module/LinearPMap.lean |
5 |
4 |
['github-actions', 'mcdoll'] |
nobody |
0-48090 13 hours ago |
0-48175 13 hours ago |
0-51966 14 hours |
| 36429 |
yuma-mizuno author:yuma-mizuno |
feat(CategoryTheory/Bicategory): functor bicategories for lax functors |
This code is largely adapted from the existing implementation of the functor bicategory of oplax functors.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
614/25 |
Mathlib.lean,Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Lax.lean,Mathlib/CategoryTheory/Bicategory/FunctorBicategory/Oplax.lean,Mathlib/CategoryTheory/Bicategory/Modification/Lax.lean,Mathlib/CategoryTheory/Bicategory/Modification/Oplax.lean,Mathlib/CategoryTheory/Bicategory/Modification/Pseudo.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Lax.lean,Mathlib/CategoryTheory/Bicategory/NaturalTransformation/Oplax.lean |
8 |
20 |
['github-actions', 'robin-carlier', 'yuma-mizuno'] |
nobody |
0-45660 12 hours ago |
1-57144 1 day ago |
4-51841 4 days |
| 35762 |
xroblot author:xroblot |
feat(CyclotomicFields/Galois): compute the image of the stabilizer of an unramified prime ideal in `(ℤ/nℤ)ˣ` |
For a cyclotomic field `K = ℚ(ζₙ)` and a prime `p` not dividing `n`, we show that for any prime ideal `P` of `𝓞 K` above `p`, the image of the decomposition group of `P` under the isomorphism `Gal(K/ℚ) ≃* (ℤ/nℤ)ˣ` equals the cyclic subgroup generated by the Frobenius element `[p] ∈ (ℤ/nℤ)ˣ`.
---
- [x] depends on: #35530
[](https://gitpod.io/from-referrer/)
|
large-import
t-algebra
label:t-algebra$ |
110/0 |
Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.lean,Mathlib/NumberTheory/NumberField/Ideal/Basic.lean,Mathlib/RingTheory/Ideal/Int.lean,Mathlib/RingTheory/Invariant/Basic.lean |
6 |
9 |
['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536', 'xroblot'] |
dagurtomas assignee:dagurtomas |
0-43499 12 hours ago |
6-44118 6 days ago |
6-52028 6 days |
| 36391 |
xroblot author:xroblot |
feat(FieldTheory/Galois/IsGaloisGroup): Galois groups for quotients by normal subgroups |
Assume `G `is a finite Galois group for `L/K`, `N ⊴ G` is normal, and `F = Fix(N)`. This PR proves:
- `G ⧸ N` acts on `F` via `(g.N) • x := g • x` as a `MulSemiringAction`. Under `SMulCommClass G K L`, it is also `SMulCommClass (G ⧸ N) K F`
- instance `quotient` : `IsGaloisGroup (G ⧸ N) K F` — the quotient group is a Galois group for the intermediate extension `F/K`.
- theorem `quotientMap` under the hypothesis ` E ≤ F`: `IsGaloisGroup (H.map (QuotientGroup.mk' N)) E F` — if `H` is the Galois group for `L/E`, the image of `H` under the quotient map is a Galois group for `F/E`.
---
- [x] depends on: #36365
[](https://gitpod.io/from-referrer/)
|
t-algebra
maintainer-merge
label:t-algebra$ |
83/1 |
Mathlib/FieldTheory/Galois/IsGaloisGroup.lean |
1 |
19 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier', 'xroblot'] |
nobody |
0-38427 10 hours ago |
1-52609 1 day ago |
1-65212 1 day |
| 36696 |
yuma-mizuno author:yuma-mizuno |
chore: add deprecation message for old `coherence` |
To help avoid confusion. See [#mathlib4 > Difference between `monoidal` and `coherence` tactics](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Difference.20between.20.60monoidal.60.20and.20.60coherence.60.20tactics/with/579572051)
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
33/17 |
Mathlib/Tactic/CategoryTheory/BicategoryCoherence.lean,Mathlib/Tactic/CategoryTheory/Coherence.lean,MathlibTest/CategoryTheory/Coherence.lean |
3 |
3 |
['gaetanserre', 'github-actions', 'yuma-mizuno'] |
nobody |
0-38199 10 hours ago |
1-9422 1 day ago |
1-10330 1 day |
| 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 |
6 |
['YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
0-37893 10 hours ago |
17-9186 17 days ago |
17-9139 17 days |
| 36195 |
Vierkantor author:Vierkantor |
chore(*): add backticks around identifiers in docstrings |
This PR fixes docstrings that refer to identifiers (like add_comm) with underscores or non-balanced [square brackets], by putting `backticks` around those identifiers (or $\LaTeX$ dollar signs, as appropriate).
These were spotted by a WIP linter, and are intended to ease the transition to Verso docstrings (where these issues will become errors).
Another PR will fix references to identifiers that have been renamed (those that had underscores in Lean 3).
---
[](https://gitpod.io/from-referrer/)
|
documentation
tech debt
|
159/132 |
Mathlib/Algebra/Group/NatPowAssoc.lean,Mathlib/Algebra/Lie/UniversalEnveloping.lean,Mathlib/Algebra/MvPolynomial/Degrees.lean,Mathlib/Algebra/Polynomial/RuleOfSigns.lean,Mathlib/AlgebraicGeometry/Geometrically/Integral.lean,Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/Fourier/AddCircle.lean,Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Analysis/Real/OfDigits.lean,Mathlib/Analysis/SpecialFunctions/Arcosh.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/RootsExtrema.lean,Mathlib/CategoryTheory/EqToHom.lean,Mathlib/CategoryTheory/Functor/Flat.lean,Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean,Mathlib/CategoryTheory/Limits/Shapes/Multiequalizer.lean,Mathlib/Computability/TuringMachine/ToPartrec.lean,Mathlib/Data/Int/Cast/Field.lean,Mathlib/Data/List/Defs.lean,Mathlib/Data/List/Rotate.lean,Mathlib/Data/PNat/Xgcd.lean,Mathlib/Data/ZMod/Factorial.lean,Mathlib/FieldTheory/Minpoly/Field.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/InformationTheory/KullbackLeibler/KLFun.lean,Mathlib/LinearAlgebra/Alternating/Uncurry/Fin.lean,Mathlib/LinearAlgebra/CliffordAlgebra/BaseChange.lean,Mathlib/LinearAlgebra/Dual/Basis.lean,Mathlib/LinearAlgebra/ExteriorPower/Basis.lean,Mathlib/LinearAlgebra/LinearDisjoint.lean,Mathlib/MeasureTheory/Group/Measure.lean,Mathlib/MeasureTheory/Integral/IntegralEqImproper.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Periodic.lean,Mathlib/MeasureTheory/Measure/LevyProkhorovMetric.lean,Mathlib/MeasureTheory/Measure/Restrict.lean,Mathlib/MeasureTheory/VectorMeasure/Decomposition/Hahn.lean,Mathlib/ModelTheory/Basic.lean,Mathlib/NumberTheory/LucasPrimality.lean,Mathlib/NumberTheory/Modular.lean,Mathlib/NumberTheory/Padics/Hensel.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/Order/LiminfLimsup.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Independence.lean,Mathlib/Probability/Independence/Basic.lean,Mathlib/Probability/Independence/Conditional.lean,Mathlib/Probability/Independence/Kernel/Indep.lean,Mathlib/Probability/Martingale/Upcrossing.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DividedPowers/Padic.lean,Mathlib/RingTheory/Ideal/Maps.lean,Mathlib/RingTheory/IntegralDomain.lean,Mathlib/RingTheory/LinearDisjoint.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/RingTheory/Regular/RegularSequence.lean,Mathlib/Tactic/Algebraize.lean,Mathlib/Tactic/ArithMult.lean,Mathlib/Tactic/ArithMult/Init.lean,Mathlib/Tactic/FieldSimp/Attr.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean,Mathlib/Tactic/FunProp/Types.lean,Mathlib/Tactic/LinearCombination'.lean,Mathlib/Tactic/LinearCombination.lean,Mathlib/Tactic/LinearCombination/Lemmas.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/NormNum/Basic.lean,Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/SetLike.lean,Mathlib/Tactic/SplitIfs.lean,Mathlib/Tactic/SwapVar.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Widget/SelectPanelUtils.lean,Mathlib/Topology/Order/LowerUpperTopology.lean,Mathlib/Topology/Order/UpperLowerSetTopology.lean,Mathlib/Util/AtomM.lean |
76 |
14 |
['Vierkantor', 'github-actions', 'grunweg', 'mathlib-merge-conflicts'] |
nobody |
0-35588 9 hours ago |
0-35621 9 hours ago |
3-85122 3 days |
| 36695 |
wwylele author:wwylele |
feat(Analysis/InnerProductSpace): Gram matrix equals to X†*X |
---
I was surprised I couldn't find this, as this is a property of Gram matrix in the first paragraph of its Wikipedia page. Perhaps I missed something and this is stated at greater generality else where?
[](https://gitpod.io/from-referrer/)
|
t-analysis
large-import
|
8/0 |
Mathlib/Analysis/InnerProductSpace/GramMatrix.lean |
1 |
1 |
['github-actions'] |
nobody |
0-35323 9 hours ago |
1-11467 1 day ago |
1-11420 1 day |
| 36274 |
JTylM author:JTylM |
feat(Combinatorics/SimpleGraph/Matching): implemented the matchingNumber of a graph |
---
I implemented the matchingNumber as described in the issue and proved some statements including
showing that there exists a matching achieving the matchingNumber.
matchingNumber is increasing under injective maps
matchingNumber is equal under isomorphisms
matchingNumber of a matching is the cardinality of the matching
This is my first PR and i had some trouble with some of the proofs, especially with the proof for matchingNumber.isAttained. So any suggestions on how to make the proofs shorter would be welcome. Also i was not sure about the naming of some of the theorems so i would apprechiate feedback here as well.
|
new-contributor
t-combinatorics
|
341/2 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean |
1 |
7 |
['JTylM', 'SnirBroshi', 'SproutSeeds', 'github-actions'] |
nobody |
0-35296 9 hours ago |
0-35360 9 hours ago |
6-14808 6 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
LLM-generated
|
174/0 |
Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean |
2 |
2 |
['github-actions', 'grunweg'] |
j-loreaux assignee:j-loreaux |
0-35290 9 hours ago |
42-74803 42 days ago |
42-74756 42 days |
| 34952 |
joneugster author:joneugster |
feat(scripts/autolabel): use `Cli` and integrate `curl` call into `autolabel` |
- use `Cli` for `lake exe autolabel`
- add arguments `--pr xxx --gh` and `--pr xxx --curl ` to chose between different interaction methods with github
- add `--force` to skip the check whether labels are already present. (note: the current `curl` setup doesn't perform this step, so I left it as a `TODO` in this PR, too)
- make CI-workflow simpler and more robust by removing current stdout-parsing of the debug-messages which `autolabel` emits.
### Testing
Make some local changes and commit them. Ensure your local `origin/master` is in sync with `upstream/master` if you are on a fork.
- `lake exe autolabel`: prints the labels which would be applicable
- `lake exe autolabel --pr 34952 --gh --force` adds these labels to this PR using `gh`.
- `lake exe autolabel --pr 34952 --gh` adds these labels to this PR using `gh` if no topic labels are present.
- `lake exe autolabel --pr 34952 --curl ` adds these labels to this PR using `curl`. This requires a github access token for authentication
---
[](https://gitpod.io/from-referrer/)
|
CI |
85/72 |
.github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean |
2 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
bryangingechen assignee:bryangingechen |
0-34789 9 hours ago |
10-75244 10 days ago |
25-51764 25 days |
| 36717 |
kim-em author:kim-em |
feat(Tactic/FastInstance): skip mkAuxTheorem for proof fields when types agree at instances transparency |
This PR improves how \`fast_instance%\` handles proof-valued constructor fields.
Previously, proof fields were always wrapped in \`mkAuxTheorem\`, which creates a separate auxiliary theorem carrying the expected type. This is unnecessary when the proof's actual type already agrees with the expected type at instances transparency — in that case the proof can be assigned directly.
The new behaviour: check whether the proof's type agrees with the expected type at instances transparency. If yes, assign directly. If no (indicating a binder type mismatch), wrap with \`mkAuxTheorem\` as before.
This is a natural analogue of the data-field binder type checking that \`fast_instance%\` already performs, applied to proof fields.
🤖 Prepared with Claude Code |
t-meta
LLM-generated
|
9/4 |
Mathlib/Tactic/FastInstance.lean,MathlibTest/fast_instance.lean |
2 |
1 |
['github-actions'] |
nobody |
0-34584 9 hours ago |
0-63049 17 hours ago |
0-66090 18 hours |
| 36714 |
kim-em author:kim-em |
chore: bot instructions clone mathlib to a temp dir |
This PR updates the copy-pasteable instructions posted by the nightly bots so they no longer require the user to have an existing Mathlib checkout. Instead, they create a fresh clone in a unique temp directory using \`mktemp -d\`. This also avoids potential fragility from running these scripts inside a worktree.
Affects two bots:
- \`nightly_detect_failure.yml\`: bump PR creation instructions
- \`nightly_bump_and_merge.yml\`: failed lean-pr-testing merge instructions
🤖 Prepared with Claude Code |
CI
LLM-generated
|
9/6 |
.github/workflows/nightly_bump_and_merge.yml,.github/workflows/nightly_detect_failure.yml |
2 |
2 |
['github-actions', 'marcelolynch'] |
nobody |
0-34580 9 hours ago |
0-71739 19 hours ago |
0-71692 19 hours |
| 36709 |
kim-em author:kim-em |
feat(DefEqAbuse): suggest minimal @[implicit_reducible] workaround |
This PR extends `#defeq_abuse` to suggest a minimal set of `@[implicit_reducible]` annotations that would make the failing tactic or command succeed with `backward.isDefEq.respectTransparency true`.
When `#defeq_abuse` detects a failure, it now runs a greedy minimisation over semireducible definitions reachable from the goal/command, finding a (possibly non-unique) minimal subset that, when temporarily marked `@[implicit_reducible]`, fixes the issue. The result is reported as an `info` message:
```
info: Workaround: the following @[implicit_reducible] annotations (a possibly non-unique minimal set) would paper over this problem,
but the real issue is likely a leaky instance somewhere.
set_option allowUnsafeReducibility true
attribute [implicit_reducible]
MyPred
```
This is a workaround, not a fix — the real cause is usually a leaky instance (which `#check_instance` from https://github.com/leanprover-community/mathlib4/pull/36706 can diagnose). But it can be useful for quick debugging.
New helpers: `collectCandidates`, `markImplicitReducible`, `withTempImplicitReducible`, `withTempImplicitReducibleCmd`, `suggestAnnotationsTac`, `suggestAnnotationsCmd`, `formatAnnotations`, `logAnnotationSuggestions`.
🤖 Prepared with Claude Code |
t-meta
LLM-generated
|
156/0 |
Mathlib/Tactic/DefEqAbuse.lean,MathlibTest/DefEqAbuse.lean |
2 |
1 |
['github-actions'] |
nobody |
0-34566 9 hours ago |
0-65969 18 hours ago |
0-69258 19 hours |
| 36683 |
rdeager author:rdeager |
feat(Algebra/Module/LocalizedModule): algebra lemmas for localization equivalences |
Add uniqueness/bijectivity lemmas for localization factoring maps and a categorical
`IsIso` wrapper in `ModuleCat`:
- `IsLocalizedModule.linearEquiv_comp`: composition `linearEquiv ∘ₗ f = g`
- `IsLocalizedModule.eq_linearEquiv`: a factoring map equals `linearEquiv`
- `IsLocalizedModule.bijective`: a factoring map is bijective (analogue of `IsLocalization.bijective`)
- `IsLocalizedModule.isIso_of_comp_eq`: categorical `IsIso` for factoring morphism in `ModuleCat`
### Declarations
- `IsLocalizedModule.linearEquiv_comp`
- `IsLocalizedModule.eq_linearEquiv`
- `IsLocalizedModule.bijective`
- `IsLocalizedModule.isIso_of_comp_eq`
### Motivation
These lemmas are needed by the pushforward-tilde iso for quasi-coherent sheaves
([Stacks, Tag 01I9], Part 2), where the comparison map on each basic open `D(r)`
factors between two localizations of global sections. They will be used in a
follow-up PR adding `Mathlib.AlgebraicGeometry.Modules.PushforwardTilde`.
### Details
The algebra lemmas (`linearEquiv_comp`, `eq_linearEquiv`, `bijective`) are placed in
`LocalizedModule/Basic.lean` alongside the existing `linearEquiv`. The categorical
wrapper `isIso_of_comp_eq` uses `eq_linearEquiv` to show the factoring morphism equals
the canonical `linearEquiv`, then lifts to `IsIso` via `ModuleIso`.
### AI Assistance
This PR was developed with Claude Code (Claude Opus).
The tool was used for proof development, API discovery, and code formatting.
All code has been reviewed and verified by the author.
|
t-algebra
new-contributor
LLM-generated
label:t-algebra$ |
34/0 |
Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean |
2 |
2 |
['github-actions'] |
nobody |
0-34514 9 hours ago |
1-33225 1 day ago |
1-33810 1 day |
| 36443 |
Fieldnote-Echo author:Fieldnote-Echo |
feat(Combinatorics/SimpleGraph): add SimpleGraph.ball (open metric ball) |
Add `SimpleGraph.ball`, the open ball in the graph extended metric.
## Design decisions
- **Open ball** (strict `<`, not `≤`): `ball c ⊤` coincides with the connected
component of `c`, whereas a closed ball would give `closedBall c ⊤ = univ`.
- **Named `SimpleGraph.ball`** (not `eball`): since `dist`-valued balls are less
natural for disconnected graphs, the `e` prefix is unnecessary.
- **Graph-specific** (not via `PseudoEMetricSpace`): avoids importing `ℝ`.
AI assistance: Claude (Opus 4.6) helped draft and iterate on the implementation. I reviewed the code line by line and vouch for the final contents.
Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/SimpleGraph.20metric.20balls/with/577846803).
---
[](https://gitpod.io/from-referrer/) |
t-combinatorics
new-contributor
LLM-generated
|
59/3 |
Mathlib/Combinatorics/SimpleGraph/Metric.lean |
1 |
36 |
['Fieldnote-Echo', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'lauramonk', 'vlad902'] |
nobody |
0-34492 9 hours ago |
6-33004 6 days ago |
6-32957 6 days |
| 36426 |
kim-em author:kim-em |
chore: disable checkType env_linter |
This PR disables the `checkType` env_linter, which takes ~44% of total linting time to type-check every declaration statement. This is redundant since all declarations are already type-checked when added to the environment, and external kernel checkers (lean4checker, trepplein) verify Mathlib regularly. No one on Zulip recalls ever seeing it fire in practice.
🤖 Prepared with Claude Code |
LLM-generated |
8/0 |
Mathlib/Init.lean |
1 |
3 |
['JovanGerb', 'Vierkantor', 'github-actions'] |
alexjbest assignee:alexjbest |
0-34487 9 hours ago |
6-68369 6 days ago |
6-71527 6 days |
| 36423 |
kim-em author:kim-em |
perf: decompress already-cached files concurrently with downloads |
This PR builds on https://github.com/leanprover-community/mathlib4/pull/32987 (pipeline downloads and decompression) and https://github.com/leanprover-community/mathlib4/pull/36367 (fix: decompress already downloaded files).
Previously, already-cached `.ltar` files were only decompressed after all downloads completed, in the final `unpackCache` sweep. This PR starts decompressing them concurrently with downloads by spawning `leantar` as a background task before the download phase begins.
The two decompression paths operate on disjoint file sets (pre-cached vs newly downloaded), so there is no conflict. In the common case where a user has most files cached but a few hundred to download, this overlaps several seconds of decompression with network I/O.
🤖 Prepared with Claude Code |
LLM-generated |
73/26 |
Cache/IO.lean,Cache/Requests.lean |
2 |
1 |
['github-actions'] |
urkud assignee:urkud |
0-34483 9 hours ago |
6-75254 6 days ago |
6-75207 6 days |
| 36320 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics): add Schreier graph definition and covering property |
Defines Schreier graphs as quivers with labeled edges.
`SchreierGraph V ι`: type alias for vertices with quiver structure
`schreierGraphLabelling`: prefunctor extracting edge labels
`schreierGraphLabelling_isCovering`: the labelling is a covering for group actions
`schreierGraph_action_commute`: label-preserving maps commute with the action
Ported from [Lean 3 PR #18693](https://github.com/leanprover-community/mathlib3/pull/18693).
This PR was written with AI assistance (Claude). The code has been reviewed by the author and their advisor.
---
This is the first in a series of PRs splitting #35467 into smaller pieces, as suggested by reviewers. Upcoming PRs will add word evaluation, paths, connectivity, automorphisms, examples, and Cayley sum graphs.
|
t-combinatorics
new-contributor
LLM-generated
|
175/0 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/Schreier.lean |
2 |
2 |
['github-actions'] |
nobody |
0-34477 9 hours ago |
9-36007 9 days ago |
9-35960 9 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
LLM-generated
|
88/2 |
Mathlib/RingTheory/HopfAlgebra/Basic.lean |
1 |
1 |
['github-actions'] |
erdOne assignee:erdOne |
0-34308 9 hours ago |
35-75584 35 days ago |
35-75537 35 days |
| 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 |
LLM-generated |
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-34306 9 hours ago |
13-1586 13 days ago |
19-83088 19 days |
| 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 |
LLM-generated |
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 |
10 |
['JovanGerb', 'github-actions', 'kim-em', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
alexjbest assignee:alexjbest |
0-34302 9 hours ago |
13-1917 13 days ago |
20-46894 20 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 |
LLM-generated |
4/4 |
scripts/README.md,scripts/rm_set_option.py |
2 |
1 |
['github-actions'] |
dupuisf assignee:dupuisf |
0-34297 9 hours ago |
19-45174 19 days ago |
19-45127 19 days |
| 35826 |
quangvdao author:quangvdao |
feat(Probability/ProbabilityMassFunction): total variation distance and MetricSpace instance |
Define total variation distance on probability mass functions, provide
a `MetricSpace` instance, and prove the data processing inequality.
The extended TV distance `PMF.etvDist` is defined in `ℝ≥0∞` as
`(1/2) ∑ x, absDiff (p x) (q x)`, using a new symmetric absolute
difference `ENNReal.absDiff`. The real-valued `PMF.tvDist` is its
`toReal`.
New definitions:
- `ENNReal.absDiff`: symmetric absolute difference `(a - b) + (b - a)`
- `PMF.etvDist`: extended total variation distance
- `PMF.tvDist`: real-valued total variation distance
- `PMF.instMetricSpace`: `MetricSpace` instance on `PMF α`
Main results:
- `ENNReal.absDiff_triangle`: triangle inequality for `absDiff`
- `ENNReal.absDiff_tsum_le`: subadditivity over infinite sums
- `PMF.etvDist_le_one`: TV distance is at most 1
- `PMF.etvDist_map_le`: data processing inequality (deterministic maps)
- `PMF.etvDist_bind_right_le`: data processing inequality (Markov kernels)
- `PMF.etvDist_option_punit`: closed form for binary distributions
Supersedes #33680 with a complete, sorry-free implementation.
See Zulip discussion:
This PR was authored with the support of Claude (Cursor IDE).
---
This PR provides a complete formalization of total variation distance for PMFs, including:
1. **`ENNReal.absDiff`** (`Mathlib/Data/ENNReal/AbsDiff.lean`): A symmetric absolute difference
for `ℝ≥0∞` with triangle inequality, connection to real absolute value, and algebraic properties.
The tsum-related lemmas (`absDiff_tsum_le`, `tsum_fiber`) are placed in the TV distance file
to avoid pulling topology imports into `Data.ENNReal`.
2. **`PMF.etvDist` / `PMF.tvDist`** (`Mathlib/Probability/ProbabilityMassFunction/TotalVariation.lean`):
Total variation distance with a `MetricSpace` instance, data processing inequality for both
deterministic maps and Markov kernels, and a closed form for binary distributions.
Compared to #33680, this PR:
- Has no `sorry`s
- Defines the distance in `ℝ≥0∞` first (following Mathlib convention for `edist`/`dist`)
- Includes the data processing inequality
- Has full documentation and passes all Mathlib linters
Made with [Cursor](https://cursor.com) |
t-measure-probability
LLM-generated
|
459/0 |
Mathlib.lean,Mathlib/Data/ENNReal/AbsDiff.lean,Mathlib/Probability/ProbabilityMassFunction/TotalVariation.lean |
3 |
6 |
['BoltonBailey', 'EtienneC30', 'github-actions', 'joneugster', 'quangvdao'] |
RemyDegenne assignee:RemyDegenne |
0-34266 9 hours ago |
10-12190 10 days ago |
10-12924 10 days |
| 35069 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): simple polygons and boundary map |
This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution.
- [x] depends on: #34598
---
|
new-contributor
t-euclidean-geometry
LLM-generated
|
360/0 |
Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean |
4 |
29 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] |
JovanGerb assignee:JovanGerb |
0-34145 9 hours ago |
19-24842 19 days ago |
21-59081 21 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
LLM-generated
|
107/2 |
Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Grassmannian.lean |
2 |
7 |
['github-actions', 'mathlib-merge-conflicts', 'mpenciak', 'robin-carlier'] |
mariainesdff assignee:mariainesdff |
0-34123 9 hours ago |
14-6698 14 days ago |
31-12337 31 days |
| 36317 |
tb65536 author:tb65536 |
feat(NumberTheory/NumberField/Discriminant/Basic): define the root discriminant |
This PR adds the definition of the root discriminant of a number field.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
maintainer-merge
label:t-algebra$ |
14/0 |
Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean |
1 |
4 |
['github-actions', 'mariainesdff', 'mathlib-merge-conflicts'] |
mariainesdff assignee:mariainesdff |
0-33201 9 hours ago |
3-55354 3 days ago |
9-35797 9 days |
| 35337 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): some lemma about span rank |
In this PR, we proved that for local ring `(R,m)`, the span rank of `M` is equal to dimension of `M/mM` over `R/m` when `M` is fg.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
196/33 |
Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/KrullDimension/Regular.lean,Mathlib/RingTheory/LocalRing/RingHom/Basic.lean,Mathlib/SetTheory/Cardinal/ToNat.lean |
7 |
46 |
['Thmoas-Guan', 'chrisflav', 'erdOne', 'github-actions'] |
chrisflav assignee:chrisflav |
0-31199 8 hours ago |
0-43655 12 hours ago |
11-69905 11 days |
| 36737 |
mariainesdff author:mariainesdff |
chore(Algebra/SkewMonoidAlgebra/Basic): generalize lemmas from Monoid to Mul |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
easy
label:t-algebra$ |
16/10 |
Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-30516 8 hours ago |
0-30605 8 hours ago |
0-30558 8 hours |
| 36692 |
joelriou author:joelriou |
feat(Algebra/Category/ModuleCat/Sheaf): `freeFunctor` preserves colimits |
The functor `freeFunctor : Type u ⥤ SheafOfModules.{u} R` preserves all colimits.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
t-algebra
label:t-algebra$ |
75/0 |
Mathlib/Algebra/Category/ModuleCat/Sheaf/Free.lean |
1 |
3 |
['github-actions', 'joelriou', 'robin-carlier'] |
nobody |
0-29812 8 hours ago |
0-33272 9 hours ago |
0-70102 19 hours |
| 36701 |
kim-em author:kim-em |
feat(DefEqAbuse): detect and report leaky instance binder types |
This PR adds `#check_instance` and `checkInstance` to `Mathlib/Tactic/FastInstance.lean` to diagnose individual instances for leaky data-field binder types, and integrates this into `#defeq_abuse` so it automatically reports leaky instances.
A new `withDisabledInstance` helper temporarily evicts an instance from the discrimination tree (via `Attribute.erase` + `withoutModifyingEnv`), allowing `makeFastInstance` to compute the canonical form without `trySynthInstance` trivially finding the instance being checked.
`#defeq_abuse` now checks instances used in the failing goal/command for leakiness and reports them alongside the isDefEq failure diagnostics.
**Example: `#check_instance`**
```lean
def MyNat := ℕ
-- Without fast_instance%, the `add` field has binder type ℕ rather than MyNat.
instance leakyAdd : Add MyNat := ⟨Nat.add⟩
#check_instance leakyAdd
-- ❌ 'leakyAdd': leaky binder types detected.
-- The data field `add` has binder type ℕ where MyNat is expected.
-- The `fast_instance%` elaborator may be useful as a repair or band-aid:
-- `instance : ... := fast_instance% `
instance fixedAdd : Add MyNat := fast_instance% ⟨Nat.add⟩
#check_instance fixedAdd
-- ✅ 'fixedAdd': canonical (re-inferred form agrees at instances transparency)
```
🤖 Prepared with Claude Code |
LLM-generated |
316/80 |
Mathlib/Tactic/DefEqAbuse.lean,Mathlib/Tactic/FastInstance.lean,MathlibTest/CheckInstance.lean,MathlibTest/DefEqAbuse.lean |
4 |
12 |
['eric-wieser', 'github-actions', 'kim-em'] |
nobody |
0-29190 8 hours ago |
0-55731 15 hours ago |
0-71963 19 hours |
| 36739 |
mbkybky author:mbkybky |
feat(RingTheory): UFD criteria via height `1` prime ideals and localization |
We prove the following UFD criteria via height `1` prime ideals and localization:
1. Let `R` be a Noetherian domain. Then `R` is a UFD if and only if every height `1` prime ideal is principal.
2. Let `R` be a Noetherian domain, `x ∈ R` be a prime element. If `Rₓ` is a UFD, then `R` is also a UFD.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
290/0 |
Mathlib.lean,Mathlib/RingTheory/Ideal/UFD.lean |
2 |
1 |
['github-actions'] |
nobody |
0-29009 8 hours ago |
0-28741 7 hours ago |
0-29202 8 hours |
| 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
|
274/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 |
66 |
['Brian-Nugent', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smorel394'] |
dagurtomas assignee:dagurtomas |
0-27652 7 hours ago |
1-55015 1 day ago |
8-22146 8 days |
| 35193 |
Brian-Nugent author:Brian-Nugent |
feat(Topology/Closeds): implement category of closed sets in topological spaces |
I copied over the nice API for working with `TopologicalSpace.Opens` as a category over for `TopologicalSpace.Closeds`. The only thing that did not immediately transfer was `Topology.IsInducing.functorObj` so I omitted it.
Based on work of @kim-em
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
385/0 |
Mathlib.lean,Mathlib/Topology/Category/TopCat/Closeds.lean |
2 |
10 |
['Brian-Nugent', 'dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
0-26618 7 hours ago |
17-34635 17 days ago |
14-59067 14 days |
| 36127 |
Whysoserioushah author:Whysoserioushah |
chore(RepresentationTheory): Refactor Rep |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
file-removed
label:t-algebra$ |
2258/1522 |
Mathlib.lean,Mathlib/CategoryTheory/Action/Monoidal.lean,Mathlib/CategoryTheory/Monoidal/Types/Basic.lean,Mathlib/RepresentationTheory/Action.lean,Mathlib/RepresentationTheory/Coinduced.lean,Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Equiv.lean,Mathlib/RepresentationTheory/FDRep.lean,Mathlib/RepresentationTheory/FinGroupCharZero.lean,Mathlib/RepresentationTheory/FiniteIndex.lean,Mathlib/RepresentationTheory/Homological/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/Basic.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/Functoriality.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/Hilbert90.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/LongExactSequence.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/LowDegree.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/Shapiro.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Functoriality.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LongExactSequence.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LowDegree.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Shapiro.lean,Mathlib/RepresentationTheory/Homological/Resolution.lean,Mathlib/RepresentationTheory/Induced.lean,Mathlib/RepresentationTheory/Intertwining.lean,Mathlib/RepresentationTheory/Invariants.lean,Mathlib/RepresentationTheory/Rep'/Basic.lean,Mathlib/RepresentationTheory/Rep'/Iso.lean,Mathlib/RepresentationTheory/Rep'/Res.lean,Mathlib/RepresentationTheory/Rep.lean |
32 |
7 |
['github-actions', 'mathlib-bors', 'mathlib-merge-conflicts', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
0-26575 7 hours ago |
2-11008 2 days ago |
2-11601 2 days |
| 36740 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `AlgebraicGeometry.Scheme.isBasis_affineOpens`: unchanged 🎉
* `SimpleGraph.Walk.takeUntil_eq_take`: 263 ms before, 180 ms after 🎉
* `SimpleGraph.Walk.dropUntil_eq_drop`: 382 ms before, 261 ms after 🎉
* `Int.image_Ico_emod`: unchanged 🎉
* `Equiv.Perm.ofSubtype_swap_eq`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
7/33 |
Mathlib/AlgebraicGeometry/AffineScheme.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/WalkDecomp.lean,Mathlib/Data/Int/Interval.lean,Mathlib/GroupTheory/Perm/Support.lean |
4 |
1 |
['github-actions'] |
nobody |
0-26229 7 hours ago |
0-26303 7 hours ago |
0-26256 7 hours |
| 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
|
547/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/Bases.lean,docs/references.bib |
3 |
220 |
['Ruben-VandeVelde', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'mike1729', 'sgouezel', 'themathqueen'] |
sgouezel assignee:sgouezel |
0-25631 7 hours ago |
0-25686 7 hours ago |
41-58529 41 days |
| 36734 |
JovanGerb author:JovanGerb |
fix(SetTheory/ZFC/Basic): fix diamond for `Membership ZFSet ZFSet` |
This PR removes the manual instance of `Membership ZFSet ZFSet` in favour of the instance that comes from the `SetLike` instance. The two instances are not defeq in `implicit_reducible` transparency, hence causing a diamond (it relies on the defeq of `{x | x ∈ s}` with `s`).
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
15/17 |
Mathlib/SetTheory/ZFC/Basic.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
nobody |
0-23093 6 hours ago |
0-30201 8 hours ago |
0-30651 8 hours |
| 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 |
85/0 |
Mathlib/Analysis/Fourier/AddCircleMulti.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean |
3 |
16 |
['CoolRmal', 'EtienneC30', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
0-22808 6 hours ago |
0-28515 7 hours ago |
38-60813 38 days |
| 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 |
252/0 |
Mathlib.lean,Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/Probability/Distributions/Binomial.lean,Mathlib/Probability/Distributions/TwoValued.lean |
4 |
67 |
['DavidLedvinka', 'RemyDegenne', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'kex-y', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'pfaffelh', 'themathqueen'] |
nobody |
0-22624 6 hours ago |
0-33329 9 hours ago |
55-26933 55 days |
| 36549 |
j-loreaux author:j-loreaux |
refactor: use `IsMulCommutative` ubiquitously for subobjects |
[#mathlib4 > commutativity of subobjects](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/commutativity.20of.20subobjects/with/578039488)
The algebraic hierarchy is designed so that commutativity (e.g., of multiplication) is bundled
into the type class, so that we have, for example `Group` and `CommGroup`, `Ring` and `CommRing`,
etc.
It is often the case that one may desire to work with a commutative subobject inside an
ambient noncommutative type. In cases like `Subgroup.center` or `Subring.center`, the subobject is
*always* commutative, and in these cases one should simply imbue those subobjects (coerced to
`Type`) with the appropriate `Comm*` instance. However, in other cases, the commutativity of the
subobject may be conditional on commutativity of some other object. For example,
`Subgroup.closure s` is not always commutative, but it is when `s` is a commutative subset.
Likewise, if `S : Subgroup G` is a commutative subgroup, then `S.topologicalClosure` is also
commutative.
For such scenarios, users should prefer to use the unbundled `IsMulCommutative` typeclass, and to
provide theorems such as:
```lean
theorem isMulCommutative_closure {G : Type*} [Group G] {k : Set G}
(hcomm : ∀ x ∈ k, ∀ y ∈ k, x * y = y * x) :
IsMulCommutative (closure k)
```
or even *instances* such as
```lean
instance Subgroup.instIsMulCommutative_closure {S G : Type*} [Group G] [SetLike S G]
[MulMemClass S G] (s : S) [IsMulCommutative s] :
IsMulCommutative (closure (s : Set G))
```
and
```lean
instance Subgroup.isMulCommutative_topologicalClosure [T2Space G] (s : Subgroup G)
[IsMulCommutative s] : IsMulCommutative s.topologicalClosure
```
Note that we prefer to name these instances manually because they are occasionally useful as
theorems. For example, the proof of the topological closure instance for subgroups above is proved
immediately from the one for monoids via: `s.toSubmonoid.isMulCommutative_topologicalClosure`.
In practice, we wish to be able to use the library of theorems about (bundled) commutativity for
subobjects as well, and so we also provide instances which take as input the unbundled
`Group G` and `IsMulCommutative G` and produce the bundled `CommGroup G`. However, to avoid
deleterious effects to type class synthesis for bundled commutativity (by forcing Lean to search
the entirery of both the bundled and unbundled hierarchies), these instances are only
available inside the `IsMulCommutative` scope and are simultaneously given the very low priority
`50`.
---
- [ ] depends on: #36546
- [ ] depends on: #36547
- [ ] depends on: #36548
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
575/133 |
Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Subgroup/Defs.lean,Mathlib/Algebra/Group/Subgroup/Map.lean,Mathlib/Algebra/Group/Subsemigroup/Defs.lean,Mathlib/Algebra/HierarchyDesign.lean,Mathlib/Algebra/Ring/Defs.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/CategoryTheory/Center/Linear.lean,Mathlib/CategoryTheory/Center/NegOnePow.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Grp_.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Mon_.lean,Mathlib/Data/ZMod/QuotientGroup.lean,Mathlib/FieldTheory/Galois/Abelian.lean,Mathlib/GroupTheory/Focal.lean,Mathlib/GroupTheory/IsPerfect.lean,Mathlib/GroupTheory/Schreier.lean,Mathlib/GroupTheory/SchurZassenhaus.lean,Mathlib/GroupTheory/SpecificGroups/Cyclic.lean,Mathlib/GroupTheory/SpecificGroups/ZGroup.lean,Mathlib/GroupTheory/Subgroup/Centralizer.lean,Mathlib/GroupTheory/Submonoid/Centralizer.lean,Mathlib/GroupTheory/Subsemigroup/Centralizer.lean,Mathlib/GroupTheory/Transfer.lean,Mathlib/NumberTheory/NumberField/CMField.lean,Mathlib/RepresentationTheory/AlgebraRepresentation/Basic.lean,Mathlib/RepresentationTheory/Irreducible.lean,Mathlib/RingTheory/NonUnitalSubring/Basic.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/Algebra/NonUnitalAlgebra.lean,Mathlib/Topology/Algebra/NonUnitalStarAlgebra.lean,Mathlib/Topology/Algebra/StarSubalgebra.lean |
37 |
3 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-22405 6 hours ago |
0-22475 6 hours ago |
0-27138 7 hours |
| 36405 |
seewoo5 author:seewoo5 |
feat(ModularForms): (normalized) derivative of modular forms |
---
Derivative of modular forms, stems from [Sphere Packing project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean).
The major goal is two-fold: prove Ramanujan's identities and also prove that Serre derivative preserves modularity (first uses second).
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
174/0 |
Mathlib.lean,Mathlib/NumberTheory/ModularForms/Derivative.lean |
2 |
27 |
['CBirkbeck', 'github-actions', 'mathlib-bors', 'seewoo5', 'tb65536', 'wwylele'] |
tb65536 assignee:tb65536 |
0-22168 6 hours ago |
0-35619 9 hours ago |
3-82929 3 days |
| 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_iff_notMem` for determining units in a quotient by power
Disclosure of AI usage: this was produced when I chat with LLM for certain exercise problems, and I identified these small lemmas that can be implemented. Also asked LLM for some hints for idea. Code entirely written by me
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
maintainer-merge
|
52/6 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean |
3 |
9 |
['chrisflav', 'copilot-pull-request-reviewer', 'github-actions', 'wwylele'] |
chrisflav assignee:chrisflav |
0-21374 5 hours ago |
2-14091 2 days ago |
12-57240 12 days |
| 35031 |
JovanGerb author:JovanGerb |
feat(CategoryTheory/Limits/Cones): use `to_dual` |
This PR uses `to_dual` to generate `Cocone` from `Cone`.
Notes:
- Sadly, it is not possible to translate `cones : Cᵒᵖ ⥤ Type max u₁ v₃` and `cocones : C ⥤ Type max u₁ v₃` (and similarly `yoneda` and `coyoneda`), because one version has `ᵒᵖ` in the type and the other doesn't. To allow dualizing `Cone.extend`, I've inlined the definition of `Cone.extensions`.
- The namespace `CategoryTheory.Limits.Cones`/`CategoryTheory.Limits.Cocones` looks wrong to me, because there isn't actually any constant called `Cones` or `Cocones`. I think it should be singular: `CategoryTheory.Limits.Cone`/`CategoryTheory.Limits.Cocone` . (I currently have a funny command in place to work around this)
- This PR makes many changes in other files where `to_dual` tags were missing. Only the minimal necessary changes have been made. Those files may be extended with more `to_dual` tags in future PRs.
- The only prerequisite which I've left out of this PR is equivalences of categories. Hence `functorialityEquivalence`, `whiskeringEquivalence` and `equivalenceOfReindexing` all use `to_dual existing`.
- `Cone.extendIso` and `Cocone.extendIso` weren't compatible for `to_dual` because they were the other way around. I chose to swap the direction of the isomorphisms in `Cone.extendIso`. Similarly `precomposeEquivalence` and `postComposeEquivalence` weren't compatible. I chose to swap the direction of an isomorphism in `precomposeEquivalence`. These changes required a few adaptations in `Mathlib.CategoryTheory.Limits.IsLimit` and elsewhere.
---
- [x] depends on: #34863
- [x] depends on: #35065
- [x] depends on: #36322
- [x] depends on: #36383
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
209/489 |
Mathlib/CategoryTheory/Category/Basic.lean,Mathlib/CategoryTheory/Equivalence.lean,Mathlib/CategoryTheory/Functor/Basic.lean,Mathlib/CategoryTheory/Functor/FullyFaithful.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Basic.lean,Mathlib/CategoryTheory/Iso.lean,Mathlib/CategoryTheory/Limits/Cones.lean,Mathlib/CategoryTheory/Limits/Constructions/Filtered.lean,Mathlib/CategoryTheory/Limits/IsLimit.lean,Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Basic.lean,Mathlib/CategoryTheory/Limits/Shapes/Reflexive.lean,Mathlib/CategoryTheory/Opposites.lean,Mathlib/CategoryTheory/Whiskering.lean,Mathlib/Combinatorics/Quiver/Basic.lean |
14 |
21 |
['JovanGerb', 'github-actions', 'joneugster', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier'] |
nobody |
0-21368 5 hours ago |
0-21433 5 hours ago |
2-16391 2 days |
| 36064 |
marcelolynch author:marcelolynch |
ci: Push to the cache using OIDC and federated credentials |
This migration replaces static SAS-based cache upload auth with GitHub OIDC + Entra app registrations in Azure.
Concretely, each workflow run gets a GitHub-issued OIDC token, and Azure AD (Entra) exchanges that token for a short-lived access token for Storage. We do this through app registrations configured with federated credentials, so no client secret or SAS needs to be stored for normal operation.
A key design point is identity separation. We use two different app registrations (two app IDs): one for `master` workflows and one for non-master workflows. That lets us enforce different trust and permission boundaries in Azure RBAC, instead of giving one shared credential broad write access to every workflow type.
Note that this separation is not implemented by this change: for now, both identities are still contributing to the same cache.
On the cache client side (Cache/Requests.lean / Cache/Main.lean), auth selection is robust to empty bearer values, and there is migration-safe fallback behavior: if bearer upload fails with auth errors and SAS is available, it retries with SAS. The workflow also supports fallback to MATHLIB_CACHE_SAS when minting fails.
Benefits:
- OIDC/federated credentials remove dependency on a static shared upload secret.
- Tokens are minted just-in-time and short-lived.
- We can enforce least privilege cleanly by using separate app identities for different workflow classes.
- Blast radius is reduced: master and non-master workflows can have different RBAC scopes.
- We keep operational safety during migration by retaining controlled SAS fallback, but SAS is no longer the primary auth path. |
CI
maintainer-merge
|
124/34 |
.github/workflows/bors.yml,.github/workflows/build.yml,.github/workflows/build_fork.yml,.github/workflows/build_template.yml,.github/workflows/ci_dev.yml,Cache/Main.lean,Cache/README.md,Cache/Requests.lean |
8 |
9 |
['bryangingechen', 'github-actions', 'joneugster', 'marcelolynch', 'mathlib-merge-conflicts'] |
nobody |
0-21064 5 hours ago |
7-10849 7 days ago |
8-48601 8 days |
| 36724 |
JovanGerb author:JovanGerb |
chore: reduce transitive imports of `Lean` |
By reducing the amount that each file imports, we can reduce build times by a bit.
It's a shame that the new `shake` doesn't seem to do this kind of refactor for us.
---
[](https://gitpod.io/from-referrer/)
|
|
29/36 |
Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/HierarchyDesign.lean,Mathlib/Algebra/Ring/ULift.lean,Mathlib/Control/Lawful.lean,Mathlib/Data/FunLike/Basic.lean,Mathlib/Data/Nat/Init.lean,Mathlib/Data/Prod/Basic.lean,Mathlib/Logic/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/SetTheory/Cardinal/Defs.lean,Mathlib/Tactic/ArithMult.lean,Mathlib/Tactic/Choose.lean,Mathlib/Tactic/CongrM.lean,Mathlib/Tactic/DefEqTransformations.lean,Mathlib/Tactic/Ext.lean,Mathlib/Tactic/FunProp/Types.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Core.lean,Mathlib/Tactic/GRewrite/Elab.lean,Mathlib/Tactic/IrreducibleDef.lean,Mathlib/Tactic/Lift.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/SetLike.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/TermCongr.lean,Mathlib/Tactic/Widget/CongrM.lean,Mathlib/Tactic/Zify.lean,MathlibTest/TermCongr.lean |
29 |
3 |
['JovanGerb', 'github-actions', 'leanprover-radar'] |
nobody |
0-20894 5 hours ago |
0-27633 7 hours ago |
0-31425 8 hours |
| 31366 |
FaffyWaffles author:FaffyWaffles |
feat(Analysis/SpecialFunctions/StirlingRobbins): Robbins' sharp stepwise bound for stirlingSeq |
This PR refactors `Stirling.lean` to use Robbin's bound `log (stirlingSeq n) - log (stirlingSeq (n+1)) ≤ 1 / (12 n (n + 1))`.
The original PR was by @FaffyWaffles but the PR has now been adopted by @tb65536.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
50/46 |
Mathlib/Analysis/SpecialFunctions/Stirling.lean |
1 |
18 |
['FaffyWaffles', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'tb65536'] |
nobody |
0-19489 5 hours ago |
0-19689 5 hours ago |
4-75364 4 days |
| 36524 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(GroupTheory/SpecificGroups/Alternating/Simple): simplicity of the alternating groups |
This is the conclusion of the story of the proof of simplicity of the alternating group using the
Iwasawa criterion.
* `Equiv.Perm.iwasawaStructure_two`:
the natural `IwasawaStructure` of `Equiv.Perm α` acting on `Nat.Combination α 2`
Its commutative subgroups consist of the permutations with support
in a given element of `Nat.Combination α 2`.
They are cyclic of order 2.
* `alternatingGroup_of_le_of_normal`:
If `α` has at least 5 elements, then a nontrivial normal subgroup
of `Equiv.Perm α` contains the alternating group.
* `alternatingGroup.iwasawaStructure_three`:
the natural `IwasawaStructure` of `alternatingGroup α` acting on `Nat.Combination α 3`
Its commutative subgroups consist of the permutations with support
in a given element of `Nat.Combination α 2`.
They are cyclic of order 3.
* `alternatingGroup.iwasawaStructure_three`:
the natural `IwasawaStructure` of `alternatingGroup α` acting on `Nat.Combination α 4`
Its commutative subgroups consist of the permutations of
cycleType (2, 2) with support in a given element of `Nat.Combination α 2`.
They have order 4 and exponent 2 (`IsKleinFour`).
* `alternatingGroup.normal_subgroup_eq_bot_or_eq_top`:
If `α` has at least 5 elements, then a nontrivial normal subgroup of `alternatingGroup` is `⊤`.
* `alternatingGroup.isSimpleGroup`:
If `α` has at least 5 elements, then `alternatingGroup α`
is a simple group.
---
- [x] depends on: #33082
[](https://gitpod.io/from-referrer/)
|
t-group-theory |
270/10 |
Mathlib.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/Centralizer.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean |
5 |
14 |
['AntoineChambert-Loir', 'github-actions', 'mathlib-dependent-issues', 'robin-carlier', 'tb65536'] |
nobody |
0-18779 5 hours ago |
0-52101 14 hours ago |
1-57662 1 day |
| 36069 |
Equilibris author:Equilibris |
feat(Data/PFunctor): Universe generic W |
Previously `W.ind` was limited to `Prop`.
It can for free be changed to `Sort w` forall w.
---
When changing adding `elab_as_elim` it broke the usages in `Fix.lean`.
I had to change `apply ...`s to use `induction ... using ...` but this a minor change.
I added a `simp` lemma to the `w_ind_wMk` as: it is `rfl` and will almost certainly we used at reference site.
It might in the future be useful to add `simp` to `wRec_eq` as well.
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
41/31 |
Mathlib/Data/PFunctor/Multivariate/W.lean,Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean |
2 |
10 |
['Equilibris', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
0-16969 4 hours ago |
3-39442 3 days ago |
9-6470 9 days |
| 36736 |
loefflerd author:loefflerd |
feat(NumberTheory/Modular): strengthen 2nd Fundamental-Domain Lemma |
Strengthen the results on the fundamental domain for the modular group, by proving that the interior of the fundamental domain is disjoint from any translate of the fundamental domain.
Proof closely follows Serre _A Course in Arithmetic_ (although Serre also proves that S, T generate the modular group at the same time, which we do not do, since this is proved by a different method in `FixedDetMatrices`).
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
388/37 |
Mathlib/Analysis/Complex/UpperHalfPlane/Basic.lean,Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/LinearAlgebra/Matrix/SpecialLinearGroup.lean,Mathlib/NumberTheory/Modular.lean,docs/references.bib |
5 |
1 |
['github-actions'] |
nobody |
0-15660 4 hours ago |
0-15731 4 hours ago |
0-33434 9 hours |
| 33634 |
xgenereux author:xgenereux |
feat(ValuationSubring): eq_self_or_eq_top_of_le |
Using `primeSpectrumEquiv` we get the the corresponding results of `IsLocalRing.primeSpectrum_eq_of_KrullDimLEOne`(see #33607) for valuation subrings.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
- [ ] depends on: #33631
- [ ] depends on: #33612
- [ ] depends on: #33609
- [ ] depends on: #33607
[](https://gitpod.io/from-referrer/)
|
large-import
t-algebra
label:t-algebra$ |
23/0 |
Mathlib/RingTheory/Valuation/ValuationSubring.lean |
1 |
6 |
['alreadydone', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'plp127', 'xgenereux'] |
nobody |
0-14548 4 hours ago |
0-14623 4 hours ago |
0-14675 4 hours |
| 31809 |
ADedecker author:ADedecker |
feat: differentiation of test function as a CLM |
Co-authored-by: @luigi-massacci
---
- [x] depends on: #31806
- [x] depends on: #30240
- [x] depends on: #36445
[](https://gitpod.io/from-referrer/)
|
t-analysis |
52/2 |
Mathlib/Analysis/Distribution/TestFunction.lean |
1 |
7 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
0-14334 3 hours ago |
0-16952 4 hours ago |
0-16959 4 hours |
| 32250 |
ADedecker author:ADedecker |
feat: integration against a locally integrable function as a CLM on test functions |
Aka viewing a locally integrable function as a distribution
Co-authored-by: @luigi-massacci
---
- [x] depends on: #36445
- [x] depends on: #36460
[](https://gitpod.io/from-referrer/)
|
t-analysis
large-import
|
241/0 |
Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/TestFunction.lean |
2 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
nobody |
0-13993 3 hours ago |
0-16963 4 hours ago |
0-16916 4 hours |
| 32692 |
WilliamCoram author:WilliamCoram |
feat: define multivariate restricted power series |
We define multivariate restricted power series over a normed ring R, and show the properties that they form a ring when R has the ultrametric property.
This work generalises my previous work in #26089 which will need to be refactored.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-number-theory
new-contributor
|
178/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Order/Antidiag.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean |
3 |
38 |
['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts'] |
alreadydone assignee:alreadydone |
0-9158 2 hours ago |
5-68324 5 days ago |
10-75328 10 days |
| 36262 |
CBirkbeck author:CBirkbeck |
feat(NumberTheory/ModularForms): modular discriminant as a cusp form |
## Summary
This PR constructs the modular discriminant `Δ(z) = η(z)^24` and proves it is a cusp form of weight 12 and level 1. The dominated convergence for infinite products is proved by reducing to the additive Tannery theorem via the formal expansion `∏ (1 + f i) = ∑ₛ ∏ᵢ∈ₛ f i`.
### New files
- `Mathlib/Analysis/Normed/Ring/InfiniteProd.lean`: Dominated convergence theorem for infinite products of the form `∏' k, (1 + f n k)` in a complete normed commutative ring, proved via Tannery's theorem.
- `Mathlib/NumberTheory/ModularForms/Discriminant.lean`: The modular discriminant `Δ`, its q-expansion, non-vanishing, and slash-invariance under the generators of SL(2,ℤ).
### New declarations in existing files
- `Real.prod_one_add_le_exp_sum` in `Mathlib/Analysis/Complex/Exponential.lean`: `∏ᵢ∈ₛ (1 + f i) ≤ exp(∑ᵢ∈ₛ f i)` for nonneg `f`.
- `summable_finset_prod_of_summable_nonneg` in `Mathlib/Analysis/SpecialFunctions/Log/Summable.lean`: if `f` is nonneg and summable, then `∑ₛ ∏ᵢ∈ₛ f i` is summable.
- `summable_finset_prod_of_summable_norm` in `Mathlib/Analysis/SpecialFunctions/Log/Summable.lean`: normed ring version of the above.
### Key results
- `ModularForm.discriminantCuspForm`: `Δ` bundled as a `CuspForm (Γ(1)) 12`.
- `tendsto_tprod_one_add_of_dominated_convergence`: Dominated convergence for infinite products.
### Note
- `ModularForms/Delta.lean` has been renamed to `ModularForms/Discriminant.lean` to be more in line with the literature.
--- |
file-removed |
185/25 |
Mathlib.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Normed/Ring/InfiniteProd.lean,Mathlib/Analysis/SpecialFunctions/Log/Summable.lean,Mathlib/NumberTheory/ModularForms/Cusps.lean,Mathlib/NumberTheory/ModularForms/Discriminant.lean,Mathlib/NumberTheory/ModularForms/Identities.lean,Mathlib/NumberTheory/ModularForms/LevelOne.lean |
8 |
19 |
['CBirkbeck', 'github-actions', 'loefflerd', 'mathlib-merge-conflicts', 'wwylele'] |
loefflerd assignee:loefflerd |
0-8525 2 hours ago |
1-55032 1 day ago |
0-1085 18 minutes |
| 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 |
5 |
['IvanRenison', 'Rida-Hamadani', 'YaelDillies', 'github-actions'] |
YaelDillies assignee:YaelDillies |
0-8054 2 hours ago |
0-61973 17 hours ago |
21-26238 21 days |
| 36753 |
jacobparish author:jacobparish |
doc(Computability): fix misnamed theorems |
---
It appears that in #24811, some theorems in `PartrecCode.lean` were renamed, but the docs at the top were not updated.
[](https://gitpod.io/from-referrer/)
|
t-computability
new-contributor
|
3/3 |
Mathlib/Computability/PartrecCode.lean |
1 |
2 |
['github-actions'] |
nobody |
0-7905 2 hours ago |
0-7981 2 hours ago |
0-7934 2 hours |
| 36747 |
euprunin author:euprunin |
chore: remove some `set_option linter.flexible false` |
Trace profiling results (differences <30 ms considered measurement noise):
* `Subring.exists_list_of_mem_closure`: 446 ms before, 120 ms after 🎉
* `AlgebraicGeometry.nonempty_isColimit_binaryCofanMk_of_isCompl`: 275 ms before, 232 ms after 🎉
* `Complex.sameRay_iff`: 214 ms before, 143 ms after 🎉
* `MeasureTheory.lintegral_prod_lintegral_pow_le`: 1367 ms before, 810 ms after 🎉
* `Finset.doubling_lt_golden_ratio`: 3624 ms before, 2680 ms after 🎉
* `EuclideanGeometry.sin_angle_div_dist_eq_sin_angle_div_dist`: 128 ms before, 54 ms after 🎉
* `ContMDiff.inl`: unchanged 🎉
* `HasMFDerivWithinAt.prodMap`: 1052 ms before, 944 ms after 🎉
* `cmp_swap`: unchanged 🎉
---
[](https://gitpod.io/from-referrer/)
|
|
8/26 |
Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/Analysis/Complex/Arg.lean,Mathlib/Analysis/FunctionalSpaces/SobolevInequality.lean,Mathlib/Combinatorics/Additive/VerySmallDoubling.lean,Mathlib/Geometry/Euclidean/Triangle.lean,Mathlib/Geometry/Manifold/ContMDiff/Constructions.lean,Mathlib/Geometry/Manifold/MFDeriv/SpecificFunctions.lean,Mathlib/Order/Compare.lean |
8 |
5 |
['github-actions', 'vlad902'] |
nobody |
0-7679 2 hours ago |
0-13413 3 hours ago |
0-13366 3 hours |
| 29550 |
Raph-DG author:Raph-DG |
feat(RingTheory): Order of vanishing in a discrete valuation ring |
In this PR we develop some API for working with the order of vanishing in a discrete valuation ring.
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-ring-theory
large-import
|
561/5 |
Mathlib.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/Algebra/GroupWithZero/Action/Basic.lean,Mathlib/Algebra/Order/Group/MinMax.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/RingTheory/DiscreteValuationRing/Basic.lean,Mathlib/RingTheory/DiscreteValuationRing/TFAE.lean,Mathlib/RingTheory/OrderOfVanishing/Basic.lean,Mathlib/RingTheory/OrderOfVanishing/Noetherian.lean,Mathlib/RingTheory/SimpleModule/Basic.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean |
11 |
46 |
['Raph-DG', 'erdOne', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
erdOne assignee:erdOne |
0-6724 1 hour ago |
10-51804 10 days ago |
50-49423 50 days |
| 36752 |
Ljon4ik4 author:Ljon4ik4 |
feat: Alternative definition of a tensor product for an algebra |
Let $A$ be an $R$-algebra and $M$ and $N$ $A$-modules.
Then the tensor product $M\otimes_A N$ can be constructed as a quotient of $M\otimes_R N$ by the submodule generated by elements of the shape $am\otimes n - m\otimes an$. This PR realizes this construction and shows that it is isomorphic to the general definition of $M\otimes_A N$.
As one consequence we obtain a description of the kernel of `mapOfCompatibleSMul'` as a span of elements of the shape $am\otimes n - m\otimes an$.
* I wasn't sure where exactly to put it: Currently it is in `Algebra.TensorProduct`, which I think could be a place for more results of tensor products over algebras in the long term, but maybe some file inside `Mathlib.LinearAlgebra.TensorProduct` could also make sense.
* I am not sure if it is very nice to mention 'variable (R A M N)' everywhere, they could also be defined as explicit in the top of the document, and explicitly omitted where unneeded.
* The `omit [IsScalarTower R A N] in` was suggested by the linter, I am not sure I understand why
* Since the relations contain negation, this procedure only works if some of the ingredients admit negation, one could imagine alternative versions (e.g. when $N$ admits negations and not $M$) but this seemed the most intuitive one.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
147/0 |
Mathlib.lean,Mathlib/Algebra/Algebra/TensorProduct.lean |
2 |
2 |
['github-actions'] |
nobody |
0-6706 1 hour ago |
0-6775 1 hour ago |
0-7661 2 hours |
| 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
maintainer-merge
|
36/1 |
Mathlib/Geometry/Convex/Cone/Pointed.lean |
1 |
24 |
['YaelDillies', 'artie2000', 'eric-wieser', 'github-actions', 'martinwintermath', 'mathlib4-merge-conflict-bot', 'ooovi', 'vihdzp'] |
nobody |
0-6637 1 hour ago |
3-17852 3 days ago |
30-16520 30 days |
| 33935 |
mckoen author:mckoen |
feat(CategoryTheory/Monoidal/Arrow): define monoidal structure on arrow category |
defines a monoidal category structure on the arrow category of a cartesian closed category.
---
- [x] depends on: #33974
- [x] depends on: #34887
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
522/0 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Arrow.lean,Mathlib/CategoryTheory/Monoidal/Limits/Shapes/Pullback.lean |
3 |
24 |
['dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mckoen'] |
joelriou assignee:joelriou |
0-6563 1 hour ago |
3-46994 3 days ago |
12-38890 12 days |
| 36730 |
jano-wol author:jano-wol |
feat: forward map from Lie ideals to invariant root submodules |
Forward map from Lie ideals to invariant root submodules
---
This PR begins the development of the order isomorphism between Lie ideals of a Killing Lie algebra and invariant root submodules of the associated root system. We define `lieIdealRootSet I`, the set of roots whose root space is contained in a Lie ideal `I`, prove it is closed under Weyl reflections, and construct the forward map `lieIdealToInvtRootSubmodule` sending `I` to the span of these roots.
[](https://gitpod.io/from-referrer/)
|
t-algebra
LLM-generated
label:t-algebra$ |
118/0 |
Mathlib.lean,Mathlib/Algebra/Lie/Weights/IdealOrderIso.lean,Mathlib/Algebra/Lie/Weights/Killing.lean |
3 |
2 |
['github-actions', 'mathlib-bors'] |
nobody |
0-5983 1 hour ago |
0-6004 1 hour ago |
0-5991 1 hour |
| 33348 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/Transvection): characterization of transvections among dilatransvections |
* `LinearEquiv.fixedReduce`. Pass a linear equivalence to the quotient by a fixed subspace.
* Characterize transvections among dilatransvections by the fact that their reduction is the identity.
---
- [x] depends on: #33347
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
356/9 |
Mathlib.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/FixedSubmodule.lean,Mathlib/LinearAlgebra/Transvection.lean,Mathlib/RingTheory/Regular/RegularSequence.lean |
7 |
34 |
['AntoineChambert-Loir', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] |
ocfnash assignee:ocfnash |
0-4917 1 hour ago |
0-23866 6 hours ago |
38-1090 38 days |
| 36694 |
matthewjasper author:matthewjasper |
chore: reduce use of `RestrictScalars` |
This type is often being abused as way to locally define instances. Change these to use non-instance definitions. This also avoids defeq abuse in the uses.
---
[](https://gitpod.io/from-referrer/)
|
|
62/35 |
Mathlib/Algebra/Algebra/RestrictScalars.lean,Mathlib/Algebra/Category/ModuleCat/Algebra.lean,Mathlib/Analysis/Calculus/MeanValue.lean,Mathlib/Analysis/InnerProductSpace/Continuous.lean,Mathlib/Analysis/InnerProductSpace/Symmetric.lean,Mathlib/Analysis/LocallyConvex/SeparatingDual.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/Analysis/Normed/Module/HahnBanach.lean,Mathlib/Analysis/RCLike/Lemmas.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog/Basic.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/FieldTheory/PurelyInseparable/Basic.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/LinearAlgebra/Complex/Module.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/LocalRing/Quotient.lean,Mathlib/RingTheory/TensorProduct/Maps.lean,MathlibTest/instance_diamonds.lean |
18 |
15 |
['eric-wieser', 'github-actions', 'kim-em', 'mathlib-bors'] |
nobody |
0-4041 1 hour ago |
1-10218 1 day ago |
1-10549 1 day |
| 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
maintainer-merge
|
25/0 |
Mathlib/Data/Nat/Choose/Multinomial.lean |
1 |
5 |
['github-actions', 'joneugster'] |
joneugster assignee:joneugster |
0-3777 1 hour ago |
0-33705 9 hours ago |
18-49837 18 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
maintainer-merge
|
100/101 |
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/TuringMachine/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 |
11 |
['github-actions', 'joneugster', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
0-3643 1 hour ago |
0-79321 22 hours ago |
14-45049 14 days |
| 30352 |
kckennylau author:kckennylau |
feat(RingTheory): Homogeneous localization of tensor product |
Let `𝒜` be a graded `R`-algebra, and `S` be an `R`-algebra. Then `S ⊗[R] 𝒜` is a graded
`S`-algebra with the same grading.
Let `W` be a homogeneous submonoid of `𝒜`. Then `(S⊗[R]𝒜)[(1⊗W)⁻¹]₀ ≅ S ⊗[R] (𝒜[W⁻¹]₀)`.
---
Split from #26061.
- [x] depends on: #30173
- [x] depends on: #30322
- [x] depends on: #30365
- [x] depends on: #36252
Optionally depends on #30379 (graded ring equiv) and #36346 (simp Algebra.algHom), which will save a few lines here, so they are not high priority for this PR.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
471/22 |
Mathlib.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean,Mathlib/RingTheory/GradedAlgebra/TensorLocalization.lean,Mathlib/RingTheory/Localization/TensorProduct.lean |
5 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
nobody |
0-3253 54 minutes ago |
8-76627 8 days ago |
8-76589 8 days |
| 36751 |
vlad902 author:vlad902 |
chore(Data): remove some `set_option linter.flexible false` |
---
[](https://gitpod.io/from-referrer/)
|
tech debt
t-data
|
28/56 |
Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Nat/Digits/Defs.lean,Mathlib/Data/Nat/Digits/Lemmas.lean,Mathlib/Data/Num/Lemmas.lean,Mathlib/Data/Rat/Cast/CharZero.lean,Mathlib/Data/Set/Prod.lean,Mathlib/Data/WSeq/Basic.lean |
7 |
3 |
['github-actions', 'grunweg', 'plp127'] |
nobody |
0-3140 52 minutes ago |
0-8193 2 hours ago |
0-8981 2 hours |
| 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 |
26/0 |
Mathlib/Analysis/InnerProductSpace/Projection/FiniteDimensional.lean |
1 |
5 |
['Scarlett-le', 'github-actions', 'j-loreaux'] |
sgouezel assignee:sgouezel |
0-3133 52 minutes ago |
6-8617 6 days ago |
8-57062 8 days |
| 36462 |
wwylele author:wwylele |
feat(Geometry/Euclidean): integration formula for μHE |
A step towards #34826.
---
The location of `MeasureTheory.volume_eq_of_finrank_eq_one` feels a bit random. I'd like to put it in some early files, but it uses measure preserving of isometry in Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean, which is why it ended up there
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
t-euclidean-geometry
|
138/5 |
Mathlib/Geometry/Euclidean/Volume/Measure.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean,Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean |
3 |
15 |
['copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
nobody |
0-2782 46 minutes ago |
6-4237 6 days ago |
6-4190 6 days |
| 36466 |
wwylele author:wwylele |
feat(Geometry/Euclidean): misc lemma about μHE |
Some building blocks for #34826
---
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry
t-measure-probability
maintainer-merge
|
61/0 |
Mathlib/Geometry/Euclidean/Volume/Measure.lean |
1 |
4 |
['copilot-pull-request-reviewer', 'github-actions', 'jsm28'] |
jsm28 assignee:jsm28 |
0-2712 45 minutes ago |
5-76994 5 days ago |
5-76947 5 days |
| 34676 |
joneugster author:joneugster |
chore(Algebra/CharP/MixedCharZero): cleanup file and use module system |
- mark all internal declarations in the file as `private`
- remove `@[exposed]` from the `public section`
- reduce `public` imports
- use `theorem` and `lemma` to highlight main results. This got lost in the port but was present in [mathlib3](https://github.com/leanprover-community/mathlib3/blob/master/src/algebra/char_p/mixed_char_zero.lean).
- fix some wording and drop a random `example` which shouldn't be there
---
I've used this file to better understand the module system and its future implications for mathlib. The file is IMO ideal since it's an old toy example of mine which is a leaf that isn't imported in mathlib anywhere else (yet).
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
31/25 |
Mathlib/Algebra/CharP/MixedCharZero.lean |
1 |
13 |
['github-actions', 'joneugster', 'mathlib-merge-conflicts', 'vihdzp'] |
eric-wieser assignee:eric-wieser |
0-2482 41 minutes ago |
0-2505 40 minutes ago |
27-49561 27 days |
| 34079 |
joneugster author:joneugster |
feat(scripts/autolabel): add dependencies for alg. geometry and diff. geometry |
Add topic label dependencies:
- "t-algebraic-geometry" -> "t-ring-theory"
- "t-differential-geometry" -> "t-analysis", "t-topology"
This means the bot will only apply the former if both would be applicable.
---
- part of: #34078
- [x] depends on: #34066
[](https://gitpod.io/from-referrer/)
|
CI |
4/2 |
scripts/autolabel.lean |
1 |
13 |
['github-actions', 'grunweg', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-2324 38 minutes ago |
0-2347 38 minutes ago |
7-71865 7 days |
| 36755 |
Komyyy author:Komyyy |
doc: remove the LLM-hallucinated reference |
```lean4
/-- For a prime `p`, a ℚ-linear combination `∑_{i < p} αᵢ ζⁱ` vanishes if and only if all
coefficients `αᵢ` are equal. This follows from the irreducibility of the `p`-th cyclotomic
polynomial. See Washington, *Introduction to Cyclotomic Fields*, Lemma 2.8.5. -/
lemma sum_eq_zero_iff_forall_eq (hp : p.Prime) (hζ : IsPrimitiveRoot ζ p) (α : Fin p → ℚ) :
```
This lemma was introduced in #34592.
According to the author's other PRs (especially #34578), #34592 seems to have been generated by LLM.
This docstring references Lemma 2.8.5 in "Washington, Introduction to Cyclotomic Fields". I checked it on Springer, and found that there is no Lemma 2.8.5.
So, I remove this LLM-hallucination reference, but I keep the lemma itself since it may be useful. (I don't know much about cyclotomic fields)
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-ring-theory
|
1/1 |
Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean |
1 |
3 |
['Komyyy', 'github-actions', 'grunweg'] |
nobody |
0-2193 36 minutes ago |
0-4171 1 hour ago |
0-4124 1 hour |
| 36743 |
Jun2M author:Jun2M |
feat(Combinatorics/HasDart): introduce `HasDart` typeclass for graph-like structures |
Per discussion at ([#graph theory > HasAdj](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445)), This PR introduces the `HasDart` typeclass to capture the notions like `dart` and `walk` across various graph objects, such as `SimpleGraph`, `Graph`, and `Digraph`.
The goal is that by abstracting these core components into a typeclass, we can prove these results once for all graph-like structures rather than duplicating them across different graph types.
This PR generalises #35776 to also unify `Graph`.
### Main definitions
* `HasDart α Gr`: A typeclass parameterized by a vertex type `α` and a graph type `Gr` (with `α` as an `outParam`).
* `HasDart.verts`: The set of vertices of the graph.
* `HasDart.dart`: The type of darts (oriented edges) between two vertices. This returns `Sort u'` to accommodate both `Prop`-valued edges (like in `SimpleGraph`) and data-carrying edges (like in multigraphs).
* `HasDart.Adj`: The adjacency relation, defined by default as `Nonempty (dart G u v)`.
* `prodDart G` : A form of dart that does not have its end points in its type.
* Instance of `HasDart α (SimpleGraph α)` with `dart G u v := G.Adj u v`
* Instance of `HasDart α (Digraph α)` with `dart G u v := G.Adj u v`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
206/0 |
Mathlib.lean,Mathlib/Combinatorics/Digraph/HasDart.lean,Mathlib/Combinatorics/HasDart/Basic.lean,Mathlib/Combinatorics/SimpleGraph/HasDart.lean |
4 |
1 |
['github-actions'] |
nobody |
0-216 3 minutes ago |
0-4950 1 hour ago |
0-20214 5 hours |
| 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 |
45-85277 1 month ago |
60-74553 60 days ago |
65-39563 65 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 |
45-85274 1 month ago |
54-5249 54 days ago |
54-19305 54 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 |
44-85284 1 month ago |
58-16573 58 days ago |
58-19737 58 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 |
43-85235 1 month ago |
72-48456 72 days ago |
72-48409 72 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 |
41-8644 1 month ago |
41-8644 41 days ago |
93-44800 93 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 |
40-27750 1 month ago |
40-27945 40 days ago |
49-29581 49 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 |
38-28661 1 month ago |
54-73678 54 days ago |
54-81624 54 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 |
35-85354 1 month ago |
40-67690 40 days ago |
40-70607 40 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 |
34-60813 1 month ago |
34-60813 34 days ago |
102-79218 102 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 |
34-54849 1 month ago |
66-64569 66 days ago |
94-16786 94 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 |
33-85200 1 month ago |
42-53815 42 days ago |
46-18882 46 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 |
33-85196 1 month ago |
42-39607 42 days ago |
42-41465 42 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 |
33-35216 1 month ago |
33-36990 33 days ago |
33-38358 33 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 |
31-39234 1 month ago |
31-39300 31 days ago |
44-47115 44 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 |
27-4978 27 days ago |
40-14454 40 days ago |
40-14407 40 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 |
27-447 27 days ago |
27-86145 27 days ago |
131-45568 131 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 |
20-85372 20 days ago |
36-84306 36 days ago |
45-5805 45 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 |
19-85352 19 days ago |
31-27115 31 days ago |
40-75720 40 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 |
18-85374 18 days ago |
22-8648 22 days ago |
28-41889 28 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 |
17-40123 17 days ago |
17-40341 17 days ago |
73-52873 73 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 |
17-30272 17 days ago |
22-18017 22 days ago |
22-18645 22 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 |
17-11106 17 days ago |
17-20178 17 days ago |
17-20588 17 days |
| 34477 |
spanning-tree author:spanning-tree |
refactor(Order): make CompletePartialOrder extend OrderBot |
Make `CompletePartialOrder` extend `OrderBot`, and add a constructor `completePartialOrderOfLubOfDirected`. Previously, `CompletePartialOrder` had an implicit bottom element but did not extend OrderBot explicitly.
Breaking change: `CompletePartialOrder` instances must provide `⊥` and `bot_le`, or use the constructor.
See discussion in [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20complete.20partial.20order.20and.20domain.20theory.20formalization).
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
15/1 |
Mathlib/Order/CompletePartialOrder.lean |
1 |
3 |
['Citronhat', 'github-actions', 'mathlib-merge-conflicts'] |
pechersky assignee:pechersky |
15-38265 15 days ago |
15-38288 15 days ago |
36-13398 36 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 |
15-31423 15 days ago |
15-31449 15 days ago |
29-61577 29 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 |
15-29869 15 days ago |
39-33686 39 days ago |
39-33639 39 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 |
14-53772 14 days ago |
18-51774 18 days ago |
18-51763 18 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.
### 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
|
240/91 |
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 |
23 |
['ADedecker', 'github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mike1729'] |
faenuccio assignee:faenuccio |
11-45042 11 days ago |
12-32909 12 days ago |
11-12992 11 days |
| 35600 |
yisiox author:yisiox |
feat(Computability): add Kleene's algorithm to prove regular languages have regex matching |
This PR adds a proof that every regular language has some regular expression matching it.
This was achieved by the following constructions and proofs of their correctness
- Define `toSingleεNFA` to transform any epsilon-NFA to an equivalent one with only a single start and accept state (and the type is `ExtendedState`)
- Define a bijection between `ExtendedState` and `Fin (FinEnum.card (ExtendedState σ))` to index the states
- Define `pathRegex` which implements Kleene's algorithm
- Define `toRegex` which takes an epsilon-NFA, applies `toSingleεNFA` on it, and computes the corresponding regex using `pathRegex`
The proofs of correctness chain together to yield `(toRegex M).matches' = M.accepts` which asserts the direction of Kleene's theorem required.
As in [#mathlib4 > Regular languages: the review queue @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Regular.20languages.3A.20the.20review.20queue/near/573958148), this overlaps with #15654, which uses GNFA instead but has been inactive.
---
[](https://gitpod.io/from-referrer/)
|
t-computability
new-contributor
|
499/0 |
Mathlib/Computability/EpsilonNFA.lean |
1 |
2 |
['github-actions'] |
nobody |
11-20794 11 days ago |
unknown |
0-0 0 seconds |
| 36210 |
vbeffara author:vbeffara |
feat(Combinatorics/SimpleGraph): definitions of graph contraction and graph minor |
A contraction is the image of a graph through a surjective function with connected fibers, and a minor is a contraction of a subgraph.
This PR shows that being a contraction is transitive, but does not show the same for minors because the proof is more involved, it will be in a subsequent PR. The definitions are in `Prop` and do not contain data, but I'm not sure if that was the right choice.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
151/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Contraction.lean,Mathlib/Combinatorics/SimpleGraph/Minor.lean |
3 |
2 |
['github-actions'] |
nobody |
11-3851 11 days ago |
11-3913 11 days ago |
11-4557 11 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 |
7-15643 7 days ago |
60-58201 60 days ago |
60-81502 60 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
|
75/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean |
2 |
24 |
['IvanRenison', 'SnirBroshi', 'github-actions', 'robo7179'] |
nobody |
6-52498 6 days ago |
7-22841 7 days ago |
34-19104 34 days |
| 31662 |
edwin1729 author:edwin1729 |
feat(Topology/Order): topological basis of scott topology on Complete… |
…PartialOrder
---
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/.3E.20Algebraic.20complete.20partial.20order.20and.20domain.20theory/with/536359313) for this PR.
(1/2) PRs in domain theory, proving that scott topologies over Algebraic DCPOs (`CompletePartialOrder`) are sober.
The main reference is [Renata, Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf). But the statements can also be found in the canonical text [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
This first PR proves two prerequisites, namely:
- the specialization order induced by the scott topology corresponds to the existing order of the DCPO. Prop 3.1.5 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.2(1) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
- the upward closures of compact elements of the DCPO form a topological basis for the Scott Topology. Prop 3.5.2 in [Duality in Domain Theory](https://alyata.github.io/documents/duality_domain_theory.pdf) and Prop 2.3.6(2) in [Abramsky and Jung](https://www.cs.ox.ac.uk/people/samson.abramsky/handbook.pdf)
- [x] depends on: #33061
**The next PR is here:** #31670
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
239/1 |
Mathlib.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib |
4 |
66 |
['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] |
b-mehta assignee:b-mehta |
6-6086 6 days ago |
9-40126 9 days ago |
16-6396 16 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
|
147/0 |
Mathlib/Topology/Defs/Basic.lean,MathlibTest/TopologyNonstandardNotation.lean |
2 |
7 |
['JJYYY-JJY', 'copilot-pull-request-reviewer', 'github-actions', 'j-loreaux'] |
j-loreaux assignee:j-loreaux |
6-4959 6 days ago |
6-30446 6 days ago |
9-45896 9 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'] |
urkud assignee:urkud |
5-85383 5 days ago |
17-74332 17 days ago |
17-77251 17 days |
| 36332 |
mike1729 author:mike1729 |
feat(Analysis/Normed/Module/WeakDual): register bornology and boundedness API |
## Description
This PR registers `Bornology` instance and introduces a boundedness API as discussed [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/instBornology.20for.20WeakSpace.20and.20WeakDual/with/577457935).
### Main additions
- **`WeakDual.instBornology`**: Bornology instance on `WeakDual 𝕜 E` inherited from `StrongDual 𝕜 E` via `inferInstanceAs`. This makes `IsBounded` available directly on weak dual sets, where boundedness means operator-norm boundedness.
- **`isVonNBounded_iff_pointwise_bounded`**: A set `s` in `WeakDual 𝕜 E` is von Neumann bounded (w.r.t. the weak-* topology) iff it is pointwise bounded: every `x : E` has `‖f x‖ ≤ r x` for all `f ∈ s`.
- **`isBounded_iff_isVonNBounded`**: For normed spaces over `ℝ` or `ℂ`, norm-boundedness and weak-* von Neumann boundedness coincide (via Banach–Steinhaus).
- **`isBounded_iff_pointwise_bounded`**: Combines the above two: norm-boundedness ↔ pointwise boundedness.
- **`isBounded_polar`** and **`isBounded_closedBall`**: Standalone lemmas replacing repeated inline `isBounded_toStrongDual_preimage_iff_isBounded.mpr ...` patterns.
- **Simp lemmas**: `isBounded_toStrongDual_preimage_iff_isBounded` and `isBounded_toWeakDual_preimage_iff_isBounded` for translating between weak and strong dual boundedness.
### API simplification
The existing lemmas `isClosed_image_coe_of_bounded_of_closed`, `isCompact_of_bounded_of_closed`, and `isSeqCompact_of_isBounded_of_isClosed` now take `IsBounded s` directly instead of the more verbose `IsBounded (StrongDual.toWeakDual ⁻¹' s)`, since the two are definitionally equal with the new bornology instance.
### Minor changes
- Replaced `grind` tactic usage with explicit term
- Fixed deprecation dates from 2024-11-19 to 2025-11-19
- Renamed local variable `F` to `E` for consistency with the rest of the file
- Added comprehensive module and declaration docstrings
---
- [ ] depends on: —
- [ ] modifies an existing declaration: yes (simplified signatures of `isClosed_image_coe_of_bounded_of_closed`, `isCompact_of_bounded_of_closed`, `isSeqCompact_of_isBounded_of_isClosed`)
- [ ] adds new declarations: yes (`instBornology`, `isBounded_toStrongDual_preimage_iff_isBounded`, `isBounded_toWeakDual_preimage_iff_isBounded`, `isVonNBounded_iff_pointwise_bounded`, `isBounded_iff_isVonNBounded`, `isBounded_iff_pointwise_bounded`, `isBounded_closedBall`, `isBounded_polar`)
---
Open in Gitpod
-->
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-analysis
|
205/70 |
Mathlib/Analysis/Normed/Module/WeakDual.lean |
1 |
2 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
5-85368 5 days ago |
9-16537 9 days ago |
9-16592 9 days |
| 36174 |
mike1729 author:mike1729 |
feat(Topology/Compactness): add countably compact sets |
This PR introduces the theory of countably compact sets and spaces. The motivation was the Eberlein–Šmulian theorem but of course this theory is of its own interest and there are many more applications.
New definitions:
- `IsCountablyCompact A`: a set `A` is countably compact if every sequence in `A`
has a cluster point in `A`.
- `CountablyCompactSpace E`: the whole space `E` is countably compact.
Main results:
- `IsCountablyCompact.elim_finite_subcover`: finite subcover from any countable open cover.
- `isCountablyCompact_iff_countable_open_cover`: equivalence with the finite-subcover property.
- `IsCompact.IsCountablyCompact`: compact implies countably compact.
- `IsSeqCompact.IsCountablyCompact`: sequentially compact implies countably compact.
- `IsCountablyCompact.isSeqCompact`: countably compact implies sequentially compact
in a first-countable space.
- `isCountablyCompact_iff_infinite_subset_has_accPt`: Bolzano–Weierstrass characterisation
in a T₁ space.
- `IsLindelof.isCompact`: a countably compact Lindelöf set is compact.
- `IsCountablyCompact.image`: continuous images of countably compact sets are countably compact.
- Union stability: binary, `Finset`, `Set.Finite`, and `iUnion` variants.
Co-authored-by: Yongxi Lin @CoolRmal
---
This PR adds `Mathlib.Topology.Compactness.CountablyCompact`, a new file alongside the existing `Compact`, `SeqCompact`, and `Lindelof` files.
The primary definition follows Engelking's *General Topology* (the cluster-point characterisation for sequences), and the equivalence with the finite-subcover characterisation is established immediately.
The immediate motivation for this PR is #35473 (Eberlein–Šmulian theorem), which depends on it. Further PRs will extend the theory of countably compact spaces.
-->
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-topology
|
299/0 |
Mathlib.lean,Mathlib/Topology/ClusterPt.lean,Mathlib/Topology/Compactness/CountablyCompact.lean |
3 |
4 |
['github-actions', 'mike1729', 'plp127'] |
j-loreaux assignee:j-loreaux |
4-85397 4 days ago |
11-55015 11 days ago |
11-54968 11 days |
| 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 |
4-79583 4 days ago |
12-82465 12 days ago |
14-46769 14 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 |
30 |
['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] |
awainverse assignee:awainverse |
4-75888 4 days ago |
41-7471 41 days ago |
93-66553 93 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
|
98/3 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
3 |
26 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-merge-conflicts'] |
adamtopaz assignee:adamtopaz |
4-32295 4 days ago |
4-50022 4 days ago |
29-58487 29 days |
| 36104 |
LarsenClose author:LarsenClose |
feat(CategoryTheory/Endofunctor/Algebra): add Adámek's initial algebra theorem |
Adds Adámek's initial algebra theorem for endofunctors on categories
with an initial object. Given `F : C ⥤ C` where `C` has an initial
object, if the initial chain `⊥ → F(⊥) → F²(⊥) → ⋯` has a colimit
preserved by `F`, then `F` has an initial algebra whose structure map
is an isomorphism.
New files:
- `InitialChain.lean`: defines `iterateObj F n`, `iterateMap F n`,
and `initialChain F : ℕ ⥤ C` via `Functor.ofSequence`.
- `ChainShift.lean`: constructs `shiftCocone` and `extendCocone`,
proves `shiftCoconeIsColimit` (shifted cocone inherits colimit).
- `Adamek.lean`: main result. Constructs the initial `F`-algebra
`adamek F c hc` and proves `adamek_isInitial`. Convenience API:
`adamekFromInitial`, `adamekStructureIso`, `adamekFixedPoint`.
0 sorry. References Adámek 1974.
--- |
t-category-theory
new-contributor
|
505/0 |
Mathlib.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/Adamek.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/ChainShift.lean,Mathlib/CategoryTheory/Endofunctor/Algebra/InitialChain.lean,docs/references.bib |
5 |
3 |
['dagurtomas', 'github-actions'] |
joelriou assignee:joelriou |
4-14225 4 days ago |
11-70939 11 days ago |
11-71006 11 days |
| 36414 |
alainchmt author:alainchmt |
feat(FieldTheory/Finite): irreducible factors of X^q^n - X have degree dividing n |
Add the theorem that if an irreducible polynomial over a finite field `K` divides `X ^ (Fintype.card K) ^ n - X`, then the degree of the polynomial divides `n`. We also add an auxiliary lemma stating that polynomials of nonzero degree dividing `X ^ (Fintype.card K) - X` have a root in `K`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
53/0 |
Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Finite/GaloisField.lean,Mathlib/FieldTheory/IntermediateField/Adjoin/Basic.lean,Mathlib/FieldTheory/Minpoly/Field.lean |
4 |
9 |
['alainchmt', 'github-actions', 'tb65536'] |
nobody |
3-62821 3 days ago |
5-30238 5 days ago |
7-5129 7 days |
| 33731 |
nielsvoss author:nielsvoss |
feat(Analysis/InnerProductSpace): definition of singular values for finite-dimensional inner product spaces |
This PR defines the singular values for linear maps between finite-dimensional inner product spaces.
The API is designed in a way that allows it to be generalized to the approximation numbers, as defined in #32126.
See the discussion on Zulip: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Singular.20Value.20Decomposition/with/558914024
---
- [x] depends on: #34362
- [x] depends on: #34660
- [x] depends on: #35174
- [x] depends on: #35236
- [x] depends on: #35582
- [x] depends on: #36106
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
216/0 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/SingularValues.lean |
2 |
27 |
['b-mehta', 'dupuisf', 'eric-wieser', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'nielsvoss', 'themathqueen'] |
nobody |
3-53517 3 days ago |
3-53393 3 days ago |
3-53658 3 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 |
6 |
['dagurtomas', 'github-actions', 'pevogam'] |
dagurtomas assignee:dagurtomas |
3-43276 3 days ago |
13-6230 13 days ago |
13-6289 13 days |
| 35568 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): switch NormedSpace instance to `projectiveSeminorm` |
The PR switches the `NormedSpace` instance on `PiTensorProduct`s from `injectiveSeminorm` to `projectiveSeminorm` and updates all follow-up results.
The signature of `norm_eval_le_projectiveSeminorm` is changed to match the one of `norm_eval_le_injectiveSeminorm`.
This is the second 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).
---
- [x] depends on: #35567
This series is the result of splitting up #34137. More discussion there.
Co-authored-by: Davood H. H. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
27/29 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
5 |
['github-actions', 'goliath-klein', 'mathlib-dependent-issues', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
3-19844 3 days ago |
3-19844 3 days ago |
10-25836 10 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 |
11 |
['DavidLedvinka', 'github-actions', 'metakunt', 'pfaffelh'] |
kex-y and ocfnash assignee:ocfnash assignee:kex-y |
3-5958 3 days ago |
14-10167 14 days ago |
56-15866 56 days |
| 35287 |
arnoudvanderleer author:arnoudvanderleer |
feat(AlgebraicTopology/SimplicialSet): define isomorphisms in simplicial sets, and the coherent isomorphism simplicial set |
show that any edge in a simplicial set, that is the image of the forward edge of the coherent isomorphism under a simplicial set morphism, is an isomorphism.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
new-contributor
infinity-cosmos
|
339/3 |
Mathlib.lean,Mathlib/AlgebraicTopology/SimplicialSet/CoherentIso.lean,Mathlib/AlgebraicTopology/SimplicialSet/CompStruct.lean,Mathlib/AlgebraicTopology/SimplicialSet/StdSimplex.lean,Mathlib/CategoryTheory/CodiscreteCategory.lean |
5 |
66 |
['arnoudvanderleer', 'github-actions', 'joelriou', 'robin-carlier'] |
nobody |
2-64677 2 days ago |
20-53600 20 days ago |
2-17522 2 days |
| 36637 |
Smithl-Lin author:Smithl-Lin |
feat(InformationTheory): Pinsker's inequality for finite distributions |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
507/0 |
Mathlib.lean,Mathlib/InformationTheory/Pinsker.lean |
2 |
2 |
['github-actions'] |
nobody |
2-41877 2 days ago |
2-41950 2 days ago |
2-42463 2 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
|
91/1 |
Mathlib/Analysis/Asymptotics/Defs.lean |
1 |
17 |
['github-actions', 'j-loreaux', 'khwilson'] |
j-loreaux assignee:j-loreaux |
2-33823 2 days ago |
2-33874 2 days ago |
18-13918 18 days |
| 36641 |
Smithl-Lin author:Smithl-Lin |
feat(Probability/Martingale): Ville's inequality for nonneg supermart… |
…ingales
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
110/0 |
Mathlib.lean,Mathlib/Probability/Martingale/Ville.lean |
2 |
2 |
['github-actions'] |
nobody |
2-33231 2 days ago |
2-33297 2 days ago |
2-35290 2 days |
| 36324 |
psinary-sketch author:psinary-sketch |
feat(NumberTheory/LSeries): Schwarz reflection for completedRiemannZeta₀ |
---
Three new theorems about `completedRiemannZeta₀`:
- `completedRiemannZeta₀_conj`: Schwarz reflection
`Λ₀(conj s) = conj(Λ₀(s))`
- `completedRiemannZeta₀_im_eq_zero_on_half`: the completed zeta
function is real-valued on the critical line
- `completedRiemannZeta₀_conj_eq_self_on_half`: equivalent fixed-point
formulation
The Schwarz reflection follows from the Mellin representation: the
kernel is real-valued, so the integral commutes with conjugation via
`integral_conj`. The critical-line results compose this with the
functional equation. |
t-number-theory
new-contributor
|
147/0 |
Mathlib.lean,Mathlib/NumberTheory/LSeries/SchwarzReflection.lean |
2 |
13 |
['SnirBroshi', 'github-actions', 'psinary-sketch'] |
alexjbest assignee:alexjbest |
2-20213 2 days ago |
2-20271 2 days ago |
5-38737 5 days |
| 36646 |
NoahW314 author:NoahW314 |
doc(Topology/Homotopy): fix ContinuousMap.Homotopy docstrings |
Some of the docstrings referenced Homotopy (from Algebra/Homology) instead of ContinuousMap.Homotopy.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
15/11 |
Mathlib/Topology/Homotopy/Basic.lean |
1 |
2 |
['erdOne', 'github-actions'] |
nobody |
2-17186 2 days ago |
2-19920 2 days ago |
2-19873 2 days |
| 36379 |
JadAbouHawili author:JadAbouHawili |
doc: module docs for Finset Lattice and Defs |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
6/7 |
Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finset/Lattice/Basic.lean |
2 |
4 |
['JadAbouHawili', 'github-actions'] |
joneugster assignee:joneugster |
2-16743 2 days ago |
8-11108 8 days ago |
8-12712 8 days |
| 36650 |
Ljon4ik4 author:Ljon4ik4 |
feat: added simp lemmas to LieRinehartAlgebra |
This pull request adds simp lemmas for the defining properties of Lie-Rinehart-Algebras.
Additionally the definition of anchor is moved out of the Hom namespace.
(Even though the anchor itself is a Hom, it is an object associated to an LR-algebra, not a Hom of algebras).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
25/13 |
Mathlib/Algebra/LieRinehartAlgebra/Defs.lean |
1 |
2 |
['github-actions'] |
nobody |
2-10749 2 days ago |
2-10828 2 days ago |
2-10781 2 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
|
128/1 |
Mathlib/MeasureTheory/Integral/Bochner/Set.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
4 |
19 |
['CoolRmal', 'Deep0Thinking', 'EtienneC30', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
2-10310 2 days ago |
5-16879 5 days ago |
30-41067 30 days |
| 36651 |
Ljon4ik4 author:Ljon4ik4 |
feat: compatible (pairs of) derivations form a Lie algebra |
Given a map of $R$-algebras $\sigma: A\to A'$, a derivation $X$ of $A$ is called compatible with a Derivation $X'$ of $A'$, if $\sigma\circ X =X'\circ \sigma$. Given two such pairs $(X,X')$ and $(Y,Y')$, their Lie brackets $([X,Y], [X',Y'])$ again form such a pair. This concept is relevant in differential geometry, where $A$, $A'$ are the algebras of smooth functions on manifolds and $\sigma$ comes from a smooth map between manifolds. (In this case one calls the vector fields (= Derivations) 'related').
This concept can be encoded by the fact that the compatible Derivations form a Lie subalgebra of the direct sum of the derivations of $A$ with the derivations of $A'$.
In this PR we add this fact, along with a convenient way to express the direct sum of two Lie algebras, as a special case of their semidirect sum. (There already is a direct sum construction for aribtrary families of Lie algebras in `Mathlib.Algebra.Lie.DirectSum`), but I don't know if there is a very convenient way to use it in the binary case.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
39/0 |
Mathlib/Algebra/Lie/SemiDirect.lean,Mathlib/RingTheory/Derivation/Lie.lean |
2 |
3 |
['github-actions'] |
nobody |
2-3498 2 days ago |
2-3563 2 days ago |
2-4025 2 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
|
113/2 |
Mathlib/MeasureTheory/Function/AEEqFun.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Measure/QuasiMeasurePreserving.lean,Mathlib/Order/Filter/Basic.lean |
4 |
33 |
['ADedecker', 'EtienneC30', 'github-actions', 'samueloettl'] |
ADedecker assignee:ADedecker |
2-1954 2 days ago |
2-52703 2 days ago |
22-45642 22 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'] |
nobody |
1-85389 1 day ago |
69-55626 69 days ago |
69-55579 69 days |
| 36491 |
aditya-ramabadran author:aditya-ramabadran |
feat(Analysis/Distribution): define Dirac delta distribution |
Defines Dirac delta distribution (classical)
Closes #36464
* Note: Used `continuous_eval_const` in defining Delta in Distribution.lean, rather than the way it's done in TemperedDistribution.lean (which could also work)
* Also chose to define for $x \in \Omega$ rather than all $x \in E$, can make the other way if that's better?
---
**Testing**:
```lean
example (x : E) : Continuous fun φ : 𝓓^{n}(Ω, F) => φ x :=
continuous_eval_const x
```
Lean builds successfully
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
29/0 |
Mathlib/Analysis/Distribution/ContDiffMapSupportedIn.lean,Mathlib/Analysis/Distribution/Distribution.lean,Mathlib/Analysis/Distribution/TestFunction.lean |
3 |
2 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
1-85185 1 day ago |
5-26123 5 days ago |
5-26076 5 days |
| 36667 |
NoneMore author:NoneMore |
feat(ModelTheory): add `exClosure` definition for first-order formulas |
Prepare for moving realizations between elementarily equivalent structures.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
47/0 |
Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean |
2 |
2 |
['github-actions'] |
nobody |
1-69507 1 day ago |
1-69605 1 day ago |
1-69558 1 day |
| 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
|
213/2 |
Mathlib.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
4 |
7 |
['BryceT233', 'github-actions', 'joneugster', 'mathlib-bors', 'wwylele'] |
erdOne assignee:erdOne |
1-65460 1 day ago |
11-79167 11 days ago |
20-62011 20 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-64750 1 day ago |
14-5509 14 days ago |
29-61130 29 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-64729 1 day ago |
20-76737 20 days ago |
23-64050 23 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'] |
riccardobrasca assignee:riccardobrasca |
1-64702 1 day ago |
15-66747 15 days ago |
20-79174 20 days |
| 36245 |
BryceT233 author:BryceT233 |
feat(RingTheory/LocalRing): introduce algebra map version of `ResidueField.map` |
This PR added `IsLocalHom` instances to `AlgHom` and introduced the algebra map version of `IsLocalRing.ResidueField.map`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-ring-theory
|
57/0 |
Mathlib/RingTheory/LocalRing/ResidueField/Basic.lean,Mathlib/RingTheory/LocalRing/RingHom/Basic.lean |
2 |
2 |
['github-actions'] |
mattrobball assignee:mattrobball |
1-64667 1 day ago |
10-66919 10 days ago |
10-66969 10 days |
| 36473 |
AlexeyMilovanov author:AlexeyMilovanov |
feat(Computability.Primrec.List): add primrec proofs for drop, takeWhile, and dropWhile |
This PR adds missing proofs that several standard `List` operations are primitive recursive (Primrec), as well as a basic property of `tail` and `drop`.
Specifically, it introduces:
* `List.tail_iterate`: Applying `tail` to a list `n` times is equivalent to dropping `n` elements.
* `Primrec.list_drop`: `List.drop` is primitive recursive.
* `Primrec.list_take`: `List.take` is primitive recursive.
* `Primrec.list_takeWhile`: `List.takeWhile` is primitive recursive.
* `Primrec.list_dropWhile`: `List.dropWhile` is primitive recursive.
These are basic computability properties for lists that were currently missing from `Mathlib.Computability.Primrec.List`. All proofs use standard combinators and `of_eq`. |
t-computability
new-contributor
maintainer-merge
|
27/0 |
Mathlib/Computability/Primrec/List.lean,Mathlib/Data/List/TakeDrop.lean |
2 |
23 |
['AlexeyMilovanov', 'Komyyy', 'github-actions'] |
nobody |
1-54092 1 day ago |
1-57386 1 day ago |
4-77511 4 days |
| 36677 |
AlexeyMilovanov author:AlexeyMilovanov |
feat(Computability.Partrec): add computability of Nat.find |
This PR bridges `Partrec.rfind` with total unbounded search (`Nat.find`).
It adds:
* `Computable.find`: Proves that `x ↦ Nat.find (h_ex x)` is computable for a computable decidable predicate `P`.
* `Computable.rightInverse_of_surjective`: Proves that the right inverse of a computable surjective function is computable. |
t-computability
new-contributor
|
31/0 |
Mathlib/Computability/Partrec.lean |
1 |
5 |
['AlexeyMilovanov', 'github-actions', 'vlad902'] |
nobody |
1-42687 1 day ago |
1-47159 1 day ago |
1-47112 1 day |
| 36653 |
Ljon4ik4 author:Ljon4ik4 |
feat: LieDerivations of Lie Algebras obtained by BaseChange |
Let $R$ be a commutative ring. Given a commutative $R$-algebra $A$ and an $R$-Lie algebra $L$, there is a natural Lie algebra structure on $A\otimes_R L$. In this file we add the facts that derivations of $A$, as well as Lie Derivations of $L$ induce Lie derivations of $A\otimes_R L$. The corresponding assignments are Lie algebra homomorphisms.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
131/0 |
Mathlib.lean,Mathlib/Algebra/Lie/Derivation/BaseChange.lean |
2 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
1-14560 1 day ago |
1-14589 1 day ago |
1-83833 1 day |
| 34937 |
tannerduve author:tannerduve |
feat(Computability): semilattice instance on Turing degrees |
This PR equips `TuringDegree` with a `SemilatticeSup` structure by introducing the Turing join, proving usual least-upper-bound properties, and lifting these to degrees (quotients). In support of this, it extends the existing `RecursiveIn` API with some lemmas used in the degree theory.
The main contribution is the `SemilatticeSup` instance on `TuringDegree`. We define the Turing join as follows
```
turingJoin (f g) : ℕ → ℕ -- notation: f ⊕ g
```
and prove it is a least upper bound:
* `left_le_join`, `right_le_join`
* `join_le`
* monotonicity and congruence lemmas (`join_mono`, `join_congr`)
We lift this to degrees in `TuringDegree.sup`, `TuringDegree.le_sup_left`, `TuringDegree.le_sup_right`, and `TuringDegree.sup_le`
```
instance : SemilatticeSup TuringDegree
```
**New additions to `RecursiveIn.lean`:**
- `liftPrim`, `liftPrimrec`, `RecursiveIn'`, `ComputableIn`, `ComputableIn₂`: Encodes partial/total functions between `Primcodable` types as `ℕ →. ℕ`, analogous to `Partrec`/`Computable`.
- `of_eq`, `of_eq_tot`, `of_primrec`, `some`, `none`, `mono`, `subst`: Standard closure properties for `RecursiveIn`.
- `cond_const`, `cond_core_rfind`, `cond`, `ComputableIn.cond`: Shows `RecursiveIn` is closed under conditionals when the guard is absolutely computable
- `Nat.Partrec.recursiveIn`, `Computable.computableIn`: Every partrec/computable function is recursive in any oracle set.
Small addition to `Partrec`
we add to `Mathlib.Computability.Partrec` a small helper def (`Partrec.kronecker` and related `rfind` lemmas) representing the function that returns 1 if its two (unpaired) arguments are equal, and 0 otherwise, which is used in the proof of `cond`
## TODO
Some current `RecursiveIn` proofs such as `cond_core_rfind` still work directly with the inductive constructors and are thus very long. A follow up could add a combinator-style closure library by essentially relativizing all the results and lemmas in `Partrec`, and proofs could be golfed heavily as they are in `Partrec`
## Note: AI Usage
[Aleph prover](https://logicalintelligence.com/aleph-coding-ai/) was allowed to prove an earlier version of `cond_core_rfind`, which included stating and proving the lemma `cond_const` but the proofs have since been iterated on manually
Cursor was allowed to run git commands and edit docstrings/headers, and was used in setting up the module structure of the files |
t-computability
new-contributor
large-import
|
644/63 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
14 |
['eric-wieser', 'github-actions', 'plp127', 'tannerduve', 'vihdzp'] |
Komyyy assignee:Komyyy |
0-85222 23 hours ago |
27-18061 27 days ago |
36-74074 36 days |
| 36421 |
ROTARTSI82 author:ROTARTSI82 |
feat(RingTheory/IsAdjoinRoot): add mkOfAdjoinEqTop' |
Alternative hypothesis to existing theorem: prove the result from a `Module.Free `hypothesis instead of `IsIntegrallyClosed`. If `α` generates `S` as an algebra, then `S` is given by adjoining a root of `minpoly R α`.
---
Hello, we are the Algebraic Geometry group from the UW Math AI lab, and this is our first PR! This definition of `mkOfAdjoinEqTop'` generalizes the existing `mkOfAdjoinEqTop` and shows the result from `Module.Free` instead of `IsIntegrallyClosed`. It is used in future results that we would like to upstream at https://github.com/uw-math-ai/monogenic-extensions, which is a project to formalize lemmas 3.1 and 3.2 from https://arxiv.org/abs/2503.07846.
Co-authored-by: George Peykanu
Co-authored-by: Bryan Boehnke
Co-authored-by: Bianca Viray <67076332+b-viray@users.noreply.github.com>
-->
[](https://gitpod.io/from-referrer/)
|
new-contributor
large-import
|
57/0 |
Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/RingTheory/IsAdjoinRoot.lean |
2 |
3 |
['ROTARTSI82', 'github-actions'] |
dupuisf assignee:dupuisf |
0-85213 23 hours ago |
7-292 7 days ago |
7-245 7 days |
| 36447 |
sharky564 author:sharky564 |
feat(Analysis/Topology): Generalize Riesz' theorem to locally compact… |
… T2 topological vector spaces
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
large-import
|
130/67 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean |
2 |
5 |
['CoolRmal', 'github-actions', 'sharky564'] |
j-loreaux assignee:j-loreaux |
0-85211 23 hours ago |
6-27559 6 days ago |
6-27541 6 days |
| 36463 |
AlexeyMilovanov author:AlexeyMilovanov |
feat(Data.Nat.Bits): add Nat.ofBits and prove bits_injective |
This PR introduces `Nat.ofBitsList` for `List Bool` and provides the missing proofs that the standard binary representation `Nat.bits` is injective (`Nat.bits_injective`) and possesses a right inverse for normalized lists (`Nat.bits_ofBitsList`).
`ofBitsList` is implemented as an `abbrev` using `foldr` (keeping it transparent to tactics like `simp`). It serves as the exact left inverse to `bits`. Furthermore, `bits_ofBitsList` establishes that `bits` and `ofBitsList` form a bijection between `ℕ` and the set of lists with no trailing `false` values.
This avoids the name collision with `Nat.ofBits` from `Batteries` and aligns with previous Zulip discussions (see [here](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/PR.20.2335857.3A.20Bijective.20Base-2.20Numeration)) regarding the utility of having a complete list-based API for `Nat.bits` in the library.
CC: @linesthatinterlace
- Adds `Nat.ofBitsList` (as an `abbrev`)
- Adds `Nat.ofBitsList_bits` (left inverse property)
- Adds `Nat.bits_injective`
- Adds `Nat.ofBitsList_eq_zero_iff` (helper lemma for lists without trailing zeros)
- Adds `Nat.bits_ofBitsList` (right inverse property) |
t-data
new-contributor
|
68/1 |
Mathlib/Data/Nat/Bits.lean |
1 |
3 |
['github-actions', 'linesthatinterlace'] |
joneugster assignee:joneugster |
0-85208 23 hours ago |
6-569 6 days ago |
6-622 6 days |
| 36665 |
NoahW314 author:NoahW314 |
feat: add indiscrete topology lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
34/0 |
Mathlib/Topology/Algebra/Group/Basic.lean,Mathlib/Topology/Algebra/Monoid.lean,Mathlib/Topology/Order.lean |
3 |
6 |
['NoahW314', 'eric-wieser', 'github-actions'] |
nobody |
0-77669 21 hours ago |
1-71687 1 day ago |
1-71640 1 day |
| 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
|
51/79 |
Mathlib/GroupTheory/GroupAction/MultipleTransitivity.lean,Mathlib/Logic/Equiv/Fintype.lean |
2 |
26 |
['LLaurance', 'cameronfreer', 'github-actions', 'mathlib-merge-conflicts', 'tb65536'] |
mattrobball assignee:mattrobball |
0-76575 21 hours ago |
9-17366 9 days ago |
30-38293 30 days |
| 36386 |
SnkXyx author:SnkXyx |
feat(Algebra/MvPolynomial/Degrees): add some lemmas about `degreeOf` |
These lemmas are used in #36103
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
84/0 |
Mathlib/Algebra/MvPolynomial/Degrees.lean |
1 |
3 |
['Hagb', 'github-actions'] |
dagurtomas assignee:dagurtomas |
0-68951 19 hours ago |
7-79223 7 days ago |
7-79176 7 days |
| 34487 |
martinwintermath author:martinwintermath |
feat(LinearAlgebra/SesquilinearForm/Basic): add instances for SeparatingLeft, SeparatingRight and Nondegenerate |
Add typeclass instances for `Fact B.SeparatingLeft`, `Fact B.SeparatingRight`, `Fact B.Nondegenerate`:
* inferring `Fact B.flip.SeparatingLeft` from `Fact B.SeparatingRight` and vice versa
* inferring `Fact B.SeparatingLeft` and `Fact B.SeparatingRight` from `Fact B.Nondegenerate`
* inferring `Fact B.SeparatingLeft` and `Fact B.Nondegenerate` for `.id` and `Dual.eval`
* inferring `Fact B.Nondegenerate` from `B.IsPerfPair`
I also updated `PointedCone.dual_univ` to demonstrate the usefulness of these additions. Note that I needed to add an import to `Cone/Dual.lean` which somehow imports cardinals. So I needed to remove cardinals from `assert_not_exists`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
large-import
label:t-algebra$ |
87/16 |
Mathlib/Geometry/Convex/Cone/Dual.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean,Mathlib/LinearAlgebra/PerfectPairing/Basic.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean |
4 |
3 |
['github-actions', 'martinwintermath', 'mathlib4-merge-conflict-bot'] |
nobody |
0-52491 14 hours ago |
1-8223 1 day ago |
1-8176 1 day |
| 36720 |
YanYablonovskiy author:YanYablonovskiy |
feat(Order): `OrderType.lift` and more order type API |
Adding the universe lifting operation to `OrderType` , addresses a 'TODO' .
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
maintainer-merge
|
36/2 |
Mathlib/Order/Types/Defs.lean |
1 |
17 |
['YaelDillies', 'YanYablonovskiy', 'github-actions'] |
nobody |
0-49159 13 hours ago |
0-49223 13 hours ago |
0-50350 13 hours |
| 36274 |
JTylM author:JTylM |
feat(Combinatorics/SimpleGraph/Matching): implemented the matchingNumber of a graph |
---
I implemented the matchingNumber as described in the issue and proved some statements including
showing that there exists a matching achieving the matchingNumber.
matchingNumber is increasing under injective maps
matchingNumber is equal under isomorphisms
matchingNumber of a matching is the cardinality of the matching
This is my first PR and i had some trouble with some of the proofs, especially with the proof for matchingNumber.isAttained. So any suggestions on how to make the proofs shorter would be welcome. Also i was not sure about the naming of some of the theorems so i would apprechiate feedback here as well.
|
new-contributor
t-combinatorics
|
341/2 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean |
1 |
7 |
['JTylM', 'SnirBroshi', 'SproutSeeds', 'github-actions'] |
nobody |
0-35296 9 hours ago |
0-35360 9 hours ago |
6-14808 6 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
LLM-generated
|
174/0 |
Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean |
2 |
2 |
['github-actions', 'grunweg'] |
j-loreaux assignee:j-loreaux |
0-35290 9 hours ago |
42-74803 42 days ago |
42-74756 42 days |
| 36683 |
rdeager author:rdeager |
feat(Algebra/Module/LocalizedModule): algebra lemmas for localization equivalences |
Add uniqueness/bijectivity lemmas for localization factoring maps and a categorical
`IsIso` wrapper in `ModuleCat`:
- `IsLocalizedModule.linearEquiv_comp`: composition `linearEquiv ∘ₗ f = g`
- `IsLocalizedModule.eq_linearEquiv`: a factoring map equals `linearEquiv`
- `IsLocalizedModule.bijective`: a factoring map is bijective (analogue of `IsLocalization.bijective`)
- `IsLocalizedModule.isIso_of_comp_eq`: categorical `IsIso` for factoring morphism in `ModuleCat`
### Declarations
- `IsLocalizedModule.linearEquiv_comp`
- `IsLocalizedModule.eq_linearEquiv`
- `IsLocalizedModule.bijective`
- `IsLocalizedModule.isIso_of_comp_eq`
### Motivation
These lemmas are needed by the pushforward-tilde iso for quasi-coherent sheaves
([Stacks, Tag 01I9], Part 2), where the comparison map on each basic open `D(r)`
factors between two localizations of global sections. They will be used in a
follow-up PR adding `Mathlib.AlgebraicGeometry.Modules.PushforwardTilde`.
### Details
The algebra lemmas (`linearEquiv_comp`, `eq_linearEquiv`, `bijective`) are placed in
`LocalizedModule/Basic.lean` alongside the existing `linearEquiv`. The categorical
wrapper `isIso_of_comp_eq` uses `eq_linearEquiv` to show the factoring morphism equals
the canonical `linearEquiv`, then lifts to `IsIso` via `ModuleIso`.
### AI Assistance
This PR was developed with Claude Code (Claude Opus).
The tool was used for proof development, API discovery, and code formatting.
All code has been reviewed and verified by the author.
|
t-algebra
new-contributor
LLM-generated
label:t-algebra$ |
34/0 |
Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean |
2 |
2 |
['github-actions'] |
nobody |
0-34514 9 hours ago |
1-33225 1 day ago |
1-33810 1 day |
| 36443 |
Fieldnote-Echo author:Fieldnote-Echo |
feat(Combinatorics/SimpleGraph): add SimpleGraph.ball (open metric ball) |
Add `SimpleGraph.ball`, the open ball in the graph extended metric.
## Design decisions
- **Open ball** (strict `<`, not `≤`): `ball c ⊤` coincides with the connected
component of `c`, whereas a closed ball would give `closedBall c ⊤ = univ`.
- **Named `SimpleGraph.ball`** (not `eball`): since `dist`-valued balls are less
natural for disconnected graphs, the `e` prefix is unnecessary.
- **Graph-specific** (not via `PseudoEMetricSpace`): avoids importing `ℝ`.
AI assistance: Claude (Opus 4.6) helped draft and iterate on the implementation. I reviewed the code line by line and vouch for the final contents.
Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/SimpleGraph.20metric.20balls/with/577846803).
---
[](https://gitpod.io/from-referrer/) |
t-combinatorics
new-contributor
LLM-generated
|
59/3 |
Mathlib/Combinatorics/SimpleGraph/Metric.lean |
1 |
36 |
['Fieldnote-Echo', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'lauramonk', 'vlad902'] |
nobody |
0-34492 9 hours ago |
6-33004 6 days ago |
6-32957 6 days |
| 36320 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics): add Schreier graph definition and covering property |
Defines Schreier graphs as quivers with labeled edges.
`SchreierGraph V ι`: type alias for vertices with quiver structure
`schreierGraphLabelling`: prefunctor extracting edge labels
`schreierGraphLabelling_isCovering`: the labelling is a covering for group actions
`schreierGraph_action_commute`: label-preserving maps commute with the action
Ported from [Lean 3 PR #18693](https://github.com/leanprover-community/mathlib3/pull/18693).
This PR was written with AI assistance (Claude). The code has been reviewed by the author and their advisor.
---
This is the first in a series of PRs splitting #35467 into smaller pieces, as suggested by reviewers. Upcoming PRs will add word evaluation, paths, connectivity, automorphisms, examples, and Cayley sum graphs.
|
t-combinatorics
new-contributor
LLM-generated
|
175/0 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/Schreier.lean |
2 |
2 |
['github-actions'] |
nobody |
0-34477 9 hours ago |
9-36007 9 days ago |
9-35960 9 days |
| 35069 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): simple polygons and boundary map |
This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution.
- [x] depends on: #34598
---
|
new-contributor
t-euclidean-geometry
LLM-generated
|
360/0 |
Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean |
4 |
29 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] |
JovanGerb assignee:JovanGerb |
0-34145 9 hours ago |
19-24842 19 days ago |
21-59081 21 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
|
274/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 |
66 |
['Brian-Nugent', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smorel394'] |
dagurtomas assignee:dagurtomas |
0-27652 7 hours ago |
1-55015 1 day ago |
8-22146 8 days |
| 35193 |
Brian-Nugent author:Brian-Nugent |
feat(Topology/Closeds): implement category of closed sets in topological spaces |
I copied over the nice API for working with `TopologicalSpace.Opens` as a category over for `TopologicalSpace.Closeds`. The only thing that did not immediately transfer was `Topology.IsInducing.functorObj` so I omitted it.
Based on work of @kim-em
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
385/0 |
Mathlib.lean,Mathlib/Topology/Category/TopCat/Closeds.lean |
2 |
10 |
['Brian-Nugent', 'dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
0-26618 7 hours ago |
17-34635 17 days ago |
14-59067 14 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
|
547/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/Bases.lean,docs/references.bib |
3 |
220 |
['Ruben-VandeVelde', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'mike1729', 'sgouezel', 'themathqueen'] |
sgouezel assignee:sgouezel |
0-25631 7 hours ago |
0-25686 7 hours ago |
41-58529 41 days |
| 31366 |
FaffyWaffles author:FaffyWaffles |
feat(Analysis/SpecialFunctions/StirlingRobbins): Robbins' sharp stepwise bound for stirlingSeq |
This PR refactors `Stirling.lean` to use Robbin's bound `log (stirlingSeq n) - log (stirlingSeq (n+1)) ≤ 1 / (12 n (n + 1))`.
The original PR was by @FaffyWaffles but the PR has now been adopted by @tb65536.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
50/46 |
Mathlib/Analysis/SpecialFunctions/Stirling.lean |
1 |
18 |
['FaffyWaffles', 'github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'tb65536'] |
nobody |
0-19489 5 hours ago |
0-19689 5 hours ago |
4-75364 4 days |
| 36069 |
Equilibris author:Equilibris |
feat(Data/PFunctor): Universe generic W |
Previously `W.ind` was limited to `Prop`.
It can for free be changed to `Sort w` forall w.
---
When changing adding `elab_as_elim` it broke the usages in `Fix.lean`.
I had to change `apply ...`s to use `induction ... using ...` but this a minor change.
I added a `simp` lemma to the `w_ind_wMk` as: it is `rfl` and will almost certainly we used at reference site.
It might in the future be useful to add `simp` to `wRec_eq` as well.
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
41/31 |
Mathlib/Data/PFunctor/Multivariate/W.lean,Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean |
2 |
10 |
['Equilibris', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
0-16969 4 hours ago |
3-39442 3 days ago |
9-6470 9 days |
| 32692 |
WilliamCoram author:WilliamCoram |
feat: define multivariate restricted power series |
We define multivariate restricted power series over a normed ring R, and show the properties that they form a ring when R has the ultrametric property.
This work generalises my previous work in #26089 which will need to be refactored.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-number-theory
new-contributor
|
178/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Order/Antidiag.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean |
3 |
38 |
['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts'] |
alreadydone assignee:alreadydone |
0-9158 2 hours ago |
5-68324 5 days ago |
10-75328 10 days |
| 36753 |
jacobparish author:jacobparish |
doc(Computability): fix misnamed theorems |
---
It appears that in #24811, some theorems in `PartrecCode.lean` were renamed, but the docs at the top were not updated.
[](https://gitpod.io/from-referrer/)
|
t-computability
new-contributor
|
3/3 |
Mathlib/Computability/PartrecCode.lean |
1 |
2 |
['github-actions'] |
nobody |
0-7905 2 hours ago |
0-7981 2 hours ago |
0-7934 2 hours |
| 36752 |
Ljon4ik4 author:Ljon4ik4 |
feat: Alternative definition of a tensor product for an algebra |
Let $A$ be an $R$-algebra and $M$ and $N$ $A$-modules.
Then the tensor product $M\otimes_A N$ can be constructed as a quotient of $M\otimes_R N$ by the submodule generated by elements of the shape $am\otimes n - m\otimes an$. This PR realizes this construction and shows that it is isomorphic to the general definition of $M\otimes_A N$.
As one consequence we obtain a description of the kernel of `mapOfCompatibleSMul'` as a span of elements of the shape $am\otimes n - m\otimes an$.
* I wasn't sure where exactly to put it: Currently it is in `Algebra.TensorProduct`, which I think could be a place for more results of tensor products over algebras in the long term, but maybe some file inside `Mathlib.LinearAlgebra.TensorProduct` could also make sense.
* I am not sure if it is very nice to mention 'variable (R A M N)' everywhere, they could also be defined as explicit in the top of the document, and explicitly omitted where unneeded.
* The `omit [IsScalarTower R A N] in` was suggested by the linter, I am not sure I understand why
* Since the relations contain negation, this procedure only works if some of the ingredients admit negation, one could imagine alternative versions (e.g. when $N$ admits negations and not $M$) but this seemed the most intuitive one.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
147/0 |
Mathlib.lean,Mathlib/Algebra/Algebra/TensorProduct.lean |
2 |
2 |
['github-actions'] |
nobody |
0-6706 1 hour ago |
0-6775 1 hour ago |
0-7661 2 hours |