Welcome to the mathlib review page. Everybody's help with reviewing is appreciated. Reviewing contributions is important, and everybody is welcome to review pull requests! If you're not sure how, the pull request review guide is there to help you.
This page contains tables of
| Number |
Author |
Title |
Description |
Labels |
+/- |
Modified files (first 100) |
📝 |
💬 |
All users who commented or reviewed |
Assignee(s) |
Updated |
Last status change |
total time in review |
| 33963 |
gasparattila author:gasparattila |
feat(Topology/UniformSpace/Closeds): completeness of `(Nonempty)Compacts` |
This PR generalizes the completeness result of `NonemptyCompacts` from metric spaces to uniform spaces.
---
- [x] depends on: #34036
[](https://gitpod.io/from-referrer/)
|
t-topology |
71/8 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/UniformSpace/Closeds.lean |
2 |
3 |
['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
PatrickMassot assignee:PatrickMassot |
41-86299 1 month ago |
41-86317 41 days ago |
52-76035 52 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 |
41-85640 1 month ago |
41-85658 41 days ago |
47-56751 47 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 |
41-85148 1 month ago |
41-85167 41 days ago |
47-55894 47 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 |
40-62037 1 month ago |
40-62099 40 days ago |
52-20772 52 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 |
40-40079 1 month ago |
55-29355 55 days ago |
59-80470 59 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 |
40-40076 1 month ago |
48-46451 48 days ago |
48-60212 48 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 |
39-40086 1 month ago |
52-57775 52 days ago |
52-60644 52 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 |
38-40037 1 month ago |
67-3258 67 days ago |
67-2916 67 days |
| 33928 |
jsm28 author:jsm28 |
feat(Combinatorics/Tiling/TileSet): indexed families of tiles |
Define the type `TileSet` for indexed families of tiles (in a discrete context), and some associated definitions (including `symmetryGroup`) and API lemmas.
`TileSet` can be used for tilings of the whole space; for tilings of part of the space; for patches of tiles (extracted from a tiling by considering tiles meeting some set of points, or considered on their own without extracting from a tiling); for multiple tilings (covering the space more than once). In particular, the fact that people study multiple tilings provides a clear justification for using indexed families rather than sets of tiles, and basic definitions and API lemmas generally work for all these different uses of `TileSet` (sometimes with weak constraints such as tiles being finite, nonempty and only having finitely many tiles meeting any point of the space).
Definitions for saying e.g. "this `TileSet` is a tiling of the whole space" are to be included in subsequent files in subsequent PRs.
From AperiodicMonotilesLean.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
460/0 |
Mathlib.lean,Mathlib/Combinatorics/Tiling/TileSet.lean |
2 |
22 |
['b-mehta', 'eric-wieser', 'github-actions', 'jsm28', 'vihdzp'] |
kmill assignee:kmill |
37-69376 1 month ago |
56-57296 56 days ago |
56-56954 56 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 |
37-21535 1 month ago |
48-45951 48 days ago |
49-78442 49 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 |
35-49846 1 month ago |
35-49846 35 days ago |
87-85707 87 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 |
34-68952 1 month ago |
34-69147 34 days ago |
43-70488 43 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 |
32-69863 1 month ago |
49-28480 49 days ago |
49-36131 49 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 |
32-64073 1 month ago |
50-60246 50 days ago |
50-59904 50 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 |
30-40156 1 month ago |
35-22492 35 days ago |
35-25114 35 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 |
30-40154 1 month ago |
41-86091 41 days ago |
47-62247 47 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 |
29-39889 1 month ago |
33-40279 33 days ago |
35-79907 35 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 |
29-39884 1 month ago |
35-55038 35 days ago |
35-54696 35 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 |
29-15615 1 month ago |
29-15615 29 days ago |
97-33725 97 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 |
29-9651 1 month ago |
61-19371 61 days ago |
88-57693 88 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 |
28-40002 1 month ago |
37-8617 37 days ago |
40-59789 40 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 |
28-39998 1 month ago |
36-80809 36 days ago |
36-82372 36 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 |
28-39994 1 month ago |
35-54807 35 days ago |
35-54465 35 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 |
27-76418 27 days ago |
27-78192 27 days ago |
27-79265 27 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 |
27-33397 27 days ago |
30-58260 30 days ago |
30-57918 30 days |
| 34969 |
kim-em author:kim-em |
feat(RingTheory/HopfAlgebra): prove antipode is antihomomorphism |
This PR proves that the antipode of a Hopf algebra is an antihomomorphism:
`antipode (a * b) = antipode b * antipode a`.
The proof uses the convolution algebra structure on `(A ⊗ A) →ₗ[R] A` and shows that `S ∘ μ` and `μ ∘ (S ⊗ S) ∘ comm` are both convolution inverses of `μ`, hence they must be equal by uniqueness of inverses.
This resolves a TODO listed in the file header.
🤖 Prepared with Claude Code |
t-ring-theory |
88/2 |
Mathlib/RingTheory/HopfAlgebra/Basic.lean |
1 |
1 |
['github-actions'] |
erdOne assignee:erdOne |
26-40136 26 days ago |
30-30386 30 days ago |
30-30044 30 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 |
25-80436 25 days ago |
25-80502 25 days ago |
39-1622 39 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 |
25-53031 25 days ago |
25-53031 25 days ago |
87-5942 87 days |
| 33944 |
artie2000 author:artie2000 |
feat(Algebra/Ring): formally real rings |
* Define formally real rings
* Prove basic inductive facts about them
Co-authored-by: Violeta Hernández Palacios
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
160/0 |
Mathlib.lean,Mathlib/Algebra/Ring/IsFormallyReal.lean |
2 |
24 |
['artie2000', 'github-actions', 'vihdzp'] |
mariainesdff assignee:mariainesdff |
25-47164 25 days ago |
34-34907 34 days ago |
36-37544 36 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 |
25-47147 25 days ago |
51-51683 51 days ago |
51-53339 51 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 |
25-40170 25 days ago |
33-43696 33 days ago |
36-56780 36 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 |
25-40169 25 days ago |
28-44752 28 days ago |
35-3940 35 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 |
24-40163 24 days ago |
28-43500 28 days ago |
28-43737 28 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 |
24-39882 24 days ago |
24-39902 24 days ago |
25-52674 25 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 |
23-40155 23 days ago |
27-50264 27 days ago |
27-49922 27 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 |
22-68927 22 days ago |
22-69751 22 days ago |
22-69409 22 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 |
22-68009 22 days ago |
22-69823 22 days ago |
22-69481 22 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 |
22-59972 22 days ago |
33-10781 33 days ago |
33-10439 33 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 |
22-59282 22 days ago |
47-2807 47 days ago |
47-4796 47 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 |
21-75204 21 days ago |
53-42373 53 days ago |
107-17538 107 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 |
21-46180 21 days ago |
34-55656 34 days ago |
34-55314 34 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 |
21-41649 21 days ago |
22-40947 22 days ago |
126-75 126 days |
| 35360 |
vlad902 author:vlad902 |
chore: rename `cycleGraph_EulerianCircuit` to `cycleGraph.cycle` |
Per [this](https://github.com/leanprover-community/mathlib4/pull/34797#discussion_r2807963752) review feedback, this definition is inappropriately named with an underscore and should be renamed.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
21/17 |
Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/ConcreteColorings.lean |
2 |
2 |
['github-actions', 'vlad902'] |
nobody |
20-73197 20 days ago |
23-73240 23 days ago |
23-72898 23 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 |
20-40167 20 days ago |
32-43953 32 days ago |
44-83346 44 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 |
20-15617 20 days ago |
49-10516 49 days ago |
49-17441 49 days |
| 35447 |
themathqueen author:themathqueen |
feat(LinearAlgebra/UnitaryGroup): the transpose and conjugate of a unitary matrix as a unitary matrix |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
35/0 |
Mathlib/LinearAlgebra/UnitaryGroup.lean |
1 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
18-40172 18 days ago |
21-74156 21 days ago |
21-74625 21 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 |
18-32510 18 days ago |
18-33864 18 days ago |
72-7268 72 days |
| 35285 |
SnirBroshi author:SnirBroshi |
feat(Algebra/LinearRecurrence): define a standard basis for the solution space of a linear recurrence |
Also `mkSol` is injective.
---
The hard work was already done by the existing equivalence `toInit`; this defines the basis that the equivalence provides and uses it to simplify a couple of proofs.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
24/12 |
Mathlib/Algebra/LinearRecurrence.lean |
1 |
1 |
['github-actions'] |
Vierkantor assignee:Vierkantor |
17-85243 17 days ago |
25-28530 25 days ago |
25-28188 25 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 |
17-82118 17 days ago |
17-82950 17 days ago |
42-4402 42 days |
| 34966 |
Deep0Thinking author:Deep0Thinking |
feat(MeasureTheory): add `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio` and `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic` |
This PR proves:
- `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio`
- `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic`
- `integral_Ioi_sub_Ioi`, `integral_Ioi_sub_Ioi'`, `integral_Iio_sub_Iio`, `integral_Iio_sub_Iio'`
- `Ioi_diff_Ioc`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
125/1 |
Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
3 |
14 |
['CoolRmal', 'Deep0Thinking', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
17-68627 17 days ago |
18-34149 18 days ago |
30-12406 30 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 |
17-57215 17 days ago |
17-57252 17 days ago |
45-79693 45 days |
| 35615 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Maps): lemmas about support |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
41/0 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
1 |
['github-actions'] |
nobody |
17-44678 17 days ago |
17-44755 17 days ago |
17-44413 17 days |
| 35616 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Copy): `IsContained` and `IsIndContained` are preorders |
---
This makes `calc` work and provides `Std.Refl` and `IsTrans` instances.
`grw` still doesn't work and mixing the two predicates in `calc` (to prove `IsContained`) also doesn't work.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
20/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
1 |
['github-actions'] |
nobody |
17-43810 17 days ago |
17-43889 17 days ago |
17-43547 17 days |
| 35613 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Clique): use `IsContained` instead of an explicit embedding from top |
This makes theorems require only a proof that a `Copy` exists rather than provide an explicit `Embedding`.
Also tag monotonicity lemmas with `@[gcongr]`.
---
This isn't a generalization per-se since one could use choice plus `Copy.topEmbedding` to upgrade the `IsContained` to an embedding, but `IsContained` makes more sense in theorems.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
37/36 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean |
3 |
1 |
['github-actions'] |
nobody |
17-43704 17 days ago |
17-43769 17 days ago |
17-43727 17 days |
| 35619 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Clique): intersection and union of cliques |
Plus a couple of lemmas.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
29/0 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
1 |
['github-actions'] |
nobody |
17-41541 17 days ago |
17-41634 17 days ago |
17-41292 17 days |
| 35295 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): `dropLast` of a cycle is a path |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
18/1 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean |
2 |
6 |
['Rida-Hamadani', 'SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
16-51584 16 days ago |
16-79126 16 days ago |
18-25693 18 days |
| 35011 |
whocares-abt author:whocares-abt |
feat(Combinatorics/SimpleGraph/Copy): add degree of copy less than original |
add two theorems relating degree of a graph and it's copy |
t-combinatorics
new-contributor
|
17/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
12 |
['SnirBroshi', 'github-actions', 'themathqueen', 'vihdzp'] |
nobody |
16-14587 16 days ago |
30-14826 30 days ago |
30-14484 30 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 |
15-40174 15 days ago |
31-39108 31 days ago |
39-46712 39 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 |
15-38494 15 days ago |
28-80182 28 days ago |
28-82318 28 days |
| 35642 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Walks/Operations): `p.dropLast.length` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
12/1 |
Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean |
1 |
1 |
['github-actions', 'vlad902'] |
nobody |
15-7936 15 days ago |
17-4824 17 days ago |
17-4482 17 days |
| 35150 |
JovanGerb author:JovanGerb |
chore(Order/OrderDual): move material on `OrderDual` |
This PR moves material about `OrderDual` from `Mathlib.Order.Synonym` to `Mathlib.Order.OrderDual`, so that these two files become independent. This way, `Mathlib.Order.Synonym` will not be on the long pole.
Note: it seems that the file `Mathlib.Order.Synonym` used to define `OrderDual`. Maybe that file should now be renamed to `Order.Lex`?
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-order
|
75/76 |
Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Order/Group/Synonym.lean,Mathlib/Data/Fintype/Defs.lean,Mathlib/Data/Nat/Cast/Synonym.lean,Mathlib/Data/PSigma/Order.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Data/Sigma/Order.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Order/Compare.lean,Mathlib/Order/Max.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/Order/OrderDual.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/Synonym.lean |
14 |
3 |
['MichaelStollBayreuth', 'bryangingechen', 'github-actions'] |
Vierkantor assignee:Vierkantor |
14-79692 14 days ago |
27-49480 27 days ago |
27-49739 27 days |
| 35631 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Walks/Operations): `p.dropLast.support` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
9/0 |
Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean |
1 |
2 |
['github-actions', 'vlad902'] |
nobody |
14-77448 14 days ago |
17-6205 17 days ago |
17-7528 17 days |
| 35664 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): the adjacency matrix of empty and complete graphs |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
11/0 |
Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean |
1 |
2 |
['IvanRenison', 'github-actions'] |
nobody |
14-62137 14 days ago |
16-43013 16 days ago |
16-42671 16 days |
| 35292 |
Rida-Hamadani author:Rida-Hamadani |
feat(SimpleGraph): taking twice from a walk equals taking the minimum |
this is an analogue to `List.take_take`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
5/0 |
Mathlib/Combinatorics/SimpleGraph/Walks/Operations.lean |
1 |
2 |
['SnirBroshi', 'github-actions'] |
nobody |
14-44543 14 days ago |
25-4437 25 days ago |
25-4095 25 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 |
14-40154 14 days ago |
25-68317 25 days ago |
35-30227 35 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 |
14-40149 14 days ago |
21-10087 21 days ago |
21-23237 21 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 |
14-40144 14 days ago |
19-442 19 days ago |
19-644 19 days |
| 35590 |
chrisflav author:chrisflav |
feat(Algebra): add `AlgHom.ulift` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
71/3 |
Mathlib/Algebra/Algebra/Basic.lean,Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Ring/ULift.lean |
3 |
4 |
['chrisflav', 'github-actions', 'wwylele'] |
kim-em assignee:kim-em |
14-40139 14 days ago |
18-45750 18 days ago |
18-45408 18 days |
| 34871 |
zhuyizheng author:zhuyizheng |
feat(Calculus): Taylor with integral remainder |
This PR proves Taylor's theorem with the integral remainder. It provides two versions:
1. based on $f^{(n)}$ is absolutely continuous
2. based on $f \in C^{(n+1)}$
It also weakens the hypotheses `(hx : x₀ < x)` to `(hx : x₀ ≠ x)` in the following theorems:
- `taylor_mean_remainder`
- `taylor_mean_remainder_lagrange`
- `taylor_mean_remainder_lagrange_iteratedDeriv`
- `taylor_mean_remainder_cauchy`
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-analysis
|
215/71 |
Mathlib/Analysis/Calculus/ContDiff/Deriv.lean,Mathlib/Analysis/Calculus/IteratedDeriv/Defs.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/MeasureTheory/Function/AbsolutelyContinuous.lean,Mathlib/Probability/Moments/MGFAnalytic.lean,Mathlib/Topology/Algebra/InfiniteSum/TsumUniformlyOn.lean,docs/undergrad.yaml |
7 |
7 |
['Komyyy', 'b-mehta', 'github-actions', 'joneugster', 'mathlib-merge-conflicts', 'zhuyizheng'] |
sgouezel assignee:sgouezel |
13-80343 13 days ago |
13-80366 13 days ago |
30-21437 30 days |
| 33662 |
Pjotr5 author:Pjotr5 |
feat(Algebra/Order/BigOperators/Expect): add lemmas and strict variants |
### Summary
- Combine `le_expect_nonempty_of_subadditive` and `le_expect_of_subadditive` into a single lemma `le_expect_of_subadditive`.
The extra assumptions `(hs : s.Nonempty)` and `(h_zero : m 0 = 0)` are unnecessary (since `m 0 = 0` follows from `h_div`).
This requires a small downstream update to `Mathlib/Analysis/RCLike/Basic.lean` (`norm_expect_le`).
- Add strict-inequality variants:
`expect_lt_expect`, `expect_lt`, `lt_expect`.
- Add existence lemmas:
`exists_le_of_expect_le_expect`, `exists_le_of_le_expect`, `exists_le_of_expect_le`,
and `exists_lt_of_expect_lt_expect`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
46/16 |
Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Analysis/RCLike/Basic.lean |
2 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
13-78033 13 days ago |
64-10428 64 days ago |
64-10086 64 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 |
13-66507 13 days ago |
14-904 14 days ago |
42-13319 42 days |
| 34760 |
astrainfinita author:astrainfinita |
chore: use `RelHomClass` in `IsChain.image` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
24/24 |
Counterexamples/AharoniKorman.lean,Mathlib/Order/Height.lean,Mathlib/Order/Preorder/Chain.lean |
3 |
5 |
['Vierkantor', 'astrainfinita', 'github-actions'] |
Vierkantor assignee:Vierkantor |
13-41813 13 days ago |
13-41813 13 days ago |
23-60978 23 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 |
13-40176 13 days ago |
16-49850 16 days ago |
22-82796 22 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 |
13-29065 13 days ago |
13-33461 13 days ago |
42-6677 42 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 |
12-76167 12 days ago |
12-76146 12 days ago |
23-70949 23 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 |
12-40179 12 days ago |
15-54270 15 days ago |
15-53928 15 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 |
12-19850 12 days ago |
16-52355 16 days ago |
16-52013 16 days |
| 35853 |
vihdzp author:vihdzp |
chore(SetTheory/Ordinal): deprecate more theorems on `succ` |
---
- [x] depends on: #35844
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
39/37 |
Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Ordinal.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/SetTheory/Ordinal/Principal.lean,Mathlib/SetTheory/Ordinal/Topology.lean |
9 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
12-6905 12 days ago |
12-7080 12 days ago |
12-7731 12 days |
| 35084 |
edegeltje author:edegeltje |
feat(Combinatorics/SimpleGraph): The Cayley graph for structures with `Mul`/`Add` |
This pr:
- adds the definition `SimpleGraph.mulCayley`, where `x` is adjacent to a distinct `y` when there is `g` such that `x * g = y` or `x = y * g`,
- proves various lemmas about the above,
- adds/proves the additive versions of all of the above
some related zulip conversation: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Cayley.20and.20circulant.20graph/with/572839048
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
106/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Cayley.lean |
2 |
27 |
['SnirBroshi', 'edegeltje', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
11-85658 11 days ago |
25-55187 25 days ago |
28-78645 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 |
11-81325 11 days ago |
11-81543 11 days ago |
68-7380 68 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 |
11-77307 11 days ago |
11-77329 11 days ago |
14-29082 14 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 |
11-73431 11 days ago |
11-73242 11 days ago |
27-68102 27 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 |
11-71474 11 days ago |
16-59219 16 days ago |
16-59552 16 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 |
11-52308 11 days ago |
11-61380 11 days ago |
11-61495 11 days |
| 35776 |
IvanRenison author:IvanRenison |
feat(Combinatorics): define `HasAdj` for capturing the common structure of different kinds of (simple) graphs |
We add a vertex set considering that we want to refactor `SimpleGraph` to also use one
---
This pr replaces #4127
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
101/0 |
Mathlib.lean,Mathlib/Combinatorics/Digraph/HasAdj.lean,Mathlib/Combinatorics/HasAdj/Basic.lean,Mathlib/Combinatorics/SimpleGraph/HasAdj.lean |
4 |
1 |
['github-actions'] |
nobody |
11-50388 11 days ago |
11-50388 11 days ago |
11-50046 11 days |
| 35423 |
Rob23oba author:Rob23oba |
feat: add congruence lemmas for `Function.update` and `Pi.single` |
Adds `simp` congruence lemmas to `Function.update` and `Pi.single` that are specialized for the non-dependent case. See also [#mathlib4 > Simp fails to apply with `Function.update`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Simp.20fails.20to.20apply.20with.20.60Function.2Eupdate.60/with/573889929).
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
29/6 |
Mathlib/Algebra/Notation/Pi/Basic.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/NumberTheory/ModularForms/QExpansion.lean,Mathlib/RepresentationTheory/Tannaka.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean |
5 |
9 |
['Rob23oba', 'eric-wieser', 'github-actions', 'joneugster', 'loefflerd'] |
thorimur assignee:thorimur |
11-45943 11 days ago |
22-8087 22 days ago |
22-43437 22 days |
| 35250 |
vlad902 author:vlad902 |
feat(SimpleGraph): redefine `cycleGraph` independent of `circulantGraph` |
Right now the `cycleGraph` definition relies on `circulantGraph` which requires importing Group definitions from the algebra hierarchy. This causes large-imports for me in later PRs where I try to make more widespread use of cycleGraphs, so here I redefine it to be its own independent object, and leave moving it from `Circulant.lean` to another PR (this is parallel to #35084.)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
10/10 |
Mathlib/Combinatorics/SimpleGraph/Circulant.lean |
1 |
4 |
['SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
kmill assignee:kmill |
11-40200 11 days ago |
25-82493 25 days ago |
25-82151 25 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 |
11-40196 11 days ago |
18-35142 18 days ago |
18-36412 18 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 |
11-40194 11 days ago |
17-3699 17 days ago |
17-17863 17 days |
| 35628 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Maps): characterize `neighborSet` and `edgeSet` across an embedding |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
40/0 |
Mathlib/Combinatorics/SimpleGraph/Maps.lean |
1 |
1 |
['github-actions'] |
nobody |
11-27038 11 days ago |
17-28782 17 days ago |
17-28440 17 days |
| 34423 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this golfing PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (shown if ≥10 ms before or after):
* `LucasLehmer.norm_num_ext.sModNat_eq_sMod`: 950 ms before, 758 ms after 🎉
This golfing PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
1/18 |
Mathlib/NumberTheory/LucasLehmer.lean |
1 |
14 |
['eric-wieser', 'euprunin', 'github-actions', 'leanprover-radar', 'robin-carlier'] |
eric-wieser assignee:eric-wieser |
11-8084 11 days ago |
11-8084 11 days ago |
43-74438 43 days |
| 35716 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Connectivity): add lemmas about reachable, degree and neighbor set |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
28/6 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean |
1 |
10 |
['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
11-415 11 days ago |
14-80061 14 days ago |
14-79719 14 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 |
10-67995 10 days ago |
31-32746 31 days ago |
31-34056 31 days |
| 35858 |
vihdzp author:vihdzp |
doc(SetTheory/Ordinal/Arithmetic): improve documentation |
This PR does the following:
- Use better variable names in the docs (instead of just variants of the letter `o`).
- Remove mentions of things defined in other files, or specify that they are defined on other files.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-set-theory
|
14/21 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean |
1 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
10-37345 10 days ago |
10-37369 10 days ago |
11-43742 11 days |
| 35905 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): Add definitions for small graphs (noEdge, bouquet, banana) |
This pull request adds new constructors and supporting lemmas for special types of graphs in the `Mathlib/Combinatorics/Graph/Basic.lean` file.
It introduces:
* `Graph.noEdge V`: The graph with vertex set V and empty edge set.
* `Graph.bouquet v E`: The graph with vertex set {v} and edge set E, where all edges are loops at v.
* `Graph.banana u v E`: The graph with vertex set {u, v} and edge set E, where all edges connect u and v.
along with various properties and characterizations for these graphs.
Co-authored-by: Peter Nelson [apn.uni@gmail.com](mailto:apn.uni@gmail.com)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
126/0 |
Mathlib/Combinatorics/Graph/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
10-32730 10 days ago |
10-32798 10 days ago |
10-32884 10 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 |
9-79467 9 days ago |
9-79490 9 days ago |
30-54305 30 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 |
9-72625 9 days ago |
9-72651 9 days ago |
24-16084 24 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 |
9-71071 9 days ago |
33-74888 33 days ago |
33-74546 33 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 |
9-60349 9 days ago |
9-60349 9 days ago |
58-54711 58 days |
| 35325 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Acyclic): `ENat.card V ≤ 2 → G.IsAcyclic` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
26/3 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Data/Finite/Card.lean |
2 |
2 |
['Rida-Hamadani', 'github-actions'] |
nobody |
9-47851 9 days ago |
18-38069 18 days ago |
24-15275 24 days |
| 34554 |
SnirBroshi author:SnirBroshi |
feat(Data/Nat/Factorization/Divisors): calculate divisors using prime factorization |
---
There are over 200 files that import both `divisors` and `factorization`, but none of them seemed to fit, so I created a new file for this.
(`Data.Nat.Factorization.PrimePow` and `NumberTheory.ArithmeticFunction.Misc` are the best I found)
[](https://gitpod.io/from-referrer/)
|
t-data |
91/0 |
Mathlib.lean,Mathlib/Data/Nat/Factorization/Divisors.lean |
2 |
20 |
['SnirBroshi', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'jcommelin', 'mathlib-bors', 'plp127'] |
joneugster assignee:joneugster |
9-40181 9 days ago |
14-10355 14 days ago |
14-57524 14 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 |
9-40019 9 days ago |
20-82917 20 days ago |
109-17402 109 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 |
9-27833 9 days ago |
18-24027 18 days ago |
39-34105 39 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 |
9-19665 9 days ago |
9-19665 9 days ago |
9-19369 9 days |
| 35632 |
SnirBroshi author:SnirBroshi |
feat(Data/List/TakeDrop): `take`/`drop` + `tail`/`dropLast` almost commute |
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/List.2Etail.2FList.2EdropLast.20.2B.20List.2Etake/with/572294698)
[](https://gitpod.io/from-referrer/)
|
t-data |
22/0 |
Mathlib/Data/List/TakeDrop.lean |
1 |
3 |
['SnirBroshi', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
9-13860 9 days ago |
17-24740 17 days ago |
17-25413 17 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 |
9-11258 9 days ago |
9-11314 9 days ago |
27-71227 27 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 |
9-8574 9 days ago |
13-6576 13 days ago |
13-6270 13 days |
| 29186 |
winstonyin author:winstonyin |
feat: IsIntegralCurve for solutions to ODEs |
I define `IsIntegralCurve` etc. for solutions to ODEs on vector spaces. The translation and scaling lemmas are also included. This parallels `IsMIntegralCurve` etc. for manifolds.
Moved from #26534.
- [x] depends on: #26563
---
[](https://gitpod.io/from-referrer/)
|
t-dynamics
t-differential-geometry
t-analysis
|
309/17 |
Mathlib.lean,Mathlib/Analysis/ODE/Basic.lean,Mathlib/Analysis/ODE/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/Transform.lean,Mathlib/Geometry/Manifold/IntegralCurve/UniformTime.lean |
5 |
32 |
['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'mcdoll', 'michaellee94', 'sgouezel', 'winstonyin'] |
sgouezel assignee:sgouezel |
8-56803 8 days ago |
8-56842 8 days ago |
140-61244 140 days |
| 34705 |
mpenciak author:mpenciak |
feat(AlgebraicGeometry): Grassmannian functor |
This PR shows that the association `A → A ⊗[R] M` for an `R`-module `M`, and `R`-algebra `A` forms a functor.
(Disclosure: This PR was partially prepared by Claude)
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
109/2 |
Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Grassmannian.lean |
2 |
7 |
['github-actions', 'mathlib-merge-conflicts', 'mpenciak', 'robin-carlier'] |
mariainesdff assignee:mariainesdff |
8-47876 8 days ago |
8-47900 8 days ago |
25-53244 25 days |
| 35513 |
vihdzp author:vihdzp |
refactor: redefine `Order.cof` for a preorder |
... instead of using an unbundled relation. This makes it easier to work with, and avoids some `swap rᶜ` incantations.
There are still a bunch of lemmas that make use of unbundled order relations; these will get fixed in follow-up PRs.
---
- [x] depends on: #35517
- [x] depends on: #35519
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
maintainer-merge
|
220/241 |
Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/Order/Cofinal.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean |
3 |
9 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
b-mehta assignee:b-mehta |
8-47768 8 days ago |
12-19631 12 days ago |
15-22315 15 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 |
8-46652 8 days ago |
8-46711 8 days ago |
24-15637 24 days |
| 35328 |
astrainfinita author:astrainfinita |
chore: use `IsLUB` `IsGLB` in `CompleteLattice` |
---
- [ ] depends on: #35297
[](https://gitpod.io/from-referrer/)
|
t-order |
322/415 |
Mathlib/Algebra/Module/Submodule/Lattice.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/CategoryTheory/Sites/Sieves.lean,Mathlib/CategoryTheory/Subfunctor/Basic.lean,Mathlib/CategoryTheory/Subobject/Lattice.lean,Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Data/Fintype/Order.lean,Mathlib/Data/Set/BooleanAlgebra.lean,Mathlib/Geometry/Convex/Cone/Basic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean,Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/Order/Atoms.lean,Mathlib/Order/Bounds/Image.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/CompleteBooleanAlgebra.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/CompleteLattice/Lemmas.lean,Mathlib/Order/CompleteLattice/PiLex.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/Concept.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/Copy.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/Hom/Order.lean,Mathlib/Order/Interval/Basic.lean,Mathlib/Order/Nucleus.lean,Mathlib/Order/ScottContinuity/Prod.lean,Mathlib/Order/SupClosed.lean,Mathlib/Probability/Process/Filtration.lean,Mathlib/RingTheory/TwoSidedIdeal/Lattice.lean,Mathlib/Topology/Algebra/Group/GroupTopology.lean,Mathlib/Topology/Algebra/Module/ClosedSubmodule.lean,Mathlib/Topology/Algebra/Ring/Basic.lean,Mathlib/Topology/UniformSpace/Basic.lean |
39 |
20 |
['astrainfinita', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
8-40172 8 days ago |
13-67429 13 days ago |
16-32287 16 days |
| 35693 |
euprunin author:euprunin |
chore: avoid passing explicit lemmas to `grind` and (terminal) `simp_all` where unnecessary |
The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `SimpleGraph.Walk.IsCycle.getVert_injOn`: 684 ms before, 596 ms after 🎉
* `List.HasPeriod.gcd`: 846 ms before, 807 ms after 🎉
* `List.Sublist.orderedInsert_sublist`: unchanged 🎉
* `Affine.Simplex.exists_forall_dist_eq_iff_exists_excenterExists_and_eq_excenter`: unchanged 🎉
* `Matrix.pow_apply_pos_iff_nonempty_path`: unchanged 🎉
* `RootPairing.Hom.coweightHom_injective`: unchanged 🎉
* `RootPairing.isReduced_iff'`: unchanged 🎉
* `Set.Ico_eq_Ico_iff`: unchanged 🎉
* `Set.Ioc_eq_Ioc_iff`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
9/9 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Data/List/PeriodicityLemma.lean,Mathlib/Data/List/Sort.lean,Mathlib/Geometry/Euclidean/Incenter.lean,Mathlib/LinearAlgebra/Matrix/Irreducible/Defs.lean,Mathlib/LinearAlgebra/RootSystem/Hom.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
8 |
1 |
['github-actions'] |
dupuisf assignee:dupuisf |
8-40166 8 days ago |
15-55941 15 days ago |
15-55599 15 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 |
8-40159 8 days ago |
13-45348 13 days ago |
13-45006 13 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 |
8-40154 8 days ago |
12-44726 12 days ago |
12-45008 12 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 |
8-17826 8 days ago |
21-45099 21 days ago |
29-27940 29 days |
| 34622 |
vihdzp author:vihdzp |
feat: Nat/Int casts on char two rings |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
50/8 |
Mathlib/Algebra/CharP/Two.lean,Mathlib/Data/Set/Insert.lean |
2 |
10 |
['erdOne', 'eric-wieser', 'github-actions', 'vihdzp'] |
erdOne assignee:erdOne |
8-7600 8 days ago |
8-7660 8 days ago |
39-29656 39 days |
| 35643 |
chrisflav author:chrisflav |
chore(Algebra): make `TensorProduct.equivOfCompatibleSMul` more linear |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
64/47 |
Mathlib/LinearAlgebra/TensorProduct/Associator.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/RingTheory/Coalgebra/TensorProduct.lean,Mathlib/RingTheory/LinearDisjoint.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Smooth/Fiber.lean,Mathlib/RingTheory/TensorProduct/Maps.lean,Mathlib/RingTheory/TensorProduct/Nontrivial.lean |
8 |
7 |
['github-actions', 'kckennylau'] |
kim-em assignee:kim-em |
8-1071 8 days ago |
8-1182 8 days ago |
16-85626 16 days |
| 27229 |
WilliamCoram author:WilliamCoram |
feat(GroupTheory/DoubleCoset): multiple lemmas |
From FLT
---
[](https://gitpod.io/from-referrer/)
|
FLT
t-group-theory
new-contributor
|
85/2 |
Mathlib/GroupTheory/DoubleCoset.lean |
1 |
41 |
['CBirkbeck', 'Ruben-VandeVelde', 'WilliamCoram', 'github-actions', 'kim-em', 'mariainesdff', 'mathlib4-merge-conflict-bot', 'tb65536'] |
mariainesdff assignee:mariainesdff |
7-85262 7 days ago |
22-9267 22 days ago |
105-20507 105 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 |
7-64107 7 days ago |
7-64533 7 days ago |
35-9268 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 |
|
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 |
7-42764 7 days ago |
7-42788 7 days ago |
14-37595 14 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 |
7-23300 7 days ago |
17-30049 17 days ago |
17-29707 17 days |
| 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$ |
322/8 |
Mathlib.lean,Mathlib/Algebra/Module/Submodule/Map.lean,Mathlib/LinearAlgebra/FiniteDimensional/Lemmas.lean,Mathlib/LinearAlgebra/FixedSubmodule.lean,Mathlib/LinearAlgebra/Transvection.lean |
5 |
23 |
['AntoineChambert-Loir', 'dagurtomas', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'ocfnash'] |
ocfnash assignee:ocfnash |
7-14072 7 days ago |
7-75484 7 days ago |
25-52086 25 days |
| 35157 |
Multramate author:Multramate |
feat(RingTheory/AdjoinRoot): add IsFractionRing for AdjoinRoot |
Co-authored-by: Sriram Chinthalagiri Venkata @sriram3301
This contribution was created as part of the Heidelberg Lean workshop "Formalising algebraic geometry" in November 2025.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
40/1 |
Mathlib/RingTheory/AdjoinRoot.lean |
1 |
6 |
['copilot-pull-request-reviewer', 'erdOne', 'github-actions'] |
mattrobball assignee:mattrobball |
7-4795 7 days ago |
7-4795 7 days ago |
23-62058 23 days |
| 34138 |
pfaffelh author:pfaffelh |
feat(MeasureTheory): Introduce `MassFunction α` giving rise to a `Measure α ⊤` |
Define `MassFunction α := α → ℝ≥0∞`
Define `toMeasure (w : MassFunction α) : @Measure α ⊤` as a sum of diracs
Show properties of the resulting objects
This PR intends to start a more userfriendly interaction with probability mass functions (`PMF`). There are two main differences between `MassFunction` and `PMF`:
* `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `MassFunction`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.)
* The `toMeasure` function of `MassFunction` directly defines the measure as a sum of diracs, which immediately makes computations possible.
Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change)
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
224/0 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/MassFunction.lean |
4 |
10 |
['DavidLedvinka', 'github-actions', 'metakunt', 'pfaffelh'] |
kex-y and ocfnash assignee:ocfnash assignee:kex-y |
7-946 7 days ago |
8-51369 8 days ago |
50-56773 50 days |
| 29996 |
vihdzp author:vihdzp |
chore(Order/Concept): `IsIntent` and `IsExtent` |
We define predicates for a set to be an intent/extent, and use them to define alternate constructors for a concept. Using these, we golf the complete lattice instances.
The fields `Concept.intent` and `Concept.extent` already existed, and these serve as unbundled versions of them.
---
- [x] depends on: #30484
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
161/113 |
Mathlib/Order/Concept.lean |
1 |
52 |
['Vierkantor', 'YaelDillies', 'github-actions', 'linesthatinterlace', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
6-81893 6 days ago |
19-47114 19 days ago |
40-26898 40 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 |
6-77285 6 days ago |
24-44939 24 days ago |
24-44597 24 days |
| 34621 |
homeowmorphism author:homeowmorphism |
feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ` |
feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ`.
This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236.
---
Originally, the PR showed that `FreeGroup Empty ≃* Unit` and `FreeGroup α ≃* Multiplicative ℤ`. During the review process, I was asked to generalized `Unit` to any `Unique` type and `Empty` to `IsEmpty`. Through working on this, it has been realized that the pre-existing `FreeGroup Empty ≃ Unit` should be deprecated using `Equiv.ofUnique` and a multiplicative version `FreeGroup Empty ≃* Unit` can be obtained similarly using `MulEquiv.ofUnique` and there was no need to explicitly upgrade the equivalence. The title has been changed to reflect this.
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
|
45/6 |
Mathlib/GroupTheory/FreeGroup/Basic.lean |
1 |
40 |
['b-mehta', 'copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'kbuzzard', 'riccardobrasca', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
6-74181 6 days ago |
22-63853 22 days ago |
29-80092 29 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 |
25 |
['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] |
awainverse assignee:awainverse |
6-72447 6 days ago |
35-48673 35 days ago |
88-21060 88 days |
| 34442 |
JohnnyTeutonic author:JohnnyTeutonic |
feat(Algebra/Lie/Classical): add basis for sl(n) relative to chosen diagonal index |
Adds a standard basis for sl n R parametrized by a chosen diagonal index i₀:
Off-diagonal matrix units E_ij for i ≠ j
Diagonal differences E_ii - E_{i₀i₀} for i ≠ i₀
The entry at i₀ is determined by trace-zero.
Implements the approach suggested by @ocfnash in [#33818 (comment)](https://github.com/leanprover-community/mathlib4/pull/33818#issuecomment-3784786673). See also [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/lie.20algebra/near/516170116).
Closes the request from #33818.
Note: Developed with the assistance of Claude - the LinearEquiv machinery was beyond my current Lean expertise.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
507/0 |
Mathlib/Algebra/Lie/Classical.lean |
1 |
10 |
['JohnnyTeutonic', 'eric-wieser', 'github-actions', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
6-66811 6 days ago |
27-19240 27 days ago |
27-81812 27 days |
| 34938 |
peabrainiac author:peabrainiac |
feat(Geometry/Manifold): interior and boundary are preserved by (local) diffeomorphisms |
If `f` is a local diffeomorphism at `x`, `f x` is an interior point iff `x` is. We prove this and a bunch of corollaries, in particular that `BoundarylessManifold` is invariant under diffeomorphisms which we need for subsequent work.
---
- [x] depends on: #33189
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
133/5 |
Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean |
2 |
8 |
['github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'peabrainiac'] |
ocfnash assignee:ocfnash |
6-40174 6 days ago |
10-29280 10 days ago |
10-29200 10 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 |
6-40173 6 days ago |
10-21549 10 days ago |
15-33681 15 days |
| 35763 |
kim-em author:kim-em |
chore(scripts): make rm_set_option cache opt-in via --resume |
This PR changes `scripts/rm_set_option.py` so the progress cache is only used when explicitly requested via `--resume`, rather than being on by default (with `--no-resume` to disable).
The previous default was unsafe: the cache only checks that the target module's own SHA256 is unchanged, so edits to upstream modules between runs would be silently ignored, causing the script to skip modules that should be reprocessed.
🤖 Prepared with Claude Code |
|
4/4 |
scripts/README.md,scripts/rm_set_option.py |
2 |
1 |
['github-actions'] |
dupuisf assignee:dupuisf |
6-40171 6 days ago |
13-86376 13 days ago |
13-86034 13 days |
| 34937 |
tannerduve author:tannerduve |
feat(Computability): semilattice instance on Turing degrees |
This PR equips `TuringDegree` with a `SemilatticeSup` structure by introducing the Turing join, proving usual least-upper-bound properties, and lifting these to degrees (quotients). In support of this, it extends the existing `RecursiveIn` API with some lemmas used in the degree theory.
The main contribution is the `SemilatticeSup` instance on `TuringDegree`. We define the Turing join as follows
```
turingJoin (f g) : ℕ → ℕ -- notation: f ⊕ g
```
and prove it is a least upper bound:
* `left_le_join`, `right_le_join`
* `join_le`
* monotonicity and congruence lemmas (`join_mono`, `join_congr`)
We lift this to degrees in `TuringDegree.sup`, `TuringDegree.le_sup_left`, `TuringDegree.le_sup_right`, and `TuringDegree.sup_le`
```
instance : SemilatticeSup TuringDegree
```
**New additions to `RecursiveIn.lean`:**
- `liftPrim`, `liftPrimrec`, `RecursiveIn'`, `ComputableIn`, `ComputableIn₂`: Encodes partial/total functions between `Primcodable` types as `ℕ →. ℕ`, analogous to `Partrec`/`Computable`.
- `of_eq`, `of_eq_tot`, `of_primrec`, `some`, `none`, `mono`, `subst`: Standard closure properties for `RecursiveIn`.
- `cond_const`, `cond_core_rfind`, `cond`, `ComputableIn.cond`: Shows `RecursiveIn` is closed under conditionals when the guard is absolutely computable
- `Nat.Partrec.recursiveIn`, `Computable.computableIn`: Every partrec/computable function is recursive in any oracle set.
Small addition to `Partrec`
we add to `Mathlib.Computability.Partrec` a small helper def (`Partrec.kronecker` and related `rfind` lemmas) representing the function that returns 1 if its two (unpaired) arguments are equal, and 0 otherwise, which is used in the proof of `cond`
## TODO
Some current `RecursiveIn` proofs such as `cond_core_rfind` still work directly with the inductive constructors and are thus very long. A follow up could add a combinator-style closure library by essentially relativizing all the results and lemmas in `Partrec`, and proofs could be golfed heavily as they are in `Partrec`
## Note: AI Usage
[Aleph prover](https://logicalintelligence.com/aleph-coding-ai/) was allowed to prove an earlier version of `cond_core_rfind`, which included stating and proving the lemma `cond_const` but the proofs have since been iterated on manually
Cursor was allowed to run git commands and edit docstrings/headers, and was used in setting up the module structure of the files |
t-computability
new-contributor
large-import
|
644/63 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
14 |
['eric-wieser', 'github-actions', 'plp127', 'tannerduve', 'vihdzp'] |
nobody |
6-35096 6 days ago |
21-59263 21 days ago |
31-28581 31 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 |
6-30363 6 days ago |
12-24520 12 days ago |
16-11350 16 days |
| 35912 |
WenrongZou author:WenrongZou |
feat(RingTheory/FormalGroup): definition and examples of formal group |
---
Definition of one dimensional formal group law over commutative ring and some examples of formal group law.
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
204/0 |
Mathlib.lean,Mathlib/RingTheory/FormalGroup/Basic.lean,docs/references.bib |
3 |
8 |
['WenrongZou', 'github-actions', 'wwylele'] |
erdOne assignee:erdOne |
6-24708 6 days ago |
6-24707 6 days ago |
10-6135 10 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'] |
nobody |
6-21561 6 days ago |
6-21776 6 days ago |
6-23149 6 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 |
6-12860 6 days ago |
9-21523 9 days ago |
14-2120 14 days |
| 35756 |
mariainesdff author:mariainesdff |
feat(Data/Nat/Choose/Multinomial): add lemmas |
Co-authored-by: @AntoineChambert-Loir.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
t-data
|
25/0 |
Mathlib/Data/Nat/Choose/Multinomial.lean |
1 |
1 |
['github-actions'] |
nobody |
6-8996 6 days ago |
14-6691 14 days ago |
14-6349 14 days |
| 36176 |
tb65536 author:tb65536 |
feat(NumberTheory/ArithmeticFunction/Defs): `Algebra` instance on `ArithmeticFunction` |
This PR adds the `Algebra` instance on `ArithmeticFunction`.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
label:t-algebra$ |
21/0 |
Mathlib/NumberTheory/ArithmeticFunction/Defs.lean |
1 |
1 |
['github-actions'] |
nobody |
6-8473 6 days ago |
6-9355 6 days ago |
0-1 1 second |
| 36175 |
tb65536 author:tb65536 |
chore(NumberTheory/ArithmeticFunction/Defs): modernize instances |
This PR modernizes the instances in `ArithmeticFunction/Defs` using `where` notation.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
label:t-algebra$ |
39/58 |
Mathlib/NumberTheory/ArithmeticFunction/Defs.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
nobody |
6-2982 6 days ago |
6-9735 6 days ago |
0-2 2 seconds |
| 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 |
5-86244 5 days ago |
6-74111 6 days ago |
11-12992 11 days |
| 35651 |
sun123zxy author:sun123zxy |
feat(Mathlib/RingTheory/Ideal/Cotangent): `Submodule.map` definition of cotangent spaces |
This PR adds an alternative definition of the cotangent space as an image under the R-module quotient map.
---
Split from PR #33247
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
47/20 |
Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean |
2 |
10 |
['erdOne', 'github-actions', 'mathlib-merge-conflicts', 'sun123zxy'] |
chrisflav assignee:chrisflav |
5-81180 5 days ago |
10-62973 10 days ago |
6-9373 6 days |
| 30451 |
kckennylau author:kckennylau |
feat(HomogeneousIdeal): generalize to homogeneous submodule |
Continuation of #30437 with permission from @jjaassoonn, which is a continuation of #9820 .
The definitions, constructions and theorems in `HomogeneousIdeal.lean` are generalized to homogeneous submodules.
Let `R` be a graded ring and `M` be a graded `R`-module. Say an `R`-submodule `N` of `M` is homogeneous if for every `x` in `N`, each projection of `x` to `M_i` is in `N`. None of this file's results depends on the grading on `R`, but we include the grading on `R` for technical reasons. We define the "homogeneous core" of a not necessarily homogeneous submodule N to be the biggest homogeneous submodule contained within N, and the "homogeneous hull" to be the smallest homogeneous submodule that contains N.
All definitions/constructions/theorems are then copied for ideals/homogeneous ideals.
The motivation of this generalization is graded quotient module. (#18716)
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
581/185 |
Mathlib/Algebra/BigOperators/Finsupp/Basic.lean,Mathlib/Algebra/DirectSum/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/DirectSum/Finsupp.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Submodule.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean |
10 |
3 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
mariainesdff assignee:mariainesdff |
5-67009 5 days ago |
5-67074 5 days ago |
22-52409 22 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 |
5-61996 5 days ago |
unknown |
0-0 0 seconds |
| 34711 |
urkud author:urkud |
refactor(padicValNat): redefine using `maxPowDvdDiv` |
- rename `maxPowDiv` to `maxPowDvdDiv`;
- make it return `a / b ^ n` too;
- optimize it to use `O(log (logb b a))` steps;
- redefine `padicValNat` to be `maxPowDvdDiv .. |>.1`
---
[](https://gitpod.io/from-referrer/) |
|
275/150 |
Mathlib/Data/Nat/MaxPowDiv.lean,Mathlib/NumberTheory/Padics/PadicNumbers.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/NumberTheory/Padics/PadicVal/Defs.lean,Mathlib/NumberTheory/SumTwoSquares.lean |
5 |
3 |
['b-mehta', 'github-actions', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
5-54736 5 days ago |
5-54763 5 days ago |
15-46433 15 days |
| 36210 |
vbeffara author:vbeffara |
feat(Combinatorics/SimpleGraph): definitions of graph contraction and graph minor |
A contraction is the image of a graph through a surjective function with connected fibers, and a minor is a contraction of a subgraph.
This PR shows that being a contraction is transitive, but does not show the same for minors because the proof is more involved, it will be in a subsequent PR. The definitions are in `Prop` and do not contain data, but I'm not sure if that was the right choice.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
151/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Contraction.lean,Mathlib/Combinatorics/SimpleGraph/Minor.lean |
3 |
2 |
['github-actions'] |
nobody |
5-45053 5 days ago |
5-45115 5 days ago |
5-45464 5 days |
| 34578 |
dennj author:dennj |
feat: define Boolean circuits over abstract gate families |
This PR introduces a foundation for Boolean circuits parameterized by abstract gate families.
## Main definitions
- `GateEval`: typeclass for gate families with Boolean semantics
- `GateHom`: arity-preserving maps between gate families
- `Circuit`: inductive type representing circuit syntax trees
- `AC0Gate`, `ACC0Gate`, `TC0Gate`: standard complexity-theoretic gate bases
## Design notes
The key design choice is to keep **syntax** (gate labels `G : Nat → Type`) separate from
**semantics** (`GateEval.eval`), allowing users to define custom gate families (e.g., MAJ, XOR,
arbitrary threshold gates) without modifying core definitions.
### Tree vs DAG representation
We evaluated two approaches for circuit representation:
1. **Tree-based** (this PR): Circuits as inductive syntax trees
2. **DAG-based**: Circuits as lists of gates with index-based references
We chose tree-based circuits because:
- **Compositionality**: Easy to build circuits via `gate g (fun i => subcircuit i)`
- **Type safety**: Arity-indexed gates (`G : Nat → Type`) catch errors at compile time
- **Manipulation**: Natural support for `mapGate`, `subst`, `mapInputs`
- **Mathlib philosophy**: Aligns with structural/compositional reasoning patterns
For use cases requiring explicit sharing (complexity analysis, evaluation efficiency),
a separate `DAG` type can be added later with proven equivalence via `Circuit.toDAG`.
The current representation serves as a minimal foundation for size/depth measures,
circuit families, and complexity classes (AC0, ACC0, TC0).
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-computability
|
919/0 |
Mathlib.lean,Mathlib/Computability/Circuit/Basic.lean,Mathlib/Computability/Formula/Basic.lean,Mathlib/Computability/Gate.lean |
4 |
18 |
['LLaurance', 'YuvalFilmus', 'dennj', 'github-actions'] |
Komyyy assignee:Komyyy |
5-40132 5 days ago |
22-33620 22 days ago |
29-72505 29 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 |
5-40128 5 days ago |
8-70947 8 days ago |
8-71992 8 days |
| 35713 |
Parcly-Taxel author:Parcly-Taxel |
feat: Bird–Wadler duality theorems |
Forms of these three theorems already exist in mathlib and the Lean standard library, but they are scattered about. Bring them together in one file, deprecating the _ad hoc_ names for the first and second theorems. |
t-data |
167/82 |
Mathlib.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/BirdWadler.lean,docs/references.bib |
4 |
1 |
['github-actions'] |
Vierkantor assignee:Vierkantor |
5-40124 5 days ago |
15-4778 15 days ago |
15-4692 15 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 |
5-40117 5 days ago |
9-5982 9 days ago |
9-6165 9 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 |
5-40109 5 days ago |
9-13026 9 days ago |
9-12684 9 days |
| 35963 |
Parcly-Taxel author:Parcly-Taxel |
refactor: review Kleene algebra axioms |
The docstring did not match the actual conditions in the `KleeneAlgebra` class and there was one more condition than necessary. We replace `one_le_kstar, mul_kstar_le_kstar, kstar_mul_le_kstar` with
```lean
one_add_mul_kstar (a : α) : 1 + a * a∗ = a∗
one_add_kstar_mul (a : α) : 1 + a∗ * a = a∗
```
From the pair, the trio is trivially derivable. The pair's derivation from the trio is Proposition 2 in Kozen's 1994 paper.
We also remove the `bot` and `bot_le` fields in `IdemSemiring`, since the remaining axioms already show `0 ≤ a` for all `a`. |
t-algebra label:t-algebra$ |
102/93 |
Mathlib/Algebra/Algebra/Operations.lean,Mathlib/Algebra/Order/Kleene.lean,Mathlib/AlgebraicGeometry/IdealSheaf/Basic.lean,Mathlib/Computability/Language.lean |
4 |
11 |
['Parcly-Taxel', 'github-actions', 'plp127', 'vihdzp'] |
dagurtomas assignee:dagurtomas |
5-40108 5 days ago |
8-79345 8 days ago |
9-3660 9 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 |
5-40106 5 days ago |
8-61449 8 days ago |
8-61107 8 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 |
5-40105 5 days ago |
8-46954 8 days ago |
8-46612 8 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'] |
nobody |
5-30022 5 days ago |
5-30046 5 days ago |
20-6271 20 days |
| 35622 |
SnirBroshi author:SnirBroshi |
feat(Logic/Function/Basic): `onFun` and `swap` preserve relation properties |
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
133/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/WithBot.lean |
7 |
7 |
['SnirBroshi', 'github-actions', 'leanprover-radar', 'vihdzp'] |
nobody |
5-29073 5 days ago |
5-30614 5 days ago |
17-14123 17 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'] |
nobody |
5-28134 5 days ago |
5-28706 5 days ago |
5-28821 5 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'] |
nobody |
5-21657 5 days ago |
5-21721 5 days ago |
5-21476 5 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 |
5-16608 5 days ago |
5-16630 5 days ago |
21-68721 21 days |
| 35720 |
tb65536 author:tb65536 |
feat(NumberTheory/FunctionField): add instances on `FqtInfty` |
This PR proves the relevant instances on `FqtInfty` by locally replacing the existing valued instance `RatFunc.valuedRatFunc` coming from the ideal `X` with the required `UniformSpace` instance coming from the valuation at infinity and then deriving the relevant instances.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-algebra
label:t-algebra$ |
18/9 |
Mathlib/FieldTheory/RatFunc/AsPolynomial.lean,Mathlib/NumberTheory/FunctionField.lean |
2 |
5 |
['dagurtomas', 'github-actions', 'pechersky', 'tb65536'] |
dagurtomas assignee:dagurtomas |
5-15207 5 days ago |
5-15202 5 days ago |
14-35006 14 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 |
5-9457 5 days ago |
16-46796 16 days ago |
16-47031 16 days |
| 35807 |
Raph-DG author:Raph-DG |
chore(Topology): Generalised some of the instances for Function.locallyFinsuppWithin |
In this PR, we generalised the various instances for locally fin supp functions. These changes were originally made on the PR #26304 about algebraic cycles, but it was decided that these changes are more appropriate in their own PR.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
61/24 |
Mathlib/Topology/LocallyFinsupp.lean |
1 |
6 |
['Raph-DG', 'dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
5-8277 5 days ago |
5-8344 5 days ago |
12-75188 12 days |
| 36202 |
vihdzp author:vihdzp |
feat: more theorems on the Cantor normal form |
We also remove some redundant assumptions.
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
49/57 |
Mathlib/SetTheory/Ordinal/CantorNormalForm.lean |
1 |
1 |
['github-actions'] |
nobody |
4-85489 4 days ago |
4-85665 4 days ago |
5-6331 5 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'] |
nobody |
4-75590 4 days ago |
4-75922 4 days ago |
12-33675 12 days |
| 32058 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): category version Baer criterion |
In this PR, we added the cateory version of Baer criterion stating that `M` is injective iff `Ext^1(R/I, M)` vanish for all ideal I.
---
- [ ] depends on: #35882
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
142/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Baer.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean |
3 |
20 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
4-68506 4 days ago |
11-19335 11 days ago |
7-19844 7 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 |
4-58763 4 days ago |
12-69768 12 days ago |
12-69656 12 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
|
539/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/Bases.lean,docs/references.bib |
3 |
200 |
['Ruben-VandeVelde', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'mike1729', 'sgouezel', 'themathqueen'] |
sgouezel assignee:sgouezel |
4-56017 4 days ago |
11-72622 11 days ago |
36-28812 36 days |
| 35822 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice): `sSup (f '' s) ≤ f (sSup s)` |
---
#35260 will add `iSup` versions. (edit: it was merged)
Future work: `Antitone`, `MonotoneOn`, `AntitoneOn`
[](https://gitpod.io/from-referrer/)
|
t-order |
39/1 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean |
2 |
5 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
Komyyy assignee:Komyyy |
4-55083 4 days ago |
12-68628 12 days ago |
12-68286 12 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 |
4-51337 4 days ago |
4-51398 4 days ago |
19-32575 19 days |
| 33942 |
artie2000 author:artie2000 |
feat(Algebra/Group/Submonoid): submonoid support |
* Define support of submonoid (biggest subgroup it contains)
* Define "pointed" (zero-support) and "spanning" (generates as a subgroup) submonoids
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
123/0 |
Mathlib.lean,Mathlib/Algebra/Group/Submonoid/Support.lean,Mathlib/Tactic/Translate/ToAdditive.lean |
3 |
30 |
['artie2000', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'ooovi', 'plp127', 'vihdzp'] |
jcommelin assignee:jcommelin |
4-42071 4 days ago |
4-43233 4 days ago |
6-54401 6 days |
| 35398 |
vlad902 author:vlad902 |
feat(SimpleGraph): `bypass` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
17/0 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
1 |
['github-actions'] |
kmill assignee:kmill |
4-40196 4 days ago |
23-490 23 days ago |
23-148 23 days |
| 36051 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Cycle.chain_of_pairwise`: unchanged 🎉
* `List.argmax_cons`: 387 ms before, 94 ms after 🎉
* `ciSup_subtype`: 118 ms before, 77 ms after 🎉
* `exists_seq_forall_proj_of_forall_finite`: unchanged 🎉
* `Polynomial.roots_quadratic_eq_pair_iff_of_ne_zero'`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
7/30 |
Mathlib/Data/List/Cycle.lean,Mathlib/Data/List/MinMax.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean,Mathlib/Order/KonigLemma.lean,Mathlib/RingTheory/Polynomial/SmallDegreeVieta.lean |
5 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
4-40185 4 days ago |
8-777 8 days ago |
8-435 8 days |
| 36062 |
huaizhangchu author:huaizhangchu |
feat(Probability/PMF): add PMF.integrable_of_summable_norm |
Adds `PMF.integrable_of_summable_norm`: a function `f` is integrable with respect to `p.toMeasure` when the weighted norms `‖f a‖ * (p a).toReal` form a summable family.
This is useful for computing expectations of discrete distributions (Poisson, geometric, etc.) without manually expanding the `HasFiniteIntegral` definition each time. |
t-measure-probability
new-contributor
|
14/0 |
Mathlib/Probability/ProbabilityMassFunction/Integrals.lean |
1 |
2 |
['github-actions'] |
sgouezel assignee:sgouezel |
4-40184 4 days ago |
7-76320 7 days ago |
7-75978 7 days |
| 36078 |
tb65536 author:tb65536 |
feat(LinearAlgebra/Eigenspace/ContinuousLinearMap): eigenspaces of a continuous linear map are closed |
This PR proves that eigenspaces of a continuous linear map are closed. This is in a new file to avoid heavy topology imports in the existing eigenspace files.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-algebra
label:t-algebra$ |
37/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Eigenspace/ContinuousLinearMap.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean |
3 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
4-40182 4 days ago |
7-48307 7 days ago |
7-47966 7 days |
| 36083 |
gasparattila author:gasparattila |
feat: decomposition of `ContinuousAffineMap` as an `Equiv` |
This PR defines an equivalence `(V →ᴬ[R] Q) ≃ Q × (V →L[R] W)`, plus `LinearEquiv` and `AffineEquiv` variants. To match the names of the new equivalences, `ContinuousAffineMap.toConstProdLinearMap` is also renamed.
---
[](https://gitpod.io/from-referrer/)
|
|
154/13 |
Mathlib/Analysis/Normed/Affine/ContinuousAffineMap.lean,Mathlib/Topology/Algebra/ContinuousAffineMap.lean |
2 |
1 |
['github-actions'] |
dupuisf assignee:dupuisf |
4-40181 4 days ago |
7-45906 7 days ago |
7-47517 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 |
2 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
4-40181 4 days ago |
7-47432 7 days ago |
7-47196 7 days |
| 35602 |
JovanGerb author:JovanGerb |
feat: replace `IsWellFounded` with `WellFounded` |
This PR is an attempt to deprecate `IsWellFounded`. The reason it that it is entirely equivalent to `WellFounded`, with the only difference being that `IsWellFounded` is a class. This PR instead marks `WellFounded` as a class.
What is annoying is that you sometimes want the API to use it as a class and sometimes as an explicit argument, and it's not entirely clear to me what the best compromise is: duplicating API, or just picking one form and using it.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
430/474 |
Archive/Imo/Imo1988Q6.lean,Mathlib/Algebra/EuclideanDomain/Defs.lean,Mathlib/Algebra/Group/UniqueProds/Basic.lean,Mathlib/Algebra/Lie/Engel.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Pairing.lean,Mathlib/CategoryTheory/CofilteredSystem.lean,Mathlib/CategoryTheory/Subobject/ArtinianObject.lean,Mathlib/CategoryTheory/Subobject/NoetherianObject.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/Data/ENat/Basic.lean,Mathlib/Data/Fin/Tuple/BubbleSortInduction.lean,Mathlib/Data/Finset/Dedup.lean,Mathlib/Data/Finset/Defs.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Data/Finsupp/WellFounded.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/Data/List/Chain.lean,Mathlib/Data/List/Cycle.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/Data/Nat/Cast/WithTop.lean,Mathlib/Data/Nat/PartENat.lean,Mathlib/Data/Nat/WithBot.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Data/Rel.lean,Mathlib/Data/Set/Finite/Lemmas.lean,Mathlib/Data/Sum/Order.lean,Mathlib/Deprecated/Estimator.lean,Mathlib/GroupTheory/ArchimedeanDensely.lean,Mathlib/LinearAlgebra/ExteriorPower/Basis.lean,Mathlib/Logic/Hydra.lean,Mathlib/Order/Antisymmetrization.lean,Mathlib/Order/Cofinal.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Cover.lean,Mathlib/Order/Extension/Well.lean,Mathlib/Order/Hom/Basic.lean,Mathlib/Order/InitialSeg.lean,Mathlib/Order/Minimal.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/RelClasses.lean,Mathlib/Order/RelIso/Basic.lean,Mathlib/Order/RelIso/Set.lean,Mathlib/Order/RelSeries.lean,Mathlib/Order/Shrink.lean,Mathlib/Order/SuccPred/Archimedean.lean,Mathlib/Order/WellFounded.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/Order/WellQuasiOrder.lean,Mathlib/Order/WithBot.lean,Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Bezout.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Basic.lean,Mathlib/RingTheory/FiniteLength.lean,Mathlib/RingTheory/Length.lean,Mathlib/RingTheory/MvPolynomial/Groebner.lean,Mathlib/RingTheory/MvPowerSeries/NoZeroDivisors.lean,Mathlib/RingTheory/Noetherian/Basic.lean,Mathlib/RingTheory/Noetherian/Defs.lean,Mathlib/RingTheory/Polynomial/UniqueFactorization.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/RingTheory/SimpleModule/Basic.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Basic.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Defs.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Ideal.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Nat.lean,Mathlib/RingTheory/Valuation/Archimedean.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/SetTheory/Ordinal/Rank.lean,Mathlib/SetTheory/ZFC/Basic.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/SetTheory/ZFC/PSet.lean,Mathlib/SetTheory/ZFC/Rank.lean,Mathlib/Topology/Category/Profinite/Nobeling/Basic.lean,Mathlib/Topology/NoetherianSpace.lean |
81 |
28 |
['JovanGerb', 'SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
vihdzp assignee:vihdzp |
4-38197 4 days ago |
4-38259 4 days ago |
4-45936 4 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 |
4-19316 4 days ago |
4-19388 4 days ago |
4-19046 4 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 |
4-12125 4 days ago |
5-78246 5 days ago |
13-71020 13 days |
| 35418 |
vlad902 author:vlad902 |
feat(SimpleGraph): `IsAcyclic` iff not 2-edge-reachable |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
46/5 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean |
3 |
5 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vlad902'] |
nobody |
4-11256 4 days ago |
4-11318 4 days ago |
21-21793 21 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$ |
104/0 |
Mathlib/NumberTheory/Height/MvPolynomial.lean |
1 |
5 |
['AntoineChambert-Loir', 'MichaelStollBayreuth', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
4-8708 4 days ago |
4-66311 4 days ago |
4-68666 4 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 |
4-8468 4 days ago |
4-72193 4 days ago |
5-85104 5 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 |
4-4257 4 days ago |
4-4081 4 days ago |
15-47657 15 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
label:t-algebra$ |
14/0 |
Mathlib/NumberTheory/NumberField/Discriminant/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
3-84755 3 days ago |
3-85451 3 days ago |
0-1 1 second |
| 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 |
11 |
['Rida-Hamadani', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'vlad902'] |
nobody |
3-80115 3 days ago |
11-60026 11 days ago |
2-17599 2 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'] |
nobody |
3-62485 3 days ago |
3-62582 3 days ago |
3-62240 3 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 |
3-58592 3 days ago |
3-58568 3 days ago |
24-79200 24 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 |
3-55172 3 days ago |
16-10968 16 days ago |
74-11016 74 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
|
175/0 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/Schreier.lean |
2 |
2 |
['github-actions'] |
nobody |
3-55172 3 days ago |
3-77209 3 days ago |
3-76867 3 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
|
99/2 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
3 |
25 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster'] |
adamtopaz assignee:adamtopaz |
3-47043 3 days ago |
3-47106 3 days ago |
28-62969 28 days |
| 35933 |
urkud author:urkud |
chore(WellFounded): drop unneeded `Set.Nonempty` assumptions |
... in theorems that also assume
that a specific element belongs to the set.
---
[](https://gitpod.io/from-referrer/)
|
|
60/56 |
Archive/Imo/Imo1988Q6.lean,Counterexamples/AharoniKorman.lean,Mathlib/Combinatorics/Quiver/Arborescence.lean,Mathlib/Data/DFinsupp/WellFounded.lean,Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/FieldTheory/SeparableClosure.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/Order/Atoms.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Cover.lean,Mathlib/Order/InitialSeg.lean,Mathlib/Order/OrderIsoNat.lean,Mathlib/Order/PiLex.lean,Mathlib/Order/SuccPred/Basic.lean,Mathlib/Order/WellFounded.lean,Mathlib/Order/WellFoundedSet.lean,Mathlib/RingTheory/MvPowerSeries/LexOrder.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/PrincipalIdealDomain.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/ZFC/Class.lean,Mathlib/Topology/EMetricSpace/Paracompact.lean |
22 |
5 |
['Parcly-Taxel', 'github-actions', 'urkud', 'vihdzp'] |
dwrensha assignee:dwrensha |
3-41586 3 days ago |
9-46669 9 days ago |
9-49737 9 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 |
|
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 |
3-40186 3 days ago |
7-43119 7 days ago |
15-1401 15 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 |
3-40185 3 days ago |
11-50472 11 days ago |
12-31082 12 days |
| 36095 |
kim-em author:kim-em |
chore: remove stray comment about backward.isDefEq.respectTransparency |
This PR removes a stray comment in `lakefile.lean` that referred to the `backward.isDefEq.respectTransparency` option. The option itself was already removed, but the comment was left behind.
See https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/backward.2EisDefEq.2ErespectTransparency/near/576953838
🤖 Prepared with Claude Code |
|
0/3 |
lakefile.lean |
1 |
4 |
['Parcly-Taxel', 'github-actions', 'kim-em'] |
dwrensha assignee:dwrensha |
3-40181 3 days ago |
7-42512 7 days ago |
7-42170 7 days |
| 36097 |
matthewjasper author:matthewjasper |
chore: make psuedoparents of algebraic substructures reducible |
Make functions that take an algebraic substructure and return a sibling class reducible, this matches actual parents and resolves some usage of `set_option backward.isDefEq.respectTransparency false`. For example it ensures that the field instance on `IntermediateField` has a compatible `Semiring` instance to the one from it extending a `Subalgebra`.
Also remove @[simp] from `adjoin_toSubsemiring`, since it prevents other simp lemmas on `adjoin` from applying.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
23/16 |
Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/Algebra/Field/Subfield/Defs.lean,Mathlib/Algebra/Ring/Subring/Defs.lean,Mathlib/Algebra/Ring/Subsemiring/Defs.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/FieldTheory/IntermediateField/Basic.lean,Mathlib/RingTheory/NonUnitalSubring/Defs.lean,Mathlib/RingTheory/TensorProduct/Basic.lean |
11 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
3-40180 3 days ago |
6-47498 6 days ago |
6-50505 6 days |
| 36116 |
xgenereux author:xgenereux |
feat(Module/Torsion): P-primary component |
This PR adds the definition of the `P`-primary component of a module:
$$M(P) := \bigcup_{i : \mathbb{N}} \text{torsionBySet A M } P ^ i.$$
as well as some basic lemmas on how it behaves on `inf` and `sup`.
The main goal of this definition is to eventually have
$$M = \bigoplus_{P} M(P).$$
as well as showing that:
Given a surjective linear map `(φ : M₂ →ₗ[A] M₃)`, we have: `Surjective (primaryComponent.map P φ)`.
These will require #35539 and I will them PR separately. (Proof is quite small but they should be their own PR I think.)
Looking forward for feedback on this!
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$ |
138/0 |
Mathlib.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/Module/Torsion/PrimaryComponent.lean |
3 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
3-40178 3 days ago |
7-3130 7 days ago |
7-5026 7 days |
| 36163 |
mcdoll author:mcdoll |
feat(Analysis/SpecialFunctions): `rpow` is locally integrable |
Local integrability of real powers. This is only of interest at the origin, where `‖x‖ ^ (-α)` is not bounded.
Co-authored-by: Michael Douglas
---
From https://github.com/mrdouglasny/OSforGFF and made mathlib ready by me
[](https://gitpod.io/from-referrer/)
|
|
71/0 |
Mathlib/Analysis/SpecialFunctions/Pow/Integral.lean,Mathlib/MeasureTheory/Constructions/HaarToSphere.lean |
2 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
3-40176 3 days ago |
6-43703 6 days ago |
6-43361 6 days |
| 36335 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/AdjMatrix): adjacency matrices are Hermitian |
This should let us access the eigenvalues of adjacency matrices.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
large-import
|
10/5 |
Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean |
1 |
2 |
['github-actions', 'themathqueen'] |
nobody |
3-32886 3 days ago |
3-32948 3 days ago |
3-43783 3 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 |
459/0 |
Mathlib.lean,Mathlib/Data/ENNReal/AbsDiff.lean,Mathlib/Probability/ProbabilityMassFunction/TotalVariation.lean |
3 |
5 |
['BoltonBailey', 'github-actions', 'joneugster', 'quangvdao'] |
nobody |
3-32139 3 days ago |
4-53392 4 days ago |
4-53831 4 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/)
|
|
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 |
3-30573 3 days ago |
153-48630 153 days ago |
0-9 9 seconds |
| 36336 |
NoahW314 author:NoahW314 |
feat: add indiscrete topology lemmas |
Prove that the indiscrete topology is compact and that every function to the indiscrete topology is continuous.
--- |
t-topology
new-contributor
|
19/0 |
Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Order.lean |
2 |
7 |
['NoahW314', 'github-actions', 'plp127'] |
nobody |
3-29342 3 days ago |
3-48570 3 days ago |
3-54117 3 days |
| 36316 |
JovanGerb author:JovanGerb |
chore: import `Type*` in `Mathlib.Init` |
The implementation of `Type*` is very short, so I've put its minimal dependencies in the same file, `Mathlib.Tactic.TypeStar`, and imported this in `Mathlib.Init`. This allows us to get rid of many explicit imports of this file, and lets it be available everywhere in mathlib.
---
[](https://gitpod.io/from-referrer/)
|
large-import |
58/87 |
Mathlib/Algebra/Notation.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Algebra/Notation/Lemmas.lean,Mathlib/Control/Functor.lean,Mathlib/Data/Bool/AllAny.lean,Mathlib/Data/Bracket.lean,Mathlib/Data/Int/Cast/Pi.lean,Mathlib/Data/Int/Init.lean,Mathlib/Data/List/Lookmap.lean,Mathlib/Data/List/ModifyLast.lean,Mathlib/Data/List/TFAE.lean,Mathlib/Data/Nat/Init.lean,Mathlib/Data/Num/Basic.lean,Mathlib/Data/Option/Defs.lean,Mathlib/Data/Option/NAry.lean,Mathlib/Data/Ordering/Basic.lean,Mathlib/Data/Prod/PProd.lean,Mathlib/Data/Rat/Init.lean,Mathlib/Data/Tree/Basic.lean,Mathlib/Data/Vector3.lean,Mathlib/Init.lean,Mathlib/Lean/Elab/Term.lean,Mathlib/Logic/ExistsUnique.lean,Mathlib/Logic/Function/Coequalizer.lean,Mathlib/Logic/Function/CompTypeclasses.lean,Mathlib/Logic/Function/Defs.lean,Mathlib/Logic/Function/ULift.lean,Mathlib/Logic/Nonempty.lean,Mathlib/Logic/Nontrivial/Defs.lean,Mathlib/Order/Bounds/Defs.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Defs/PartialOrder.lean,Mathlib/Order/Notation.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/CategoryStar.lean,Mathlib/Tactic/FunProp/Mor.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/Inhabit.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/MkIffOfInductiveProp.lean,Mathlib/Tactic/TypeStar.lean,MathlibTest/BasicFiles/Init.lean,MathlibTest/BasicFiles/TacticBasic.lean,MathlibTest/ImplicitUniverses.lean |
44 |
2 |
['SnirBroshi', 'github-actions'] |
nobody |
3-9552 3 days ago |
3-76259 3 days ago |
3-79285 3 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'] |
nobody |
3-5465 3 days ago |
6-9817 6 days ago |
6-9475 6 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 |
3-4707 3 days ago |
6-34733 6 days ago |
14-18587 14 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 |
1 |
['github-actions'] |
nobody |
3-177 3 days ago |
6-42466 6 days ago |
6-43867 6 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. |
|
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 |
2 |
['JovanGerb', 'github-actions'] |
nobody |
2-84517 2 days ago |
6-35741 6 days ago |
6-37514 6 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'] |
nobody |
2-80055 2 days ago |
3-30660 3 days ago |
3-30318 3 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
|
116/10 |
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 |
5 |
16 |
['Thmoas-Guan', 'chrisflav', 'erdOne', 'github-actions'] |
chrisflav assignee:chrisflav |
2-79238 2 days ago |
10-72047 10 days ago |
5-31516 5 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 |
15 |
['bryangingechen', 'github-actions', 'mathlib-merge-conflicts', 'robin-carlier'] |
nobody |
2-78444 2 days ago |
3-3048 3 days ago |
4-79714 4 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'] |
nobody |
2-70123 2 days ago |
5-27405 5 days ago |
5-27063 5 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/)
|
|
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'] |
nobody |
2-69285 2 days ago |
2-69308 2 days ago |
8-45317 8 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 |
2-67989 2 days ago |
10-23820 10 days ago |
10-24647 10 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/13 |
Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/SetTheory/Ordinal/Exponential.lean |
2 |
3 |
['github-actions', 'leanprover-radar', 'vihdzp'] |
b-mehta assignee:b-mehta |
2-66568 2 days ago |
36-69955 36 days ago |
36-69758 36 days |
| 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
|
357/2 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean |
1 |
4 |
['SproutSeeds', 'github-actions'] |
nobody |
2-66040 2 days ago |
2-66100 2 days ago |
2-66469 2 days |
| 35840 |
SnirBroshi author:SnirBroshi |
feat(SetTheory/Ordinal/Arithmetic): `typein (· < ·) = natCast` for `ℕ` and `Fin n` |
Co-authored-by: Matt Diamond
---
[#Is there code for X? > `Ordinal.typein = NatCast`](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Ordinal.2Etypein.20.3D.20NatCast.60/with/576057726)
The same statement but for ordinals exists as [Ordinal.typein_ordinal](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Ordinal/Arithmetic.html#Ordinal.typein_ordinal).
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
25/0 |
Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
2 |
17 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
vihdzp assignee:vihdzp |
2-60947 2 days ago |
2-60969 2 days ago |
12-10998 12 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 |
2-59522 2 days ago |
2-59547 2 days ago |
15-58023 15 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'] |
nobody |
2-59184 2 days ago |
3-14565 3 days ago |
3-15675 3 days |
| 35772 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `CategoryTheory.Precoverage.toGrothendieck_toCoverage`: unchanged 🎉
* `Int.nonneg_or_nonpos_of_mul_nonneg`: unchanged 🎉
* `Associated.separable`: 113 ms before, 67 ms after 🎉
* `ModelWithCorners.isInteriorPoint_disjointUnion_left`: unchanged 🎉
* `ModelWithCorners.isInteriorPoint_disjointUnion_right`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
5/49 |
Mathlib/CategoryTheory/Sites/Coverage.lean,Mathlib/Data/Int/Order/Basic.lean,Mathlib/FieldTheory/Separable.lean,Mathlib/Geometry/Manifold/IsManifold/InteriorBoundary.lean |
4 |
2 |
['github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
dagurtomas assignee:dagurtomas |
2-58968 2 days ago |
2-58988 2 days ago |
13-66994 13 days |
| 36309 |
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):
* `AlgebraicGeometry.AffineSpace.SpecIso_hom_appTop`: 627 ms before, 385 ms after 🎉
* `AlgebraicGeometry.AffineSpace.reindex_comp`: unchanged 🎉
* `Polynomial.content_eq_zero_iff`: unchanged 🎉
* `Polynomial.mem_image_comap_C_basicOpen`: 1219 ms before, 797 ms after 🎉
* `IsClosed.isClopenable`: 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/AlgebraicGeometry/AffineSpace.lean,Mathlib/RingTheory/Polynomial/Content.lean,Mathlib/RingTheory/Spectrum/Prime/Polynomial.lean,Mathlib/Topology/MetricSpace/Polish.lean |
4 |
8 |
['euprunin', 'github-actions', 'harahu', 'urkud'] |
nobody |
2-55240 2 days ago |
2-55240 2 days ago |
4-9862 4 days |
| 35731 |
euprunin author:euprunin |
chore: golf using `exact`/`simpa` |
The goal of this PR is to decrease the number of times lemmas are called explicitly (replacing calls to lemmas with calls to tactics). Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `AlgebraicGeometry.Scheme.Cover.exists_of_trans_eq_trans`: unchanged 🎉
* `AlgebraicGeometry.compactSpace_iff_exists`: unchanged 🎉
* `SimplexCategory.eq_id_of_mono`: unchanged 🎉
* `SimplexCategory.eq_id_of_epi`: unchanged 🎉
* `CategoryTheory.GrothendieckTopology.isIso_toPlus_of_isSheaf`: unchanged 🎉
* `CategoryTheory.Functor.isTriangulated_of_op`: unchanged 🎉
* `SimpleGraph.chromaticNumber_top`: unchanged 🎉
* `SimpleGraph.Subgraph.singletonSubgraph_connected`: unchanged 🎉
* `SimpleGraph.Walk.exists_length_eq_one_iff`: unchanged 🎉
* `Turing.TM2to1.addBottom_modifyNth`: unchanged 🎉
* `IsNoetherian.iff_fg`: unchanged 🎉
* `contMDiff_inclusion`: unchanged 🎉
* `FermatLastTheoremForThree_of_FermatLastTheoremThreeGen`: 146 ms before, 91 ms after 🎉
* `FermatLastTheoremForThreeGen.lambda_sq_dvd_c`: 313 ms before, 218 ms after 🎉
* `WithTop.isGLB_sInf`: unchanged 🎉
* `WithBot.succ_eq_bot`: 56 ms before, <30 ms after 🎉
* `WithTop.pred_eq_top`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
22/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 |
2-55220 2 days ago |
3-14191 3 days ago |
11-46534 11 days |
| 36365 |
xroblot author:xroblot |
feat(FieldTheory/Galois): add fixedField_eq_iff_fixingSubgroup_eq and IsGaloisGroup.subgroup_iff |
This PR adds two results to the Galois correspondence API:
- `IsGalois.fixedField_eq_iff_fixingSubgroup_eq`: `fixedField H = K ↔ K.fixingSubgroup = H` which just an explicit restatement of the order isomorphism.
- `IsGaloisGroup.subgroup_iff`: `IsGaloisGroup H F L ↔ FixedPoints.intermediateField H = F` -- assuming `IsGaloisGroup G K L`--, where `H` is a subgroup of `G`, with the two directions as standalone lemmas.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
27/0 |
Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/Galois/IsGaloisGroup.lean |
2 |
1 |
['github-actions'] |
nobody |
2-55173 2 days ago |
2-70630 2 days ago |
2-70288 2 days |
| 35947 |
euprunin author:euprunin |
chore: replace `aesop` with `grind` where the latter is significantly faster |
This experiment investigates the impact of replacing particularly heavy `aesop` calls with `grind`, specifically how this change affects the instruction count as measured by the benchmarking infrastructure.
Trace profiling results (differences <30 ms considered measurement noise):
* `Submonoid.mem_closure_image_one_lt_iff`: 125 ms before, 61 ms after 🎉
* `SimpleGraph.Connected.connected_delete_edge_of_not_isBridge`: 230 ms before, 51 ms after 🎉
* `SimpleGraph.Subgraph.IsMatching.exists_of_disjoint_sets_of_equiv`: 899 ms before, 666 ms after 🎉
* `SimpleGraph.IsCycles.existsUnique_ne_adj`: 855 ms before, 599 ms after 🎉
* `SimpleGraph.Walk.IsPath.isCycles_spanningCoe_toSubgraph_sup_edge`: 962 ms before, 619 ms after 🎉
* `SimpleGraph.IsAlternating.sup_edge`: 2854 ms before, 1615 ms after 🎉
* `SimpleGraph.Subgraph.IsPerfectMatching.symmDiff_of_isAlternating`: 3103 ms before, 1734 ms after 🎉
* `SimpleGraph.edgeSet_replaceVertex_of_not_adj`: 1525 ms before, 933 ms after 🎉
* `SimpleGraph.edgeSet_replaceVertex_of_adj`: 2194 ms before, 1605 ms after 🎉
* `SimpleGraph.tutte_exists_isPerfectMatching_of_near_matchings`: 3161 ms before, 1652 ms after 🎉
* `RootPairing.Base.sub_notMem_range_root`: 1025 ms before, 978 ms after 🎉
* `RootPairing.EmbeddedG2.mem_allRoots`: 3832 ms before, 3255 ms after 🎉
* `RootSystem.GeckConstruction.Lemmas.0.RootPairing.chainBotCoeff_mul_chainTopCoeff.aux_2`: 3572 ms before, 2631 ms after 🎉
* `isCompact_generateFrom`: 1987 ms before, 763 ms after 🎉
* `IsCompactOpenCovered.of_isCompact_of_forall_exists_isCompactOpenCovered`: 2279 ms before, 2009 ms after 🎉
* `UniformContinuousOn.comp_tendstoUniformly_eventually`: 416 ms before, 151 ms after 🎉
Profiled using `set_option trace.profiler true in`.
This PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
27/27 |
Mathlib/Algebra/Group/Irreducible/Indecomposable.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/LinearAlgebra/RootSystem/Base.lean,Mathlib/LinearAlgebra/RootSystem/Finite/G2.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Lemmas.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Sets/CompactOpenCovered.lean,Mathlib/Topology/UniformSpace/UniformConvergenceTopology.lean |
11 |
4 |
['euprunin', 'github-actions', 'leanprover-radar', 'vihdzp'] |
joelriou assignee:joelriou |
2-54881 2 days ago |
9-44115 9 days ago |
9-43773 9 days |
| 36380 |
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):
* `AlgebraicGeometry.Scheme.zariskiTopology_le_propQCTopology`: unchanged 🎉
* `CategoryTheory.Pretriangulated.shift_opShiftFunctorEquivalence_counitIso_inv_app`: unchanged 🎉
* `Finset.exists_subset_or_subset_of_two_mul_lt_card`: 210 ms before, 173 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/)
|
|
5/18 |
Mathlib/AlgebraicGeometry/Sites/QuasiCompact.lean,Mathlib/CategoryTheory/Triangulated/Opposite/Basic.lean,Mathlib/Data/Finset/Card.lean |
3 |
1 |
['github-actions'] |
nobody |
2-53887 2 days ago |
2-53959 2 days ago |
2-53617 2 days |
| 36381 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(RingTheory/UniqueFactorizationDomain/Multiplicity): more API |
This adds a few API lemmas on factorization in `UniqueFactorizationMonoid`s.
It also includes a minor cleanup of sections and variables.
The results will be useful for proving the Northcott property for heights on number fields.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-ring-theory
large-import
label:t-algebra$ |
32/10 |
Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean |
1 |
1 |
['github-actions'] |
nobody |
2-53874 2 days ago |
2-53946 2 days ago |
2-53604 2 days |
| 35830 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Data/Nat/Choose/Multinomial): multinomial coefficients |
Define the multinomial coefficients, a variant of `Nat.multinomial`.
- redefine `Multiset.multinomial`.
Given a multiset `m` of natural numbers, `m.multinomial` is the
multinomial coefficient defined by (m.sum) ! / ∏ i ∈ m, m i !.
As an example, `Multiset.multinomial {1, 2, 2} = 30`.
This is the exponent of $x y^2 z^2$ in $(x+y+z)^5$.
This should not be confused with the existing `Multiset.multinomial` which gives a different answer,
for example, `Multiset.multinomial {1, 2, 2} = 3`. This function is renamed as `Multiset.countPerms`.
- `Multiset.multinomial_cons` proves that
`(x ::ₘ m).multinomial = Nat.choose (x + m.sum) x * m.multinomial`
- `Multiset.multinomial_add` proves that
`(m + m').multinomial = Nat.choose (m + m').sum m.sum * m.multinomial * m'.multinomial`
co-authored with @mariainesdff
---
[](https://gitpod.io/from-referrer/)
|
t-data |
179/20 |
Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Data/List/ToFinsupp.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean |
4 |
9 |
['AntoineChambert-Loir', 'github-actions', 'vihdzp'] |
joneugster assignee:joneugster |
2-51200 2 days ago |
11-52797 11 days ago |
12-653 12 days |
| 36382 |
euprunin author:euprunin |
chore: replace long terminal `rw […]`:s (≥6 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.derivative_pow`: unchanged 🎉
* `NormedSpace.expSeries_apply_zero`: unchanged 🎉
* `EReal.sign_mul_inv_abs`: 193 ms before, 157 ms after 🎉
* `Matrix.trace_eq_sum_roots_charpoly_of_splits`: unchanged 🎉
* `RingOfIntegers.isUnit_norm_of_isGalois`: unchanged 🎉
* `sdiff_sup`: unchanged 🎉
* `MvPolynomial.quotientEquivQuotientMvPolynomial_rightInverse`: unchanged 🎉
* `TopCat.Sheaf.existsUnique_gluing'`: unchanged 🎉
* `StalkSkyscraperPresheafAdjunctionAuxs.to_skyscraper_fromStalk`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
|
9/16 |
Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/LinearAlgebra/Matrix/Charpoly/Eigs.lean,Mathlib/NumberTheory/NumberField/Norm.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/RingTheory/Polynomial/Quotient.lean,Mathlib/Topology/Sheaves/SheafCondition/UniqueGluing.lean,Mathlib/Topology/Sheaves/Skyscraper.lean |
9 |
1 |
['github-actions'] |
nobody |
2-49910 2 days ago |
2-49975 2 days ago |
2-49633 2 days |
| 36377 |
euprunin author:euprunin |
chore: replace long terminal `simp only […]`:s (≥7 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):
* `SimpleGraph.Walk.toSubgraph_adj_getVert`: unchanged 🎉
* `MeasureTheory.MemLp.induction_dense`: unchanged 🎉
* `DirichletCharacter.re_log_comb_nonneg'`: unchanged 🎉
* `Zsqrtd.intCast_dvd`: unchanged 🎉
* `ProbabilityTheory.Kernel.iIndepSets.iIndep`: unchanged 🎉
* `LaurentSeries.exists_ratFunc_val_lt`: unchanged 🎉
* `Polynomial.cyclotomic_pos_and_nonneg`: unchanged 🎉
* `PowerSeries.eq_shift_mul_X_add_const`: unchanged 🎉
* `PowerSeries.eq_X_mul_shift_add_const`: 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/)
|
maintainer-merge |
9/18 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/MeasureTheory/Function/SimpleFuncDenseLp.lean,Mathlib/NumberTheory/LSeries/Nonvanishing.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean,Mathlib/Probability/Independence/Kernel/Indep.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Eval.lean,Mathlib/RingTheory/PowerSeries/Basic.lean |
8 |
3 |
['JovanGerb', 'github-actions'] |
nobody |
2-41130 2 days ago |
2-55568 2 days ago |
2-55226 2 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'] |
nobody |
2-40710 2 days ago |
7-7331 7 days ago |
7-6989 7 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 |
2-40185 2 days ago |
5-80239 5 days ago |
5-80725 5 days |
| 35652 |
dennj author:dennj |
feat(LinearAlgebra/Matrix): add `Matrix.mul_eq_smul_one_symm` |
## Summary
- Add `Matrix.mul_eq_smul_one_symm`: if `M * N = c • 1` and `det M ≠ 0`, then `N * M = c • 1`
- A scalar generalisation of `mul_eq_one_symm` (the `c = 1` case) to arbitrary scalars, requiring `IsDomain` and `det M ≠ 0`
- The proof uses the adjugate identity `adjugate M * M = det M • 1` to derive `det M • (N * M) = det M • (c • 1)`, then cancels `det M` via `mul_left_cancel₀`
Theorem imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory |
t-algebra
new-contributor
label:t-algebra$ |
28/0 |
Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean |
1 |
2 |
['eric-wieser', 'github-actions'] |
dagurtomas assignee:dagurtomas |
2-40183 2 days ago |
16-62690 16 days ago |
16-62348 16 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 |
2-40181 2 days ago |
10-48044 10 days ago |
10-50346 10 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 |
2 |
['github-actions'] |
joelriou assignee:joelriou |
2-40177 2 days ago |
6-25741 6 days ago |
6-25513 6 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 |
2-40175 2 days ago |
6-25741 6 days ago |
6-25399 6 days |
| 36204 |
smmercuri author:smmercuri |
feat(NumberTheory/NumberField/InfiniteAdeleRing): norm and product formula for the infinite adele ring |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
25/0 |
Mathlib/NumberTheory/NumberField/InfiniteAdeleRing.lean |
1 |
1 |
['github-actions'] |
nobody |
2-38406 2 days ago |
5-76269 5 days ago |
5-75927 5 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 |
2-36116 2 days ago |
4-20593 4 days ago |
4-20251 4 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$ |
71/0 |
Mathlib/Algebra/MvPolynomial/Degrees.lean |
1 |
2 |
['github-actions'] |
nobody |
2-34025 2 days ago |
2-34025 2 days ago |
2-33683 2 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
|
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 |
2-28298 2 days ago |
13-66044 13 days ago |
16-13588 16 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 |
2-20945 2 days ago |
7-37267 7 days ago |
9-1276 9 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'] |
nobody |
2-20247 2 days ago |
2-20318 2 days ago |
2-19976 2 days |
| 34677 |
joneugster author:joneugster |
feat(scripts/autolabel): add missing folders |
add the following rules for folders not covered by the script yet:
- `Mathlib/Geometry/Polygon` to `t-euclidean-geometry`
- `Mathlib/Geometry/Diffeology` to `t-differential-geometry`
- `Cache` to `ci`
---
[](https://gitpod.io/from-referrer/)
|
CI
easy
|
7/2 |
scripts/autolabel.lean |
1 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
jcommelin assignee:jcommelin |
2-16409 2 days ago |
24-37556 24 days ago |
24-37412 24 days |
| 34678 |
joneugster author:joneugster |
feat(scripts/autolabel): add dependencies for `t-ring-theory` |
these changes are motivated by clearing the [triage queue: PRs without topic label](https://leanprover-community.github.io/queueboard/triage.html#unlabelled): about 60-70% of unlabelled PRs were `feat(RingTheory/...)` which also modified stuff falling under `t-algebra`, `t-group-theory` or `t-data`.
- [x] depends on: #34066
---
[](https://gitpod.io/from-referrer/)
|
CI
easy
|
6/3 |
scripts/autolabel.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
jcommelin assignee:jcommelin |
2-16274 2 days ago |
10-62661 10 days ago |
10-63868 10 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 |
12 |
['github-actions', 'grunweg', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-16049 2 days ago |
5-30909 5 days ago |
6-31801 6 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 |
2-12888 2 days ago |
2-69188 2 days ago |
8-77736 8 days |
| 36379 |
JadAbouHawili author:JadAbouHawili |
doc: Rename Finset API instances in Documentation for clarity |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
3/8 |
Mathlib/Data/Finset/Lattice/Basic.lean |
1 |
4 |
['JadAbouHawili', 'github-actions'] |
nobody |
2-11865 2 days ago |
2-52310 2 days ago |
2-53619 2 days |
| 32672 |
tb65536 author:tb65536 |
feat: haar measures on short exact sequences |
This PR proves that if `1 → A → B → C → 1` is a short exact sequence of topological groups, then Haar measures on `A` and `C` induce a Haar measure on `B`.
The final result of the file is a consequence needed for FLT: If `B → C` is injective on an open set `U`, then `U` has bounded measure.
---
- [x] depends on: #35081
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
t-topology
FLT
|
285/0 |
Mathlib.lean,Mathlib/MeasureTheory/Integral/Bochner/Basic.lean,Mathlib/MeasureTheory/Measure/Haar/Extension.lean |
3 |
18 |
['RemyDegenne', 'github-actions', 'jcommelin', 'kbuzzard', 'mathlib-dependent-issues', 'tb65536'] |
nobody |
2-5777 2 days ago |
29-9773 29 days ago |
61-7958 61 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`.
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/)
|
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 |
2-5662 2 days ago |
2-55257 2 days ago |
6-44942 6 days |
| 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 |
129/30 |
Mathlib/Data/Set/Card.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Embeddings.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Ramification.lean |
4 |
3 |
['github-actions', 'smmercuri', 'tb65536'] |
nobody |
2-356 2 days ago |
2-67194 2 days ago |
2-68936 2 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 |
2-37 2 days ago |
15-31539 15 days ago |
18-18557 18 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'] |
nobody |
1-86049 1 day ago |
6-33969 6 days ago |
15-16518 15 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 |
170/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 |
21 |
['SnirBroshi', 'github-actions', 'jessealama'] |
nobody |
1-84396 1 day ago |
1-84447 1 day ago |
2-54279 2 days |
| 35977 |
jessealama author:jessealama |
feat(Algebra/Homology): add dimension lemmas for homological complex differentials |
Show that `dFrom` and `dTo` in a homological complex vanish when the target or source object is zero, and add `Mathlib.Algebra.Homology.ChainComplex.Dimension` with dimension-related properties for complexes of modules over a division ring over an arbitrary `ComplexShape ι`: zero range from zero objects, finrank equalities between `dFrom`/`dTo` ranges and the underlying differential, inclusion of the range of `dTo` in the kernel of `dFrom`, and a finrank equality for adjacent differentials in ℤ-indexed chain complexes.
Spun off from #29713. |
t-algebra label:t-algebra$ |
103/0 |
Mathlib.lean,Mathlib/Algebra/Homology/ChainComplex/Dimension.lean |
2 |
4 |
['github-actions', 'jessealama', 'joelriou', 'mathlib-bors'] |
joelriou assignee:joelriou |
1-84282 1 day ago |
8-79296 8 days ago |
8-78992 8 days |
| 30112 |
gaetanserre author:gaetanserre |
feat(Probability.Kernel): add representation of kernel as a map of a uniform measure |
Add results about isolation of kernels randomness. In particular, it shows that one
can write a Markov kernel as the map by a deterministic of a uniform measure on `[0, 1]`.
It corresponds to Lemma 4.22 in "[Foundations of Modern Probability](https://link.springer.com/book/10.1007/978-3-030-61871-1)" by Olav Kallenberg, 2021.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
maintainer-merge
|
129/0 |
Mathlib.lean,Mathlib/Probability/Kernel/Representation.lean |
2 |
49 |
['DavidLedvinka', 'EtienneC30', 'RemyDegenne', 'gaetanserre', 'github-actions', 'mathlib4-merge-conflict-bot'] |
nobody |
1-84030 1 day ago |
4-75548 4 days ago |
91-69907 91 days |
| 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 |
3 |
['Bergschaf', 'YaelDillies', 'github-actions'] |
nobody |
1-83377 1 day ago |
2-71187 2 days ago |
2-71289 2 days |
| 35113 |
bryangingechen author:bryangingechen |
ci: refactor commit_verification so it works on PRs from forks |
Currently the commit verification workflow fails when run on a PR from a fork because it tries to post a comment, but its GITHUB_TOKEN is read-only. [Example failure](https://github.com/leanprover-community/mathlib4/actions/runs/21796757425/job/62885536927?pr=34973)
This PR refactors the commit verification workflow using the new [leanprover-community/privilege-escalation-bridge](https://github.com/leanprover-community/privilege-escalation-bridge), splitting it into two workflows where the second one (triggered by `workflow_run` has access to a GITHUB_TOKEN that can post comments).
We also make the workflow run the commit verification scripts from `master` rather than the PR branch to close a small security issue where someone could spoof verification / get the workflow to post arbitrary comments by modifying the scripts in their branch.
Prepared with codex.
---
[](https://gitpod.io/from-referrer/)
|
CI |
81/22 |
.github/workflows/commit_verification.yml,.github/workflows/commit_verification_wf_run.yml |
2 |
29 |
['bryangingechen', 'github-actions', 'joneugster', 'marcelolynch', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
1-81898 1 day ago |
20-69955 20 days ago |
7-46277 7 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 |
1-81744 1 day ago |
1-81800 1 day ago |
1-81458 1 day |
| 35871 |
edegeltje author:edegeltje |
feat(CategoryTheory/Limits): `IsPullback.mono_fst_of_mono` and similar |
This lemma is more convenient than going through `MorphismProperty.IsStableUnderBasechange`.
We use `(inst : Mono f := by infer_instance)` instead of `[Mono f]` because on occasion, these proof arguments are not by `inferInstance`, and this design lets us more easily use the lemma in such cases.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
42/46 |
Mathlib/CategoryTheory/Limits/Shapes/Pullback/IsPullback/Basic.lean,Mathlib/CategoryTheory/MorphismProperty/Limits.lean |
2 |
8 |
['dagurtomas', 'edegeltje', 'github-actions', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-81357 1 day ago |
3-3118 3 days ago |
3-5994 3 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
|
399/0 |
Mathlib.lean,Mathlib/Probability/Process/LocalProperty.lean |
2 |
6 |
['github-actions', 'kex-y', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
1-81089 1 day ago |
1-81139 1 day ago |
1-81894 1 day |
| 35375 |
joelriou author:joelriou |
feat(Algebra/Homology/SpectralObject): first quadrant spectral objects |
When a spectral object indexed by the extended integers lies on the first quadrant (typeclass `IsFirstQuadrant`), it will be possible to construct a spectral sequence where the objects on the pages are indexed by `ℕ × ℕ` (TODO).
---
- [x] depends on: #35374
- [x] depends on: #35373
- [x] depends on: #35372
- [x] depends on: #35357
- [x] depends on: #35355
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
85/0 |
Mathlib/Algebra/Homology/SpectralObject/HasSpectralSequence.lean |
1 |
16 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier', 'smorel394'] |
nobody |
1-79853 1 day ago |
4-62380 4 days ago |
4-62040 4 days |
| 35939 |
joelriou author:joelriou |
feat(Algebra/Homology): a homology exact sequence for triangles of cochain complexes |
... which become distinguished in the derived category.
---
- [x] depends on: #35938
- [x] depends on: #35937
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
128/11 |
Mathlib/Algebra/Homology/DerivedCategory/Basic.lean,Mathlib/Algebra/Homology/DerivedCategory/HomologySequence.lean |
2 |
12 |
['dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier'] |
nobody |
1-79773 1 day ago |
2-76671 2 days ago |
8-7997 8 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'] |
nobody |
1-79486 1 day ago |
1-79558 1 day ago |
1-81885 1 day |
| 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/)
|
|
412/32 |
Mathlib/Analysis/Calculus/DerivativeTest.lean,Mathlib/Topology/Order/OrderClosedExtr.lean |
2 |
3 |
['CoolRmal', 'github-actions'] |
nobody |
1-78308 1 day ago |
37-8457 37 days ago |
0-25 25 seconds |
| 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 |
1-78127 1 day ago |
1-78150 1 day ago |
18-21202 18 days |
| 27953 |
CoolRmal author:CoolRmal |
feat(ProbabilityTheory): Conditional Jensen's Inequality |
This PR adds several variants of the conditional Jensen's inequality. I made some changes to Mathlib/Analysis/Convex/Approximation.lean because I need the sequence of affine functions to be bouneded above at each point in the proof of `conditional_jensen_hereditarilyLindelofSpace`.
---
- [x] depends on: #31411
- [x] depends on: #31399
- [x] depends on: #31180
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
212/18 |
Mathlib.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/MeasureTheory/Measure/Trim.lean |
5 |
11 |
['CoolRmal', 'EtienneC30', 'RemyDegenne', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
sgouezel assignee:sgouezel |
1-78001 1 day ago |
1-79718 1 day ago |
35-35299 35 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/)
|
|
290/284 |
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 |
1-76659 1 day ago |
1-83343 1 day ago |
1-85638 1 day |
| 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'] |
nobody |
1-73307 1 day ago |
1-73378 1 day ago |
1-73036 1 day |
| 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 |
1-73064 1 day ago |
1-72827 1 day ago |
27-15563 27 days |
| 36396 |
harahu author:harahu |
doc(misc): fix typos |
Found by `PyCharm`'s code inspection tool
---
[](https://gitpod.io/from-referrer/)
|
IMO |
6/6 |
Archive/Imo/Imo1988Q6.lean,MathlibTest/HaveLetLinter.lean,MathlibTest/fun_prop2.lean,MathlibTest/fun_prop_dev.lean |
4 |
1 |
['euprunin', 'github-actions'] |
nobody |
1-72565 1 day ago |
1-76841 1 day ago |
1-76499 1 day |
| 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'] |
nobody |
1-72494 1 day ago |
2-69143 2 days ago |
3-45164 3 days |
| 35896 |
harahu author:harahu |
chore(misc): fix typos |
The typos were identified by `PyCharm`'s proofreading inspection.
---
[](https://gitpod.io/from-referrer/)
|
|
97/96 |
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,Mathlib/Combinatorics/Matroid/Map.lean,Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/TuranDensity.lean,Mathlib/Condensed/Light/InternallyProjective.lean,Mathlib/Data/Finset/NatDivisors.lean,Mathlib/Data/FunLike/Graded.lean,Mathlib/Data/Matrix/ColumnRowPartitioned.lean,Mathlib/Data/Seq/Defs.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Dynamics/Newton.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/Geometry/Manifold/VectorBundle/LocalFrame.lean,Mathlib/GroupTheory/GroupAction/SubMulAction/Combination.lean,Mathlib/Lean/FoldEnvironment.lean,Mathlib/LinearAlgebra/PiTensorProduct/Dual.lean,Mathlib/LinearAlgebra/RootSystem/Reduced.lean,Mathlib/LinearAlgebra/TensorPower/Symmetric.lean,Mathlib/LinearAlgebra/Transvection.lean,Mathlib/NumberTheory/Chebyshev.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/NumberTheory/Padics/Complex.lean,Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Def.lean,Mathlib/Probability/Distributions/Gaussian/IsGaussianProcess/Independence.lean,Mathlib/Probability/Independence/Process.lean,Mathlib/RingTheory/Extension/Cotangent/Basic.lean,Mathlib/RingTheory/Flat/TorsionFree.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean,Mathlib/RingTheory/IntegralClosure/Algebra/Ideal.lean,Mathlib/RingTheory/LaurentSeries.lean,Mathlib/RingTheory/PowerSeries/Expand.lean,Mathlib/RingTheory/QuasiFinite/Basic.lean,Mathlib/RingTheory/Smooth/Fiber.lean,Mathlib/RingTheory/ZariskisMainTheorem.lean,Mathlib/Tactic/CategoryTheory/Elementwise.lean,Mathlib/Tactic/Simproc/ExistsAndEq.lean,Mathlib/Tactic/Translate/Reorder.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean,Mathlib/Topology/Category/TopCat/OpenNhds.lean,Mathlib/Topology/MetricSpace/CoveringNumbers.lean,Mathlib/Topology/MetricSpace/PartitionOfUnity.lean |
63 |
4 |
['euprunin', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
1-72320 1 day ago |
1-77035 1 day ago |
7-13264 7 days |
| 36400 |
chrisflav author:chrisflav |
chore(CategoryTheory/MorphismProperty/Comma): API for `mapLeft` and `mapRight` |
From Pi1.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
108/0 |
Mathlib/CategoryTheory/MorphismProperty/Comma.lean |
1 |
1 |
['github-actions'] |
nobody |
1-72219 1 day ago |
1-72297 1 day ago |
1-71955 1 day |
| 35072 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for `Seq`: `FriendlyOperation` API |
This is a continuation of #34311.
This PR adds more API about friendly operations:
* `FriendlyOperation.destruct`: a "coinductive destructor" for `FriendlyOperation`
* `FriendlyOperation.coind`: a coinductive principle for proving that operation is friendly
* `FriendlyOperationClass.eq_of_bisim`: a generalisation of `Seq.eq_of_bisim'` for proving two sequences are equal.
---
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-data
t-meta
|
297/2 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean |
1 |
29 |
['Vierkantor', 'github-actions', 'joneugster', 'vasnesterov'] |
joneugster assignee:joneugster |
1-70687 1 day ago |
1-70702 1 day ago |
15-71638 15 days |
| 34922 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): Multiseries definition and structural lemmas |
Define `Multiseries` and `MultiseriesExpansion` and restate some `Seq` API for `Multiseries`.
---
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-data
t-meta
|
411/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Defs.lean |
3 |
13 |
['Vierkantor', 'github-actions', 'joneugster', 'mathlib-merge-conflicts', 'vasnesterov'] |
Vierkantor and joneugster assignee:Vierkantor assignee:joneugster |
1-70144 1 day ago |
1-80550 1 day ago |
23-4271 23 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 |
1-64952 1 day ago |
5-55967 5 days ago |
5-55625 5 days |
| 36373 |
joelriou author:joelriou |
chore(CategoryTheory/Limits/Cones): fixing non-dsimp-nf lemmas |
We use the `dsimp%` term elaborator to put certain lemmas into dsimp normal form, so that they can be used without doing `set_option backward.isDefEq.respectTransparency false`. This removes all but one of these in the file `CategoryTheory/Limits/Cones`. The remaining one has to do with `Quiver.Hom.unop_op`.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
52/46 |
Mathlib/Algebra/Category/Ring/FinitePresentation.lean,Mathlib/AlgebraicGeometry/AffineTransitionLimit.lean,Mathlib/CategoryTheory/Equivalence.lean,Mathlib/CategoryTheory/Limits/Cones.lean,Mathlib/CategoryTheory/Limits/Shapes/SequentialProduct.lean,Mathlib/CategoryTheory/Limits/Yoneda.lean,Mathlib/Condensed/Discrete/Colimit.lean |
7 |
2 |
['JovanGerb', 'github-actions'] |
nobody |
1-63874 1 day ago |
1-63934 1 day ago |
2-63561 2 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 |
1-63316 1 day ago |
139-75305 139 days ago |
66-69993 66 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'] |
nobody |
1-57756 1 day ago |
5-7089 5 days ago |
6-37287 6 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'] |
nobody |
1-57523 1 day ago |
7-4016 7 days ago |
7-7697 7 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 |
1-56845 1 day ago |
55-13003 55 days ago |
55-36009 55 days |
| 35518 |
kim-em author:kim-em |
chore: forbid prime (') in filenames, rename LinearCombination' |
This PR renames `Mathlib/Tactic/LinearCombination'.lean` to `LinearCombinationPrime.lean` (and the corresponding test file), and adds a lint check to `modulesOSForbidden` to prevent future files with prime/apostrophe characters in their names.
The `'` character in filenames causes shell escaping issues in scripts (any `find ... -name '*.lean'` or similar pattern needs careful quoting to handle these files correctly).
🤖 Prepared with Claude Code |
file-removed
t-meta
|
13/8 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/LinearCombinationPrime.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,MathlibTest/linear_combination_prime.lean |
6 |
6 |
['eric-wieser', 'euprunin', 'github-actions', 'kim-em'] |
nobody |
1-54806 1 day ago |
18-10212 18 days ago |
18-13056 18 days |
| 35702 |
plp127 author:plp127 |
feat: uniqueness of partial fraction decomposition |
We prove a uniqueness theorem for each existence theorem in the file.
---
- [x] depends on: #35000
- [x] depends on: #35703
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
254/18 |
Mathlib/Algebra/Polynomial/PartialFractions.lean |
1 |
3 |
['github-actions', 'mathlib-bors', 'mathlib-dependent-issues'] |
nobody |
1-53987 1 day ago |
11-75356 11 days ago |
11-77994 11 days |
| 36171 |
SnirBroshi author:SnirBroshi |
feat(SetTheory/Ordinal): `o ≤ c.ord ↔ o.card ≤ c` in special cases |
`o ≤ c.ord ↔ o.card ≤ c` when `o` is initial, or when `c` is finite.
The left-to-right direction always holds (`Cardinal.card_le_of_le_ord`).
Not to be confused with `c.ord ≤ o ↔ c ≤ o.card` which also always holds (`Cardinal.ord_le`).
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
11/2 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
2 |
4 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
vihdzp assignee:vihdzp |
1-53353 1 day ago |
1-53418 1 day ago |
1-83979 1 day |
| 36290 |
euprunin author:euprunin |
chore(AlgebraicGeometry): unsqueeze terminal `simp`:s (`simp only […]` to `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):
* `AlgebraicGeometry.IsClosedImmersion.Spec_iff`: 141 ms before, 108 ms after 🎉
* `AlgebraicGeometry.ProjIsoSpecTopComponent.FromSpec.carrier.denom_notMem`: unchanged 🎉
* `AlgebraicGeometry.Scheme.PartialMap.ext_iff`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
This PR is batched under the following guidelines:
* Up to ~5 changed files per PR
* Up to ~25 changed declarations per PR
* Up to ~100 changed lines per PR
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
3/3 |
Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/AlgebraicGeometry/RationalMap.lean |
3 |
2 |
['github-actions', 'joelriou'] |
nobody |
1-53009 1 day ago |
4-61673 4 days ago |
4-61331 4 days |
| 33044 |
bryangingechen author:bryangingechen |
ci: also get cache for parent commit |
Instead of only attempting to fetch the cache corresponding to the commit, we also try to fetch the cache for the "parent" commit as well. The parent commit is taken from the following candidates in the following order:
- `github.event.before`: the last pushed commit; exists for `pull_request_target: synchronize` and `push` events
- `github.pull_request.base.sha`: the commit for the base branch; exists for `pull_request_target: opened` (and `reopened`) events
- `HEAD^`: exists for all events, but the cache may not have been uploaded
cf. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Mathlib.20has.20moved.20to.20the.20new.20module.20system/near/563452000
---
[](https://gitpod.io/from-referrer/)
|
CI |
54/8 |
.github/workflows/build_template.yml |
1 |
13 |
['bryangingechen', 'github-actions', 'grunweg', 'jcommelin', 'joneugster', 'mathlib-bors', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
1-48392 1 day ago |
55-76821 55 days ago |
26-35884 26 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'] |
nobody |
1-47663 1 day ago |
1-47707 1 day ago |
1-63822 1 day |
| 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'] |
nobody |
1-47246 1 day ago |
1-61729 1 day ago |
0-6 6 seconds |
| 36405 |
seewoo5 author:seewoo5 |
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 |
160/0 |
Mathlib.lean,Mathlib/NumberTheory/ModularForms/Derivative.lean |
2 |
17 |
['CBirkbeck', 'github-actions', 'mathlib-bors', 'seewoo5', 'wwylele'] |
nobody |
1-47094 1 day ago |
1-47160 1 day ago |
1-47951 1 day |
| 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 |
19/1 |
Mathlib/Tactic/Translate/Core.lean,MathlibTest/ToDual.lean |
2 |
4 |
['JovanGerb', 'gasparattila', 'github-actions'] |
nobody |
1-45854 1 day ago |
4-45631 4 days ago |
4-45289 4 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'] |
nobody |
1-41615 1 day ago |
1-45884 1 day ago |
1-48964 1 day |
| 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 |
2 |
['github-actions'] |
nobody |
1-41420 1 day ago |
1-41494 1 day ago |
1-41152 1 day |
| 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 |
1-40199 1 day ago |
361-75550 361 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 |
1-40198 1 day ago |
4-77260 4 days ago |
4-79182 4 days |
| 26561 |
b-mehta author:b-mehta |
feat(LiminfLimsup): liminf of an antitone function is its supremum |
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #26560 |
t-topology |
57/0 |
Mathlib/Topology/Order/LiminfLimsup.lean |
1 |
4 |
['b-mehta', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot'] |
dagurtomas assignee:dagurtomas |
1-40197 1 day ago |
4-80808 4 days ago |
4-81744 4 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
|
506/0 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Arrow.lean,Mathlib/CategoryTheory/Monoidal/Limits/Shapes/Pullback.lean |
3 |
20 |
['dagurtomas', 'github-actions', 'mathlib-dependent-issues', 'mckoen'] |
joelriou assignee:joelriou |
1-40196 1 day ago |
5-28459 5 days ago |
5-84023 5 days |
| 35042 |
JovanGerb author:JovanGerb |
chore: remove `meta` form `import Mathlib.Tactic...` |
This PR cleans up some imports of the form `import Mathlib.Tactic...`, by either removing them entirely, or removing the `meta` keyword. It should never be necessary to `meta import` a file from `Mathlib.Tactic`, because the relevant definitions should already have been marked as `meta`.
The motivation is to reduce the amount of files that are `meta` imported when writing e.g. `import Mathlib`, hence reducing the amount of stuff that needs to be loaded. There are more other `meta import`s that need to be removed, but this PR is a good start.
---
[](https://gitpod.io/from-referrer/)
|
large-import |
61/142 |
Mathlib/Algebra/BigOperators/Group/Finset/Defs.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/Group/Action/Hom.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/CategoryTheory/Functor/Basic.lean,Mathlib/Data/List/ChainOfFn.lean,Mathlib/Dynamics/OmegaLimit.lean,Mathlib/GroupTheory/GroupAction/Defs.lean,Mathlib/GroupTheory/GroupAction/DomAct/Basic.lean,Mathlib/Tactic/Algebraize.lean,Mathlib/Tactic/ApplyFun.lean,Mathlib/Tactic/ArithMult.lean,Mathlib/Tactic/Bound.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Bicategory/Normalize.lean,Mathlib/Tactic/CategoryTheory/Bicategory/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/CheckCompositions.lean,Mathlib/Tactic/CategoryTheory/Coherence/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/Normalize.lean,Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/Elementwise.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Normalize.lean,Mathlib/Tactic/CategoryTheory/Monoidal/PureCoherence.lean,Mathlib/Tactic/CategoryTheory/ToApp.lean,Mathlib/Tactic/Choose.lean,Mathlib/Tactic/DeclarationNames.lean,Mathlib/Tactic/DefEqTransformations.lean,Mathlib/Tactic/DeriveCountable.lean,Mathlib/Tactic/DeriveFintype.lean,Mathlib/Tactic/DeriveTraversable.lean,Mathlib/Tactic/ENatToNat.lean,Mathlib/Tactic/Explode.lean,Mathlib/Tactic/Explode/Pretty.lean,Mathlib/Tactic/FinCases.lean,Mathlib/Tactic/FunProp.lean,Mathlib/Tactic/FunProp/Attr.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/FunProp/Types.lean,Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GRewrite/Elab.lean,Mathlib/Tactic/Group.lean,Mathlib/Tactic/IrreducibleDef.lean,Mathlib/Tactic/Lift.lean,Mathlib/Tactic/Linarith.lean,Mathlib/Tactic/Linarith/Lemmas.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/Gauss.lean,Mathlib/Tactic/Linarith/Oracle/SimplexAlgorithm/SimplexAlgorithm.lean,Mathlib/Tactic/Linarith/Preprocessing.lean,Mathlib/Tactic/Linarith/Verification.lean,Mathlib/Tactic/LinearCombination/Lemmas.lean,Mathlib/Tactic/Linter/DeprecatedSyntaxLinter.lean,Mathlib/Tactic/Linter/DocPrime.lean,Mathlib/Tactic/Linter/DocString.lean,Mathlib/Tactic/Linter/EmptyLine.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/Linter/GlobalAttributeIn.lean,Mathlib/Tactic/Linter/HashCommandLinter.lean,Mathlib/Tactic/Linter/Multigoal.lean,Mathlib/Tactic/Linter/OldObtain.lean,Mathlib/Tactic/Linter/Style.lean,Mathlib/Tactic/Linter/TextBased.lean,Mathlib/Tactic/Linter/TextBased/UnicodeLinter.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,Mathlib/Tactic/Linter/UnusedTacticExtension.lean,Mathlib/Tactic/MinImports.lean,Mathlib/Tactic/MoveAdd.lean,Mathlib/Tactic/Nontriviality/Core.lean,Mathlib/Tactic/NormNum/DivMod.lean,Mathlib/Tactic/NormNum/Ineq.lean,Mathlib/Tactic/NormNum/Prime.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/Order/CollectFacts.lean,Mathlib/Tactic/Order/Graph/Tarjan.lean,Mathlib/Tactic/PNatToNat.lean,Mathlib/Tactic/Peel.lean,Mathlib/Tactic/ProdAssoc.lean,Mathlib/Tactic/ProxyType.lean,Mathlib/Tactic/Push.lean,Mathlib/Tactic/Qify.lean,Mathlib/Tactic/RSuffices.lean,Mathlib/Tactic/Ring/Basic.lean,Mathlib/Tactic/Ring/Common.lean,Mathlib/Tactic/Ring/Compare.lean,Mathlib/Tactic/Ring/PNat.lean,Mathlib/Tactic/Simproc/Divisors.lean,Mathlib/Tactic/Simproc/FinsetInterval.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/Subsingleton.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,Mathlib/Tactic/TautoSet.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/TagUnfoldBoundary.lean,Mathlib/Tactic/Widget/Calc.lean,Mathlib/Tactic/Widget/CommDiag.lean,Mathlib/Tactic/Widget/CongrM.lean |
107 |
8 |
['JovanGerb', 'dupuisf', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] |
ocfnash assignee:ocfnash |
1-40195 1 day ago |
18-6285 18 days ago |
22-421 22 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 |
1-40194 1 day ago |
7-11380 7 days ago |
13-38183 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 |
25/29 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues'] |
robin-carlier assignee:robin-carlier |
1-40193 1 day ago |
5-5067 5 days ago |
5-6260 5 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 |
1-40192 1 day ago |
16-14928 16 days ago |
16-14586 16 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 |
1-40191 1 day ago |
4-68018 4 days ago |
6-83699 6 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 |
1-40190 1 day ago |
7-42946 7 days ago |
7-42605 7 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_{of/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 |
59/6 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean |
4 |
2 |
['copilot-pull-request-reviewer', 'github-actions'] |
chrisflav assignee:chrisflav |
1-40190 1 day ago |
7-25658 7 days ago |
7-25316 7 days |
| 36119 |
Ruizsolveall author:Ruizsolveall |
feat(Topology/Covering): fundamental group of the circle is ℤ |
## Summary
- Proves that the fundamental group of the circle `π₁(S¹, 0)` is isomorphic to `ℤ`, via covering space theory.
- Constructs the winding number map `nLoop : ℤ → Path 0 0` on `AddCircle 1`, and proves it is surjective (`surj_nLoop`), injective (`inj_nLoop`), and additive (`nLoop_add`).
- Assembles these into the group isomorphism `fundamentalGroupCircle : Multiplicative ℤ ≃* FundamentalGroup (AddCircle 1) 0`.
## Approach
Uses the covering map `ℝ → AddCircle 1` and unique path lifting to establish the bijection between homotopy classes of loops and integers (winding numbers). Homotopy invariance of lifted endpoints gives injectivity; surjectivity follows from lifting arbitrary loops. Additivity uses path concatenation of lifts in the simply connected total space `ℝ`.
## Test plan
- [x] `lake env lean Mathlib/Topology/Covering/FundamentalGroupCircle.lean` builds with 0 errors, 0 warnings |
t-topology
new-contributor
|
236/0 |
Mathlib.lean,Mathlib/Topology/Covering/FundamentalGroupCircle.lean |
2 |
22 |
['Ruizsolveall', 'SnirBroshi', 'b-mehta', 'github-actions', 'vihdzp'] |
dagurtomas assignee:dagurtomas |
1-40189 1 day ago |
7-3893 7 days ago |
7-3551 7 days |
| 36137 |
smmercuri author:smmercuri |
feat: define pullbacks of `HeightOneSpectrum` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
7/0 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean |
1 |
1 |
['github-actions'] |
erdOne assignee:erdOne |
1-40188 1 day ago |
6-80325 6 days ago |
6-79983 6 days |
| 36276 |
b-mehta author:b-mehta |
feat(Probability/UniformOn): add uniformOn_pi |
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
|
14/0 |
Mathlib/Probability/UniformOn.lean |
1 |
1 |
['github-actions'] |
RemyDegenne assignee:RemyDegenne |
1-40183 1 day ago |
4-71724 4 days ago |
4-73219 4 days |
| 36288 |
b-mehta author:b-mehta |
feat(MeasureTheory/Constructions/Pi): add pi_pi_finset |
This PR adds `Measure.pi_pi_finset`, which computes the product measure of a partial pi set `(s : Set ι).pi f` as `∏ i ∈ s, μ i (f i)` when all measures are probability measures. This generalises `Measure.pi_pi` from `Set.univ.pi` to an arbitrary `Finset`.
---
[](https://gitpod.io/from-referrer/)
|
easy
t-measure-probability
|
4/0 |
Mathlib/MeasureTheory/Constructions/Pi.lean |
1 |
1 |
['github-actions'] |
kex-y assignee:kex-y |
1-40183 1 day ago |
4-64094 4 days ago |
4-64476 4 days |
| 36289 |
euprunin author:euprunin |
chore(Algebra): unsqueeze terminal `simp`:s (`simp only […]` to `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):
* `spectrum.inv₀_mem_iff`: unchanged 🎉
* `Fin.partialProd_contractNth`: unchanged 🎉
* `GenContFract.fib_le_of_contsAux_b`: 1225 ms before, 1045 ms after 🎉
* `normalize_eq_normalize`: unchanged 🎉
* `gcd_mul_left`: 100 ms before, 65 ms after 🎉
* `lcm_mul_left`: unchanged 🎉
* `LieSubmodule.lieIdeal_oper_eq_linear_span`: unchanged 🎉
* `LieIdeal.comap_bracket_incl`: unchanged 🎉
* `MvPolynomial.eval₂_eq_eval_map`: unchanged 🎉
* `geom_sum_pos'`: unchanged 🎉
* `Polynomial.natDegree_multiset_prod_X_sub_C_eq_card`: unchanged 🎉
* `Polynomial.eq_X_add_C_of_degree_le_one`: unchanged 🎉
* `Polynomial.hasseDeriv_coeff`: 491 ms before, 433 ms after 🎉
* `QuadraticAlgebra.algebraMap_dvd_iff`: unchanged 🎉
* `AlgebraicGeometry.IsAffineOpen.iSup_of_disjoint_aux`: 679 ms before, 609 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/)
|
t-algebra label:t-algebra$ |
14/15 |
Mathlib/Algebra/Algebra/Spectrum/Basic.lean,Mathlib/Algebra/BigOperators/Fin.lean,Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Lie/IdealOperations.lean,Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/Order/Ring/GeomSum.lean,Mathlib/Algebra/Polynomial/BigOperators.lean,Mathlib/Algebra/Polynomial/Degree/SmallDegree.lean,Mathlib/Algebra/Polynomial/HasseDeriv.lean,Mathlib/Algebra/QuadraticAlgebra/Defs.lean |
11 |
1 |
['github-actions'] |
ocfnash assignee:ocfnash |
1-40182 1 day ago |
4-62014 4 days ago |
4-61672 4 days |
| 36297 |
ocfnash author:ocfnash |
feat: supporting lemmas for theory of bases in Lie theory |
Split out from other work to simplify review.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
242/4 |
Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Lie/Subalgebra.lean,Mathlib/Algebra/Lie/Submodule.lean,Mathlib/Algebra/Lie/TraceForm.lean,Mathlib/Algebra/Lie/Weights/Cartan.lean,Mathlib/Algebra/Lie/Weights/Killing.lean,Mathlib/Algebra/Module/LinearMap/Defs.lean,Mathlib/Data/Set/Finite/Range.lean,Mathlib/LinearAlgebra/Basis/Basic.lean,Mathlib/LinearAlgebra/LinearIndependent/Defs.lean,Mathlib/LinearAlgebra/Matrix/Nondegenerate.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Order/ModularLattice.lean,Mathlib/Order/SupIndep.lean,Mathlib/RingTheory/Regular/Category.lean |
15 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
1-40181 1 day ago |
unknown |
0-0 0 seconds |
| 33355 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SimpleGraph/Connectivity): define vertex connectivity |
This PR introduces the foundations of vertex connectivity for simple graphs, providing a counterpart to the edge connectivity theory in #32870.
### Main definitions
- `SimpleGraph.IsVertexReachable`: vertices remain reachable after removing strictly fewer than `k` other vertices.
- `SimpleGraph.IsVertexConnected`: a graph is `k`-vertex-connected if its order is strictly greater than `k` and any two distinct vertices are `k`-vertex-reachable.
Includes basic characterizations for $k=0$ and $k=1$, along with monotonicity lemmas (`anti` and `mono`). |
new-contributor
t-combinatorics
|
199/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/IsolateVerts.lean |
3 |
138 |
['0xTerencePrime', 'SnirBroshi', 'SproutSeeds', 'YaelDillies', 'github-actions', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
1-36037 1 day ago |
13-33507 13 days ago |
34-65819 34 days |
| 36347 |
FrankieeW author:FrankieeW |
feat(NumberTheory/QuadraticField): define quadratic number fields as QuadraticAlgebra ℚ d 0 |
Define `Qsqrtd d` as `QuadraticAlgebra ℚ d 0`, representing the quadratic number field `ℚ(√d)`. Prove trace and norm results, show `Qsqrtd d` is a number field and a quadratic extension when `d` is not a perfect square, and prove that `ℚ(√0)` and `ℚ(√1)` are not fields. Include `IsQuadraticField` as a predicate for quadratic extensions of `ℚ`, and bridge lemmas connecting squarefree integer parameters to the non-square condition.
This PR is part of a series upstreaming the [QuadraticNumberFields](https://github.com/FrankieeW/QuadraticNumberFields) project.
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/quadratic.20number.20fields)
---
### PRs
- #36347 (this PR)
- #36387
---
|
t-number-theory
new-contributor
large-import
|
191/0 |
Mathlib.lean,Mathlib/Algebra/QuadraticAlgebra/Defs.lean,Mathlib/Algebra/Squarefree/Basic.lean,Mathlib/NumberTheory/QuadraticField/Basic.lean |
4 |
23 |
['FrankieeW', 'eric-wieser', 'github-actions', 'riccardobrasca', 'tb65536', 'wwylele'] |
nobody |
1-35179 1 day ago |
1-53574 1 day ago |
1-86262 1 day |
| 36390 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory/Ideal): move and add some lemma about smul top |
move and add some lemma about smul top
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
34/8 |
Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean,Mathlib/RingTheory/Regular/RegularSequence.lean |
3 |
2 |
['github-actions', 'tb65536'] |
nobody |
1-32242 1 day ago |
2-17966 2 days ago |
2-18827 2 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 |
|
73/26 |
Cache/IO.lean,Cache/Requests.lean |
2 |
1 |
['github-actions'] |
nobody |
1-28536 1 day ago |
1-30056 1 day ago |
1-29714 1 day |
| 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'] |
nobody |
1-28407 1 day ago |
1-28470 1 day ago |
1-28234 1 day |
| 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
|
6/0 |
Mathlib/Tactic/CategoryTheory/Bicategory/Datatypes.lean,Mathlib/Tactic/CategoryTheory/Monoidal/Datatypes.lean |
2 |
1 |
['github-actions'] |
nobody |
1-23242 1 day ago |
1-26542 1 day ago |
0-706 11 minutes |
| 34435 |
huaizhangchu author:huaizhangchu |
feat(Probability): convolution of Poisson distributions |
This PR proves that the convolution of two Poisson distributions is again a Poisson distribution:
`Poisson(r₁) ∗ Poisson(r₂) = Poisson(r₁ + r₂)`
## Main results
- `poissonMeasureReal_charFun`: characteristic function of Poisson distribution is `exp(r(exp(it) - 1))`
- `poissonMeasureReal_conv_poissonMeasureReal`: convolution of Poisson distributions on ℝ
- `poissonMeasure_conv_poissonMeasure`: convolution of Poisson distributions on ℕ
- `poissonMeasure_add_poissonMeasure_of_indepFun`: sum of independent Poisson random variables
## Proof strategy
Uses characteristic functions: `φ(t) = exp(r(eⁱᵗ - 1))`, then pulls back from ℝ to ℕ.
---
- [x] depends on: #34521 |
t-measure-probability
large-import
new-contributor
|
107/1 |
Mathlib/Probability/Distributions/Poisson/Basic.lean |
1 |
31 |
['CoolRmal', 'DavidLedvinka', 'EtienneC30', 'github-actions', 'huaizhangchu', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
EtienneC30 assignee:EtienneC30 |
1-15289 1 day ago |
4-7251 4 days ago |
29-33945 29 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 |
331/36 |
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 |
63 |
['chrisflav', 'dagurtomas', 'edegeltje', 'github-actions', 'joelriou', 'mathlib-merge-conflicts', 'mathlib-splicebot', 'robin-carlier'] |
chrisflav assignee:chrisflav |
1-15124 1 day ago |
2-18388 2 days ago |
7-2394 7 days |
| 30927 |
callesonne author:callesonne |
feat(Bicategory/Yoneda): add the yoneda pseudofunctor |
---
- [x] depends on: #30926
- [x] depends on: #30895
- [x] depends on: #25901
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
124/1 |
Mathlib.lean,Mathlib/CategoryTheory/Bicategory/Yoneda.lean,Mathlib/Data/Opposite.lean |
3 |
14 |
['callesonne', 'github-actions', 'joelriou', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'robin-carlier'] |
nobody |
1-11250 1 day ago |
1-11314 1 day ago |
3-16154 3 days |
| 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 |
588/8 |
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 |
5 |
1 |
['github-actions'] |
nobody |
1-11213 1 day ago |
1-11286 1 day ago |
1-11156 1 day |
| 36393 |
smmercuri author:smmercuri |
chore(NumberTheory/NumberField): move number field completion material to new subdir |
---
The reason for this move is that in a dependent PR #30551 I have some results on the ramification theory of infinite place completions which should really go in `NumberTheory/NumberField/InfinitePlace/Ramification.lean` but there is a circular dependence between `InfinitePlace/Completion.lean` and `InfinitePlace/Ramification.lean` that is difficult to resolve. Also `InfinitePlace/Ramification.lean` is getting quite long. So it seems like the best way to fix it is to create a separate `Completion` subdirectory.
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
706/670 |
Mathlib.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/NumberTheory/NumberField/Completion/InfinitePlace.lean,Mathlib/NumberTheory/NumberField/FinitePlaces.lean,Mathlib/NumberTheory/NumberField/InfiniteAdeleRing.lean,Mathlib/NumberTheory/NumberField/InfinitePlace/Completion.lean,Mathlib/NumberTheory/NumberField/ProductFormula.lean |
7 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
1-9145 1 day ago |
1-13497 1 day ago |
0-76011 21 hours |
| 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 |
1-7300 1 day ago |
1-64043 1 day ago |
28-60011 28 days |
| 36402 |
gasparattila author:gasparattila |
feat(Translate): add support for specifying argument names |
This PR adds a `(rename := x → y, ...)` option to `@[to_additive]` and `@[to_dual]` for specifying the argument names of the translated declaration.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
81/50 |
Mathlib/Order/Hom/Lattice.lean,Mathlib/Order/Lattice.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Tactic/Translate/ToDual.lean,MathlibTest/ToDual.lean |
6 |
4 |
['JovanGerb', 'gasparattila', 'github-actions'] |
nobody |
1-5519 1 day ago |
1-64872 1 day ago |
1-67600 1 day |
| 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 |
1-5424 1 day ago |
1-34223 1 day ago |
25-58282 25 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'] |
nobody |
1-2895 1 day ago |
1-3570 1 day ago |
0-1 1 second |
| 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'] |
nobody |
1-2748 1 day ago |
1-64787 1 day ago |
1-78478 1 day |
| 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 |
1-1875 1 day ago |
1-1945 1 day ago |
12-78588 12 days |
| 36087 |
matthewjasper author:matthewjasper |
chore: fix diamonds for Real/Complex Algebra instances |
Unfold or make `implicit_reducible` some definitions used to define `Algebra ℝ ℂ` . This should allow reducing use of `set_option backward.isDefEq.respectTransparency false`.
---
[](https://gitpod.io/from-referrer/)
|
|
73/49 |
Mathlib/Algebra/Algebra/Defs.lean,Mathlib/Algebra/Algebra/Pi.lean,Mathlib/Algebra/Algebra/Prod.lean,Mathlib/Algebra/Algebra/RestrictScalars.lean,Mathlib/Algebra/Category/ModuleCat/Algebra.lean,Mathlib/Analysis/Calculus/MeanValue.lean,Mathlib/Analysis/Complex/Basic.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 |
20 |
5 |
['github-actions', 'mathlib-merge-conflicts', 'matthewjasper'] |
nobody |
1-459 1 day ago |
1-484 1 day ago |
7-31833 7 days |
| 35774 |
astrainfinita author:astrainfinita |
chore: use `IsLUB` `IsGLB` in `ConditionallyCompleteLattice` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
138/193 |
Mathlib/Algebra/Tropical/Lattice.lean,Mathlib/Data/Int/ConditionallyCompleteOrder.lean,Mathlib/Data/Nat/Lattice.lean,Mathlib/Data/Real/Archimedean.lean,Mathlib/Order/CompleteLattice/Basic.lean,Mathlib/Order/CompleteLatticeIntervals.lean,Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Defs.lean,Mathlib/Order/Copy.lean |
9 |
10 |
['astrainfinita', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
Komyyy assignee:Komyyy |
0-85959 23 hours ago |
0-85985 23 hours ago |
13-3641 13 days |
| 35539 |
xgenereux author:xgenereux |
feat(DedekindDomain/Factorization): add `iInf` version of `finprod_heightOneSpectrum_factorization` |
This PR adds an `iInf` version of `finprod_heightOneSpectrum_factorization`. This requires two lemmas:
- `prod_eq_iInf_of_coprime` - An `iInf` version of `mul_eq_inf_of_coprime`.
- `HeightOneSpectrum.pow_sup_pow_eq_top` - Bundled up version of `Ideal.IsMaximal.coprime_of_ne` + `Ideal.pow_sup_pow_eq_top` for `HeightOneSpectrum`.
------
I noticed that these lemmas simplify a bit the work on the Chinese remainder theorem done in the file. The last commit of this PR is this simplification. I can remove it if this is not relevant.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
87/48 |
Mathlib/Algebra/Module/DedekindDomain.lean,Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean |
5 |
17 |
['chrisflav', 'erdOne', 'github-actions', 'xgenereux'] |
chrisflav assignee:chrisflav |
0-85789 23 hours ago |
0-85859 23 hours ago |
18-8908 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 |
0-85627 23 hours ago |
11-20735 11 days ago |
11-20393 11 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$ |
115/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 |
4 |
['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-85248 23 hours ago |
0-85320 23 hours ago |
1-6535 1 day |
| 36420 |
JovanGerb author:JovanGerb |
feat(Tactic/FastInstance): use expected type to fill in arguments |
This PR improves `fast_instance%` by letting it use the expected type to fill in arguments. This allows us to then define `inferInstanceAs% A` as a macro for `fast_instance% inferInstanceAs A`.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
200/96 |
Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/NumberTheory/Padics/WithVal.lean,Mathlib/Tactic/FastInstance.lean,MathlibTest/DefEqAbuse.lean,MathlibTest/InferInstanceAsPercent.lean,MathlibTest/fast_instance.lean,MathlibTest/slow_instances.lean |
7 |
9 |
['JovanGerb', 'github-actions', 'kim-em', 'leanprover-radar'] |
nobody |
0-84899 23 hours ago |
0-84963 23 hours ago |
1-38087 1 day |
| 34588 |
Ruben-VandeVelde author:Ruben-VandeVelde |
feat: add generalizations of some padicVal{Nat,Int} lemmas |
Also drop the unnecessary primality condition from padicValInt_dvd.
From flt-regular.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
34/16 |
Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/NumberTheory/Padics/PadicVal/Defs.lean |
2 |
3 |
['github-actions', 'mariainesdff', 'mathlib-merge-conflicts'] |
mariainesdff assignee:mariainesdff |
0-84810 23 hours ago |
6-10477 6 days ago |
24-46802 24 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 |
7 |
['ADedecker', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-84446 23 hours ago |
1-63959 1 day ago |
1-66033 1 day |
| 35481 |
FrankieeW author:FrankieeW |
chore(NumberTheory/Zsqrtd): inline duplicated order lemmas into instances |
This PR follows reviewer feedback by removing duplicated order/additive wrapper theorems in `Zsqrtd` and inlining the proofs into the corresponding typeclass instances.
Changes include:
- remove redundant wrappers such as `Zsqrtd.le_total`, `Zsqrtd.add_le_add_left`, `Zsqrtd.le_of_add_le_add_left`, `Zsqrtd.add_lt_add_left`, and `Zsqrtd.le_antisymm`
- keep the canonical API through `LinearOrder` / ordered additive structure fields
- update downstream use in `PellMatiyasevic` to the canonical theorem (`_root_.le_antisymm`)
This reduces namespace-level duplicate APIs and keeps proofs aligned with standard typeclass lemmas.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-number-theory
|
26/10 |
Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean |
2 |
9 |
['FrankieeW', 'MichaelStollBayreuth', 'github-actions', 'vihdzp'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-84436 23 hours ago |
19-35142 19 days ago |
20-77041 20 days |
| 33466 |
Shreyas4991 author:Shreyas4991 |
refactor(Combinatorics/Digraph): add vertex sets |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
382/55 |
Mathlib/Combinatorics/Digraph/Basic.lean,Mathlib/Combinatorics/Digraph/Orientation.lean |
2 |
82 |
['IvanRenison', 'Shreyas4991', 'SnirBroshi', 'YaelDillies', 'copilot-pull-request-reviewer', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vihdzp', 'vlad902'] |
awainverse assignee:awainverse |
0-83970 23 hours ago |
0-84064 23 hours ago |
26-21233 26 days |
| 36383 |
JovanGerb author:JovanGerb |
fix(Translate): check if target is reserved name |
This PR makes sure that `to_dual`/`to_additive` can translate between reserved names by first realizing them. This is needed in #35031 to translate `CoconeMorphism.mk.congr_simp`.
I've made a private function `realizeGlobalConst` which is basically a variant of `Lean.hasConst` but which also checks for reserved names. This should ideally be an API function provided by Lean, but I didn't find it.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
18/7 |
Mathlib/Tactic/Translate/Core.lean |
1 |
2 |
['github-actions'] |
nobody |
0-82385 22 hours ago |
2-48123 2 days ago |
2-48087 2 days |
| 35572 |
joelriou author:joelriou |
feat(CategoryTheory/Sites/Point): fiber functors are monoidal |
If `Φ` is a point of a site, the target category `A` is monoidal and the tensor product commutes with filtered colimits on both variables, then the functors `Φ.presheafFiber : (Cᵒᵖ ⥤ A) ⥤ A)` and `Φ.sheafFiber : Sheaf J A ⥤ A` are monoidal.
---
- [x] depends on: #35757
- [x] depends on: #35961
- [x] depends on: #35806
- [x] depends on: #35691
- [x] depends on: #35575
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
157/4 |
Mathlib.lean,Mathlib/CategoryTheory/Sites/Point/Basic.lean,Mathlib/CategoryTheory/Sites/Point/Conservative.lean,Mathlib/CategoryTheory/Sites/Point/Monoidal.lean,Mathlib/CategoryTheory/Sites/Point/Skyscraper.lean |
5 |
11 |
['github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier'] |
nobody |
0-81641 22 hours ago |
2-77460 2 days ago |
5-84076 5 days |
| 35966 |
joelriou author:joelriou |
feat(CategoryTheory/Abelian): the localization w.r.t. a Serre class is abelian |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
large-import
maintainer-merge
|
296/6 |
Mathlib/CategoryTheory/Abelian/SerreClass/Localization.lean |
1 |
9 |
['dagurtomas', 'github-actions', 'joelriou', 'robin-carlier'] |
nobody |
0-80357 22 hours ago |
2-66408 2 days ago |
8-24831 8 days |
| 29550 |
Raph-DG author:Raph-DG |
feat(RingTheory): Order of vanishing in a discrete valuation ring |
In this PR we develop some API for working with the order of vanishing in a discrete valuation ring.
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-ring-theory
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-79299 22 hours ago |
5-6606 5 days ago |
45-3930 45 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'] |
nobody |
0-79237 22 hours ago |
1-78654 1 day ago |
1-78327 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-77756 21 hours ago |
0-82732 22 hours ago |
0-82390 22 hours |
| 36250 |
xgenereux author:xgenereux |
feat: add `not_linearIndependent_iff` variants |
These are useful because you know that `∀ i ∈ f.support, g i ≠ 0` whereas `not_linearIndependent_iff` only gives you `∃ i ∈ s, g i ≠ 0`.
In a finset language you could state this is `Nonempty s` + `∀ i ∈ s, g i ≠ 0` but I think just using `Finsupp` is better.
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$ |
8/0 |
Mathlib/LinearAlgebra/LinearIndependent/Defs.lean |
1 |
1 |
['github-actions'] |
kim-em assignee:kim-em |
0-77739 21 hours ago |
5-9032 5 days ago |
5-8690 5 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'] |
nobody |
0-77603 21 hours ago |
0-86207 23 hours ago |
1-127 1 day |
| 36427 |
kim-em author:kim-em |
chore: remove set_option backward.isDefEq.respectTransparency false |
This PR removes all `set_option backward.isDefEq.respectTransparency false in` workarounds across 310 files. These are no longer needed with the v4.29.0-rc6 toolchain.
🤖 Prepared with Claude Code |
|
933/916 |
Archive/Imo/Imo1959Q2.lean,Archive/Imo/Imo1963Q5.lean,Archive/Imo/Imo1982Q3.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2019Q2.lean,Archive/MinimalSheffer.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Archive/Wiedijk100Theorems/HeronsFormula.lean,Archive/Wiedijk100Theorems/SolutionOfCubicQuartic.lean,Counterexamples/HeawoodUnitDistance.lean,Mathlib/Algebra/Algebra/ZMod.lean,Mathlib/Algebra/BrauerGroup/Defs.lean,Mathlib/Algebra/Category/AlgCat/Symmetric.lean,Mathlib/Algebra/Category/FGModuleCat/Colimits.lean,Mathlib/Algebra/Category/FGModuleCat/Limits.lean,Mathlib/Algebra/Category/Grp/Abelian.lean,Mathlib/Algebra/Category/HopfAlgCat/Monoidal.lean,Mathlib/Algebra/Category/ModuleCat/Abelian.lean,Mathlib/Algebra/Category/ModuleCat/Descent.lean,Mathlib/Algebra/Category/ModuleCat/EpiMono.lean,Mathlib/Algebra/Category/ModuleCat/Monoidal/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/Sheafify.lean,Mathlib/Algebra/Category/Ring/LinearAlgebra.lean,Mathlib/Algebra/CharP/Invertible.lean,Mathlib/Algebra/CharP/MixedCharZero.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/Algebra/Expr.lean,Mathlib/Algebra/Field/Equiv.lean,Mathlib/Algebra/Field/IsField.lean,Mathlib/Algebra/FreeMonoid/Basic.lean,Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Algebra/Group/Action/Basic.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/Pointwise/Finset.lean,Mathlib/Algebra/Group/Action/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Hom/Basic.lean,Mathlib/Algebra/Group/Invertible/Basic.lean,Mathlib/Algebra/Group/Invertible/Defs.lean,Mathlib/Algebra/Group/Pi/Basic.lean,Mathlib/Algebra/Group/Pointwise/Finset/Basic.lean,Mathlib/Algebra/Group/Pointwise/Finset/Scalar.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Scalar.lean,Mathlib/Algebra/Group/Submonoid/Pointwise.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Basic.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/GroupWithZero/Invertible.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Homology/ComplexShapeSigns.lean,Mathlib/Algebra/Homology/Functor.lean,Mathlib/Algebra/Lie/Basic.lean,Mathlib/Algebra/Lie/Classical.lean,Mathlib/Algebra/Lie/Derivation/Basic.lean,Mathlib/Algebra/Lie/Extension.lean,Mathlib/Algebra/Lie/Free.lean,Mathlib/Algebra/Lie/NonUnitalNonAssocAlgebra.lean,Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/Module/Submodule/Defs.lean,Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/Algebra/MonoidAlgebra/Module.lean,Mathlib/Algebra/MvPolynomial/Nilpotent.lean,Mathlib/Algebra/Order/Archimedean/Basic.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semifield.lean,Mathlib/Algebra/Order/Group/Lattice.lean,Mathlib/Algebra/Order/Group/Unbundled/Abs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Quandle.lean,Mathlib/Algebra/Ring/Invertible.lean,Mathlib/Algebra/SkewMonoidAlgebra/Basic.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Algebra/Star/RingQuot.lean,Mathlib/AlgebraicGeometry/Artinian.lean,Mathlib/AlgebraicGeometry/Cover/Directed.lean,Mathlib/AlgebraicGeometry/FunctionField.lean,Mathlib/AlgebraicGeometry/Geometrically/Basic.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/AlgebraicGeometry/LimitsOver.lean,Mathlib/AlgebraicGeometry/Morphisms/ClosedImmersion.lean,Mathlib/AlgebraicGeometry/Morphisms/Finite.lean,Mathlib/AlgebraicGeometry/Morphisms/SchemeTheoreticallyDominant.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyOpen.lean,Mathlib/AlgebraicGeometry/Normalization.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Functor.lean,Mathlib/AlgebraicTopology/DoldKan/NReflectsIso.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/ModelCategory/Basic.lean,Mathlib/AlgebraicTopology/Quasicategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean,Mathlib/AlgebraicTopology/SimplicialSet/Dimension.lean,Mathlib/AlgebraicTopology/SimplicialSet/Finite.lean,Mathlib/AlgebraicTopology/SimplicialSet/HoFunctorMonoidal.lean,Mathlib/AlgebraicTopology/SimplicialSet/Horn.lean,Mathlib/AlgebraicTopology/SimplicialSet/NerveAdjunction.lean,Mathlib/AlgebraicTopology/SimplicialSet/Subcomplex.lean |
668 |
2 |
['github-actions', 'jcommelin'] |
nobody |
0-76953 21 hours ago |
1-4502 1 day ago |
1-6644 1 day |
| 35841 |
astrainfinita author:astrainfinita |
chore(Order/Defs/LinearOrder): avoid `grind` in very fundamental lemmas |
Some lemmas can be optimized more elegantly, but it requires moving lemmas from other files, so I will do it in a subsequent PR.
---
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2334013.20chore.3A.20golf.20with.20grind.20to.20reduce.20explicit.20lemma.20refer/near/570429476)
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
41/28 |
Mathlib/Order/Defs/LinearOrder.lean |
1 |
17 |
['Komyyy', 'astrainfinita', 'github-actions', 'grunweg'] |
nobody |
0-76599 21 hours ago |
1-21224 1 day ago |
10-63834 10 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'] |
nobody |
0-76514 21 hours ago |
13-69737 13 days ago |
13-69395 13 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'] |
nobody |
0-76290 21 hours ago |
0-76374 21 hours ago |
0-76032 21 hours |
| 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'] |
nobody |
0-75720 21 hours ago |
0-75798 20 hours ago |
0-75456 20 hours |
| 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 |
0-75436 20 hours ago |
0-75240 20 hours ago |
5-60886 5 days |
| 36395 |
JovanGerb author:JovanGerb |
chore: mark `toSubfield`, `toSubmodule`, `toSubring` as `reducible` |
This PR marks `IntermediateField.toSubfield`, `Subalgebra.toSubring` and `Subalgebra.toSubmodule` as `implicit_reducible`, because these are all used to construct instances on substructures, and hence need to be reducible when unifying type classes.
This allows removing at least 100 backwards compatability flags (possibly more because I haven't checked these exhaustively)
---
[](https://gitpod.io/from-referrer/)
|
|
7/109 |
Mathlib/Algebra/Algebra/Subalgebra/Basic.lean,Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/FieldTheory/IntermediateField/Basic.lean,Mathlib/FieldTheory/LinearDisjoint.lean,Mathlib/RingTheory/DedekindDomain/LinearDisjoint.lean,Mathlib/RingTheory/LinearDisjoint.lean,Mathlib/RingTheory/TensorProduct/Basic.lean |
7 |
10 |
['JovanGerb', 'eric-wieser', 'github-actions', 'leanprover-radar', 'riccardobrasca'] |
nobody |
0-74424 20 hours ago |
0-82997 22 hours ago |
1-40690 1 day |
| 36445 |
ADedecker author:ADedecker |
feat(TestFunction): add `limitCLM`, a variant of `mkCLM` starting from buncled CLMs on D^n_K |
This will make it much more convenient to deduce not only continuity but also linearity from the work done on D^n_K.
This makes it convenient enough to define differentiation (for example) directly as a CLM, hence avoiding the LM/CLM duplication.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
34/8 |
Mathlib/Analysis/Distribution/TestFunction.lean |
1 |
1 |
['github-actions'] |
nobody |
0-71980 19 hours ago |
0-71319 19 hours ago |
0-71434 19 hours |
| 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'] |
nobody |
0-70177 19 hours ago |
0-70253 19 hours ago |
0-69911 19 hours |
| 36279 |
PatrickMassot author:PatrickMassot |
feat: covariant derivatives on vector bundles |
From the path towards the the Levi-Civita connection and Riemannian geometry.
Co-authored-by: Heather Macbeth <25316162+hrmacbeth@users.noreply.github.com>
Co-authored-by: Michael Rothgang
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #36234
- [x] depends on: #36432 |
t-differential-geometry |
484/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/VectorBundle/CovariantDerivative/Basic.lean |
2 |
7 |
['PatrickMassot', 'github-actions', 'grunweg', 'mathlib-dependent-issues', 'sgouezel'] |
nobody |
0-68829 19 hours ago |
0-68789 19 hours ago |
1-1440 1 day |
| 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 |
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 |
5 |
['github-actions', 'marcelolynch', 'mathlib-merge-conflicts'] |
nobody |
0-65977 18 hours ago |
1-52051 1 day ago |
3-3108 3 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 |
0-65282 18 hours ago |
1-52156 1 day ago |
1-53042 1 day |
| 36153 |
joelriou author:joelriou |
feat(Algebra/Homology/SpectralObject): induced morphisms that are epi/mono |
---
- [x] depends on: #36029
- [x] depends on: #36030
- [x] depends on: #36032
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
maintainer-merge
label:t-algebra$ |
270/0 |
Mathlib.lean,Mathlib/Algebra/Homology/SpectralObject/EpiMono.lean |
2 |
18 |
['github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'robin-carlier', 'smorel394'] |
nobody |
0-63643 17 hours ago |
2-66443 2 days ago |
3-29470 3 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 |
0-62315 17 hours ago |
0-62932 17 hours ago |
0-62723 17 hours |
| 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
label:t-algebra$ |
50/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Presheaf/PushforwardZeroMonoidal.lean |
2 |
1 |
['github-actions'] |
nobody |
0-57586 15 hours ago |
0-57647 15 hours ago |
0-57324 15 hours |
| 36448 |
chrisflav author:chrisflav |
chore(CategoryTheory/Sites): generalize some universe parameters |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
12/11 |
Mathlib/CategoryTheory/Sites/CompatiblePlus.lean,Mathlib/CategoryTheory/Sites/CompatibleSheafification.lean,Mathlib/CategoryTheory/Sites/PreservesSheafification.lean |
3 |
3 |
['chrisflav', 'github-actions', 'leanprover-radar'] |
nobody |
0-56773 15 hours ago |
0-68249 18 hours ago |
0-67907 18 hours |
| 36306 |
chrisflav author:chrisflav |
feat(AlgebraicGeometry): `ℓ`-adic cohomology |
---
- [x] depends on: #36240
- [x] depends on: #36325
- [x] depends on: #36339
- [x] depends on: #36359
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry
large-import
|
226/5 |
Mathlib.lean,Mathlib/AlgebraicGeometry/Cover/QuasiCompact.lean,Mathlib/AlgebraicGeometry/Sites/ConstantSheaf.lean,Mathlib/AlgebraicGeometry/Sites/ElladicCohomology.lean,Mathlib/AlgebraicGeometry/Sites/Proetale.lean,Mathlib/AlgebraicGeometry/Sites/QuasiCompact.lean,Mathlib/CategoryTheory/Abelian/GrothendieckAxioms/Sheaf.lean,Mathlib/CategoryTheory/Sites/Sheaf.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean,Mathlib/CategoryTheory/Sites/SubcanonicalOver.lean |
10 |
9 |
['chrisflav', 'erdOne', 'github-actions', 'joelriou', 'mathlib-dependent-issues'] |
nobody |
0-56027 15 hours ago |
0-56710 15 hours ago |
0-79117 21 hours |
| 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.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
45/2 |
Mathlib/Algebra/Group/Equiv/Basic.lean,Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Subgroup/ZPowers/Lemmas.lean |
3 |
1 |
['github-actions'] |
nobody |
0-52699 14 hours ago |
0-55729 15 hours ago |
0-55387 15 hours |
| 35598 |
Paul-Lez author:Paul-Lez |
feat(CategoryTheory/Abelian/Exact): add easy lemmas about short exactness |
Co-authored-by: Whysoserioushah
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
40/0 |
Mathlib.lean,Mathlib/CategoryTheory/Abelian/ShortExact.lean |
2 |
3 |
['Paul-Lez', 'github-actions', 'joelriou'] |
nobody |
0-48707 13 hours ago |
0-48772 13 hours ago |
0-76738 21 hours |
| 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 |
0-48487 13 hours ago |
1-68767 1 day 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 |
0-47288 13 hours ago |
3-81328 3 days ago |
10-47303 10 days |
| 36461 |
chrisflav author:chrisflav |
chore(CategoryTheory/Sites): generalize universes in `Presieve.isSheafFor_iff_yonedaSheafCondition` |
We add a `shrinkYoneda` version and deduce the existing one from that.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
131/41 |
Mathlib/CategoryTheory/ShrinkYoneda.lean,Mathlib/CategoryTheory/Sites/IsSheafFor.lean,Mathlib/CategoryTheory/Sites/Sieves.lean |
3 |
1 |
['github-actions'] |
nobody |
0-47256 13 hours ago |
0-47330 13 hours ago |
0-46988 13 hours |
| 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'] |
nobody |
0-46367 12 hours ago |
0-46397 12 hours ago |
3-76355 3 days |
| 35907 |
JJYYY-JJY author:JJYYY-JJY |
fix(Topology/Defs/Basic): preserve noncanonical topology instances in delaboration |
Preserve noncanonical topology instances in delaboration.
Restore local instances before checking whether topology arguments can be omitted during delaboration, and print `IsOpen[t]`, `IsClosed[t]`, `closure[t]`, and `Continuous[t₁, t₂]` when the topology instances are not canonical in the current local-instance context.
Previously, pretty-printing could silently drop noncanonical topology arguments, so declarations such as `LinearMap.mem_span_iff_continuous_of_finite` were rendered as if they used the default topology.
Closes #33238 |
t-topology
new-contributor
|
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 |
0-46161 12 hours ago |
0-71648 19 hours ago |
9-45896 9 days |
| 35630 |
SnirBroshi author:SnirBroshi |
feat(Data/List/Basic): relate `dropLast` and `concat` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
8/0 |
Mathlib/Data/List/Basic.lean |
1 |
5 |
['SnirBroshi', 'b-mehta', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
0-44011 12 hours ago |
11-62126 11 days ago |
17-9332 17 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 |
0-41972 11 hours ago |
0-42001 11 hours ago |
3-77938 3 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/)
|
|
138/5 |
Mathlib/Geometry/Euclidean/Volume/Measure.lean,Mathlib/MeasureTheory/MeasurableSpace/Embedding.lean,Mathlib/MeasureTheory/Measure/Haar/InnerProductSpace.lean |
3 |
14 |
['copilot-pull-request-reviewer', 'eric-wieser', 'github-actions', 'wwylele'] |
nobody |
0-40280 11 hours ago |
0-45439 12 hours ago |
0-45097 12 hours |
| 30379 |
kckennylau author:kckennylau |
feat(RingTheory): isomorphism of graded rings |
We define `GradedRingEquiv 𝒜 ℬ` to mean isomorphisms of graded rings, with notation `𝒜 ≃+*ᵍ ℬ`. When possible, instead of parametrizing results over `(e : 𝒜 ≃+*ᵍ ℬ)`, you should parametrize over `[GradedEquivLike E 𝒜 ℬ] [RingEquivClass E A B] (e : E)`.
Zulip discussion: [How to define graded ring isomorphisms?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/How.20to.20define.20graded.20ring.20isomorphisms.3F/with/543962394)
---
Split from #26061.
- [x] depends on: #30355
- [x] depends on: #30312
- [x] depends on: #30367
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
447/1 |
Mathlib.lean,Mathlib/RingTheory/GradedAlgebra/RingEquiv.lean,Mathlib/RingTheory/GradedAlgebra/RingHom.lean |
3 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
erdOne assignee:erdOne |
0-40192 11 hours ago |
5-76685 5 days ago |
5-79619 5 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 |
0-40191 11 hours ago |
5-73134 5 days ago |
5-74678 5 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'] |
nobody |
0-40191 11 hours ago |
28-82131 28 days ago |
57-64049 57 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 |
0-40190 11 hours ago |
4-19996 4 days ago |
4-22159 4 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'] |
nobody |
0-40190 11 hours ago |
42-14494 42 days ago |
42-15740 42 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 |
0-40189 11 hours ago |
5-81732 5 days ago |
5-81760 5 days |
| 34709 |
dennj author:dennj |
feat(Analysis/ODE): add discrete Grönwall inequality |
## Summary
Add discrete Grönwall inequality to `Mathlib/Analysis/ODE/DiscreteGronwall.lean`
Provides bounds for recurrence inequalities of the form `u(n+1) ≤ c(n) * u(n) + b(n)`
### Main results
- `discrete_gronwall_prod_general`: Product form working over any linearly ordered commutative ring
- `prod_one_add_Ico_mono`: Auxiliary lemma for product comparisons over subintervals
- `discrete_gronwall`: Classical exponential bound `u(n) ≤ (u(n₀) + ∑ b(k)) * exp(∑ c(i))` (ℝ-specific)
- `discrete_gronwall_Ico`: Uniform bound over a finite interval (ℝ-specific)
## Related work
Complements the continuous Grönwall inequality in `Mathlib.Analysis.ODE.Gronwall`
## References
* Grönwall, T. H. (1919). "Note on the derivatives with respect to a parameter of the solutions of a system of differential equations". *Annals of Mathematics*, 20(4), 292–296.
|
t-analysis
new-contributor
|
174/0 |
Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean |
2 |
1 |
['github-actions'] |
nobody |
0-40189 11 hours ago |
37-29605 37 days ago |
37-29263 37 days |
| 35400 |
vlad902 author:vlad902 |
feat(SimpleGraph): `IsEdgeReachable` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
18/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean |
1 |
7 |
['SnirBroshi', 'github-actions', 'vlad902'] |
YaelDillies assignee:YaelDillies |
0-40188 11 hours ago |
22-85694 22 days ago |
22-85352 22 days |
| 35705 |
jdhart81 author:jdhart81 |
feat(Data/ENNReal, Probability/Independence): division decomposition and self-independence |
Two general-purpose lemmas extracted from a formal verification of "The Intelligence Bound" (Hart 2025).
---
### New lemmas
- `ENNReal.div_eq_div_mul_div`: Division decomposition `a / c = a / b * (b / c)` when `b ≠ 0` and `b ≠ ⊤`. Added to `Mathlib.Data.ENNReal.Inv`.
- `IndepFun.of_self`: If `Y` is independent of itself under a probability measure, then `X` and `Y` are independent. Self-independence implies `Y` is a.e. constant. Added to `Mathlib.Probability.Independence.Basic`.
### Context
These lemmas arose in formalizing information-theoretic results where:
- The ENNReal division identity is needed for decomposing rate expressions (limsup of ratios)
- The self-independence result bridges entropy = 0 and measure-theoretic independence
### References
- Formal verification: https://github.com/jdhart81/intelligence-bound-lean
- Paper: "The Intelligence Bound" (Hart 2025) |
new-contributor
t-data
|
47/0 |
Mathlib/Data/ENNReal/Inv.lean,Mathlib/Probability/Independence/Basic.lean |
2 |
10 |
['SnirBroshi', 'github-actions', 'jdhart81', 'joneugster', 'kbuzzard'] |
joneugster assignee:joneugster |
0-40187 11 hours ago |
12-75068 12 days ago |
14-44728 14 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 |
0-40186 11 hours ago |
15-14327 15 days ago |
15-13986 15 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 |
0-40185 11 hours ago |
12-29134 12 days ago |
12-31758 12 days |
| 35950 |
kim-em author:kim-em |
feat(Tactic): add inferInstanceAs% to fix type leakage |
This PR adds `inferInstanceAs%`, a drop-in replacement for `inferInstanceAs` that prevents "type leakage" in synthesized instances.
When `inferInstanceAs (SomeClass A)` is used to define `SomeClass B` (where `B` is a non-reducible alias for `A`), the synthesized instance may contain lambda binder domains (and other sub-expressions) referring to `A` or deeper unfoldings instead of `B`. This is invisible at `default` transparency but causes `isDefEq` failures at `reducibleAndInstances` transparency — which is the level used by `grind`'s `checkInst`.
`inferInstanceAs%` fixes this by recursively normalizing the constructor tree: it WHNFs to expose the constructor, patches carrier type parameters via `isDefEq` matching against the unfolding chain, recursively processes instance-implicit fields, and replaces lambda binder domains in function fields.
As a demonstration, this fixes the `grind` failure in `FiniteResidueField` that was worked around with `#adaptation_note` and a manual proof on `nightly-testing`.
🤖 Prepared with Claude Code |
|
480/12 |
Mathlib.lean,Mathlib/Algebra/Order/Ring/StandardPart.lean,Mathlib/Tactic.lean,Mathlib/Tactic/InferInstanceAsPercent.lean,MathlibTest/InferInstanceAsPercent.lean |
5 |
43 |
['JovanGerb', 'adomani', 'astrainfinita', 'github-actions', 'kim-em', 'leanprover-radar', 'mathlib-bors', 'riccardobrasca'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-40183 11 hours ago |
5-29730 5 days ago |
7-49531 7 days |
| 36019 |
stepan2698-cpu author:stepan2698-cpu |
chore: update undergrad.yaml |
Adds links to various algebraic subjects which are listed in undergrad.yaml as missing from mathlib.
---
[](https://gitpod.io/from-referrer/)
|
|
14/13 |
docs/undergrad.yaml |
1 |
3 |
['SnirBroshi', 'github-actions', 'stepan2698-cpu'] |
robin-carlier assignee:robin-carlier |
0-40182 11 hours ago |
3-56549 3 days ago |
7-84547 7 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
|
42/32 |
Mathlib/Data/PFunctor/Multivariate/W.lean,Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean |
2 |
2 |
['github-actions'] |
joneugster assignee:joneugster |
0-40181 11 hours ago |
6-85430 6 days ago |
7-372 7 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 |
0-40180 11 hours ago |
5-43390 5 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 |
0-40178 11 hours ago |
5-69885 5 days ago |
0-11 11 seconds |
| 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 |
169/0 |
Mathlib.lean,Mathlib/Analysis/Complex/CanonicalDecomposition.lean |
2 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
0-40178 11 hours ago |
unknown |
0-0 0 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 |
0-40177 11 hours ago |
unknown |
0-0 0 seconds |
| 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 |
11 |
['JovanGerb', 'Vierkantor', 'github-actions'] |
adamtopaz assignee:adamtopaz |
0-40176 11 hours ago |
4-68279 4 days ago |
4-67937 4 days |
| 36305 |
JovanGerb author:JovanGerb |
feat(translate): support `to_additive (attr := to_fun)` |
This PR adds extensible support for letting `to_additive`/`to_dual` interact with other attributes that create declarations, such as `to_fun` and `simps`. Previously, this behaviour was hard-coded just for `simps`.
This PR removes `simps` from the imports of `Translate.Core`. For this, `simps` is removed from the existing attribute linter.
---
[](https://gitpod.io/from-referrer/)
|
|
98/128 |
Mathlib.lean,Mathlib/Algebra/FiniteSupport/Basic.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Notation/Defs.lean,Mathlib/Lean/Meta/Simp.lean,Mathlib/MeasureTheory/Group/Arithmetic.lean,Mathlib/Order/Defs/LinearOrder.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Filter/Basic.lean,Mathlib/Order/Notation.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/ToFun.lean,Mathlib/Tactic/Translate/Attributes.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean |
16 |
3 |
['JovanGerb', 'fpvandoorn', 'github-actions'] |
j-loreaux assignee:j-loreaux |
0-40175 11 hours ago |
3-85411 3 days ago |
4-35347 4 days |
| 36310 |
smmercuri author:smmercuri |
feat: `lt` lemmas for `OrderMonoidIso` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
8/0 |
Mathlib/Algebra/Order/Hom/Monoid.lean |
1 |
1 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
0-40174 11 hours ago |
4-14892 4 days ago |
4-14550 4 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/)
|
|
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 |
1 |
['github-actions'] |
dupuisf assignee:dupuisf |
0-40173 11 hours ago |
4-3191 4 days ago |
4-2977 4 days |
| 36328 |
Multramate author:Multramate |
feat(AlgebraicGeometry/EllipticCurve): improve API for maps and base changes |
Dot notation for concrete Weierstrass curves (`Affine`/`Jacobian`/`Projective`) does not quite work on `W : WeierstrassCurve F` even though they're all abbreviations of `WeierstrassCurve`, which is annoying for functions that return `WeierstrassCurve`s (currently just `map`, `baseChange`, and `variableChange`). For instance, for an `A : Affine F`, the expression `A.baseChange K` is a `WeierstrassCurve K` rather than an `Affine K`, so `(A.baseChange K).polynomial` will not work since `polynomial` is a function of `Affine K` rather than `WeierstrassCurve K`; instead we have to do `(A.baseChange K).toAffine.polynomial`, which is wordy. This PR introduces abbreviations `Affine/Jacobian/Projective.map/baseChange` to get around this, and introduces scoped notations `W/K`, where the slashes are given by `\textf`. The notation `W⟮K⟯` for `(W.baseChange K)Point` seems to be useless so far and can now be replaced by `(W/K).Point`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
284/288 |
Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/DivisionPolynomial/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Basic.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Formula.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean,Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Weierstrass.lean |
13 |
1 |
['github-actions'] |
alexjbest assignee:alexjbest |
0-40171 11 hours ago |
3-52664 3 days ago |
3-52954 3 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 |
0-40170 11 hours ago |
3-57739 3 days ago |
3-57499 3 days |
| 36201 |
themathqueen author:themathqueen |
feat(Analysis/CStarAlgebra): set of star projections equals the extreme points of the nonnegative closed unit ball |
Co-authored-by: Jon Bannon <59937998+JonBannon@users.noreply.github.com>
Co-authored-by: Jireh Loreaux
---
- [x] depends on: #35997
[](https://gitpod.io/from-referrer/)
|
t-analysis |
61/0 |
Mathlib.lean,Mathlib/Analysis/CStarAlgebra/Extreme.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-35357 9 hours ago |
0-35242 9 hours ago |
0-40715 11 hours |
| 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 |
362/0 |
Mathlib.lean,Mathlib/Combinatorics/Graph/Subgraph.lean |
2 |
77 |
['Jun2M', 'YaelDillies', 'github-actions', 'lauramonk', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
YaelDillies assignee:YaelDillies |
0-34904 9 hours ago |
4-68071 4 days ago |
163-29378 163 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 |
12 |
['github-actions', 'j-loreaux', 'khwilson'] |
j-loreaux assignee:j-loreaux |
0-33963 9 hours ago |
0-54582 15 hours ago |
13-51366 13 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
|
152/0 |
Mathlib.lean,Mathlib/NumberTheory/LSeries/SchwarzReflection.lean |
2 |
2 |
['github-actions'] |
alexjbest assignee:alexjbest |
0-33518 9 hours ago |
0-33582 9 hours ago |
0-34103 9 hours |
| 36437 |
Thmoas-Guan author:Thmoas-Guan |
feat(Homology): HasInjectiveDimensionLT with enough projectives |
For category woth enough projectives, `HasInjectiveDimensionLT X n` only need `Subsingleton (Ext Y X n)`
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
23/4 |
Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean |
2 |
2 |
['github-actions', 'joelriou'] |
nobody |
0-32637 9 hours ago |
0-32637 8 hours ago |
0-32652 9 hours |
| 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'] |
nobody |
0-31866 8 hours ago |
0-41771 11 hours ago |
0-41529 11 hours |
| 36436 |
Thmoas-Guan author:Thmoas-Guan |
feat(Homology): HasProjectiveDimensionLT with enough injectives |
For category woth enough projectives, `HasProjectiveDimensionLT X n` only need `Subsingleton (Ext X Y n)`
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
23/4 |
Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean |
1 |
2 |
['github-actions', 'joelriou'] |
nobody |
0-31057 8 hours ago |
0-62557 17 hours ago |
0-25501 7 hours |
| 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
|
61/0 |
Mathlib/Geometry/Euclidean/Volume/Measure.lean |
1 |
2 |
['copilot-pull-request-reviewer', 'github-actions'] |
nobody |
0-30877 8 hours ago |
0-31796 8 hours ago |
0-31454 8 hours |
| 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'] |
nobody |
0-28209 7 hours ago |
0-28284 7 hours ago |
0-27942 7 hours |
| 36469 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Hamiltonian): if mapping a Hamiltonian walk results in a path, the mapping function is injective |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
29/4 |
Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean |
2 |
1 |
['github-actions'] |
nobody |
0-23750 6 hours ago |
0-23916 6 hours ago |
0-23574 6 hours |
| 36388 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/AdjMatrix): submatrices and homomorphisms |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
72/3 |
Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean |
1 |
9 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
0-23299 6 hours ago |
0-38265 10 hours ago |
1-63014 1 day |
| 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 |
0-22561 6 hours ago |
18-37060 18 days ago |
77-17634 77 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 |
0-22199 6 hours ago |
0-22226 6 hours ago |
46-46310 46 days |
| 35647 |
BryceT233 author:BryceT233 |
feat(RingTheory/Ideal/Quotient): add a canonical inclusion map |
This is the second PR split from the larger PR https://github.com/leanprover-community/mathlib4/pull/34936 to make the review process easier.
It introduces `Submodule.powSmulQuotInclusion`, which is the canonical inclusion from `I ^ a • N ⧸ I ^ b • (I ^ a • N)` to `M ⧸ I ^ c • N` where `c = b + a`, and provides auxiliary lemmas for it
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
37/0 |
Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean |
1 |
9 |
['BryceT233', 'erdOne', 'github-actions', 'wwylele'] |
chrisflav assignee:chrisflav |
0-19045 5 hours ago |
10-33627 10 days ago |
16-48072 16 days |
| 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'] |
nobody |
0-18682 5 hours ago |
0-18705 5 hours ago |
2-75651 2 days |
| 36357 |
yuanyi-350 author:yuanyi-350 |
feat(Analysis/Deriv): add some lemmas for `iteratedDeriv` |
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
83/0 |
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'] |
nobody |
0-17197 4 hours ago |
0-21171 5 hours ago |
1-79502 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, to
`Mathlib.Combinatorics.SimpleGraph.Metric`.
## Summary
- Define `SimpleGraph.ball c r := {v | G.edist c v < r}` with `r : ℕ∞`
- Add basic lemmas: `mem_ball`, `ball_zero`, `ball_one`, `ball_top`,
`ball_subset_ball`, `mem_ball_self`, `mem_ball_comm`
- Update module docstring and tags
- No new imports
## 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 `ℝ`.
Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/SimpleGraph.20metric.20balls/with/577846803).
## AI assistance disclosure
Claude (Opus 4.6) was used to help draft and iterate on the implementation. I
reviewed the resulting code line by line, verified the proofs compile, and I
understand and vouch for the final contents of this PR. |
t-combinatorics
new-contributor
|
76/3 |
Mathlib/Combinatorics/SimpleGraph/Metric.lean |
1 |
18 |
['Fieldnote-Echo', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'lauramonk'] |
nobody |
0-16658 4 hours ago |
0-74206 20 hours ago |
0-73864 20 hours |
| 36411 |
justus-springer author:justus-springer |
feat(CategoryTheory/Limits/Preserves/Shapes/Kernels): Preserve monos of preserve kernels |
If a functor to a normal epi category preserves kernels and zero morphisms, then it preserves monomorphisms.
---
- [x] depends on: #36410
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
19/0 |
Mathlib/CategoryTheory/Limits/Shapes/NormalMono/Equalizers.lean |
1 |
7 |
['b-mehta', 'github-actions', 'joelriou', 'justus-springer', 'leanprover-radar', 'mathlib-dependent-issues'] |
nobody |
0-14181 3 hours ago |
1-7020 1 day ago |
1-7719 1 day |
| 36143 |
EtienneC30 author:EtienneC30 |
feat: multivariate Gaussian distributions |
Define the standard Gaussian distribution over a Euclidean space and multivariate Gaussian distributions over `EuclideanSpace ℝ ι`.
Co-authored-by: @RemyDegenne
---
- [x] depends on: #36179
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
brownian
|
293/0 |
Mathlib.lean,Mathlib/Probability/Distributions/Gaussian/Multivariate.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-10255 2 hours ago |
5-83281 5 days ago |
5-83154 5 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/SheafCondition/UniqueGluing.lean |
5 |
48 |
['Brian-Nugent', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smorel394'] |
dagurtomas assignee:dagurtomas |
0-8881 2 hours ago |
2-1723 2 days ago |
4-52575 4 days |
| 33780 |
ooovi author:ooovi |
feat(Geometry/Convex/Cone): lineality space of pointed cones |
Define the lineality space `PointedCone.lineal` as the submodule `C ⊓ -C`. Prove that it is the largest submodule of the cone, which is sometimes used as an alternative definition.
Co-authored-by: Martin Winter
---
dependency of #33664
- [x] depends on #33761
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry |
42/1 |
Mathlib/Geometry/Convex/Cone/Pointed.lean |
1 |
19 |
['artie2000', 'eric-wieser', 'github-actions', 'martinwintermath', 'mathlib4-merge-conflict-bot', 'ooovi', 'vihdzp'] |
nobody |
0-8691 2 hours ago |
15-13174 15 days ago |
27-33585 27 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$ |
71/0 |
Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Finite/GaloisField.lean |
2 |
5 |
['alainchmt', 'github-actions', 'tb65536'] |
nobody |
0-6829 1 hour ago |
1-61437 1 day ago |
1-61095 1 day |
| 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 |
265/4 |
Mathlib.lean,Mathlib/RingTheory/RingHom/Smooth.lean,Mathlib/RingTheory/Smooth/Quotient.lean,Mathlib/RingTheory/TensorProduct/Quotient.lean |
4 |
12 |
['Thmoas-Guan', 'github-actions', 'jcommelin'] |
jcommelin assignee:jcommelin |
0-6304 1 hour ago |
7-77323 7 days ago |
15-71793 15 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`).
Specifically, it introduces:
- `List.Primrec.drop`: `List.drop` is primitive recursive (using `nat_rec'`).
- `List.Primrec.takeWhile`: `List.takeWhile` is primitive recursive (using `list_rec`).
- `List.Primrec.dropWhile`: `List.dropWhile` is primitive recursive (using `list_rec`).
- `List.Primrec.length_takeWhile`: The length of `takeWhile` 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
|
39/1 |
Mathlib/Computability/Primrec/List.lean |
1 |
2 |
['github-actions'] |
nobody |
0-6222 1 hour ago |
0-6297 1 hour ago |
0-5955 1 hour |
| 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
|
95/5 |
Mathlib/NumberTheory/RamificationInertia/HilbertTheory.lean |
1 |
9 |
['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'tb65536', 'xroblot'] |
nobody |
0-5757 1 hour ago |
1-944 1 day ago |
1-5931 1 day |
| 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
|
111/63 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean |
2 |
5 |
['CoolRmal', 'github-actions', 'sharky564'] |
nobody |
0-4700 1 hour ago |
0-68761 19 hours ago |
0-68448 19 hours |
| 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 |
0-3696 1 hour ago |
4-65361 4 days ago |
4-65019 4 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'] |
nobody |
0-3590 59 minutes ago |
21-53709 21 days ago |
36-27982 36 days |
| 36475 |
marcelolynch author:marcelolynch |
ci: Revert splice_bot_wf_run.yaml to using app keys |
The change for this file was unsound, as you can't share secrets across jobs. We can come up with another strategy for this file (e.g., a reusable action), but let's revert to restore functionality |
CI |
8/43 |
.github/workflows/splice_bot_wf_run.yaml |
1 |
1 |
['github-actions'] |
nobody |
0-2541 42 minutes ago |
0-2619 37 minutes ago |
0-2277 37 minutes |
| 36236 |
kim-em author:kim-em |
chore: add module keyword to Archive and Counterexamples files |
This PR converts 105 Archive and Counterexamples files to module format, adding `module`, `public import`, and `@[expose] public section`.
Eight files are left unconverted for now:
- Seven files containing `private` declarations that need further work (`Imo1962Q1`, `MiuLanguage/Basic`, `MiuLanguage/DecisionSuf`, `AscendingDescendingSequences`, `BallotProblem`, `AharoniKorman`, `TopologistsSineCurve`)
- `Counterexamples/InvertibleModuleNotIdeal` which needs an import path update
For `Archive/Examples/PropEncodable`, the `private` declarations were removed as part of this conversion.
🤖 Prepared with Claude Code |
IMO |
693/308 |
Archive/Arithcc.lean,Archive/Examples/Eisenstein.lean,Archive/Examples/Kuratowski.lean,Archive/Examples/PropEncodable.lean,Archive/Hairer.lean,Archive/Imo/Imo1959Q1.lean,Archive/Imo/Imo1959Q2.lean,Archive/Imo/Imo1960Q1.lean,Archive/Imo/Imo1960Q2.lean,Archive/Imo/Imo1961Q3.lean,Archive/Imo/Imo1962Q4.lean,Archive/Imo/Imo1963Q5.lean,Archive/Imo/Imo1964Q1.lean,Archive/Imo/Imo1969Q1.lean,Archive/Imo/Imo1972Q5.lean,Archive/Imo/Imo1975Q1.lean,Archive/Imo/Imo1977Q6.lean,Archive/Imo/Imo1981Q3.lean,Archive/Imo/Imo1982Q1.lean,Archive/Imo/Imo1985Q2.lean,Archive/Imo/Imo1986Q5.lean,Archive/Imo/Imo1987Q1.lean,Archive/Imo/Imo1988Q6.lean,Archive/Imo/Imo1994Q1.lean,Archive/Imo/Imo1997Q3.lean,Archive/Imo/Imo1998Q2.lean,Archive/Imo/Imo2001Q2.lean,Archive/Imo/Imo2001Q3.lean,Archive/Imo/Imo2001Q4.lean,Archive/Imo/Imo2001Q5.lean,Archive/Imo/Imo2001Q6.lean,Archive/Imo/Imo2002Q3.lean,Archive/Imo/Imo2005Q3.lean,Archive/Imo/Imo2005Q4.lean,Archive/Imo/Imo2006Q3.lean,Archive/Imo/Imo2006Q5.lean,Archive/Imo/Imo2008Q2.lean,Archive/Imo/Imo2008Q3.lean,Archive/Imo/Imo2008Q4.lean,Archive/Imo/Imo2010Q5.lean,Archive/Imo/Imo2011Q3.lean,Archive/Imo/Imo2011Q5.lean,Archive/Imo/Imo2013Q1.lean,Archive/Imo/Imo2013Q5.lean,Archive/Imo/Imo2015Q6.lean,Archive/Imo/Imo2019Q1.lean,Archive/Imo/Imo2019Q2.lean,Archive/Imo/Imo2019Q4.lean,Archive/Imo/Imo2020Q2.lean,Archive/Imo/Imo2021Q1.lean,Archive/Imo/Imo2024Q2.lean,Archive/Imo/Imo2024Q3.lean,Archive/Imo/Imo2024Q6.lean,Archive/Imo/Imo2025Q3.lean,Archive/Kuratowski.lean,Archive/MinimalSheffer.lean,Archive/OxfordInvariants/Summer2021/Week3P1.lean,Archive/Sensitivity.lean,Archive/Wiedijk100Theorems/AbelRuffini.lean,Archive/Wiedijk100Theorems/AreaOfACircle.lean,Archive/Wiedijk100Theorems/BirthdayProblem.lean,Archive/Wiedijk100Theorems/BuffonsNeedle.lean,Archive/Wiedijk100Theorems/CubingACube.lean,Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/HeronsFormula.lean,Archive/Wiedijk100Theorems/InverseTriangleSum.lean,Archive/Wiedijk100Theorems/Konigsberg.lean,Archive/Wiedijk100Theorems/PerfectNumbers.lean,Archive/Wiedijk100Theorems/SolutionOfCubicQuartic.lean,Archive/Wiedijk100Theorems/SumOfPrimeReciprocalsDiverges.lean,Archive/ZagierTwoSquares.lean,Counterexamples/CanonicallyOrderedCommSemiringTwoMul.lean,Counterexamples/CharPZeroNeCharZero.lean,Counterexamples/CliffordAlgebraNotInjective.lean,Counterexamples/Cyclotomic105.lean,Counterexamples/DimensionPolynomial.lean,Counterexamples/DirectSumIsInternal.lean,Counterexamples/DiscreteTopologyNonDiscreteUniformity.lean,Counterexamples/EulerSumOfPowers.lean,Counterexamples/Girard.lean,Counterexamples/HeawoodUnitDistance.lean,Counterexamples/HomogeneousPrimeNotPrime.lean,Counterexamples/IrrationalPowerOfIrrational.lean,Counterexamples/MapFloor.lean,Counterexamples/MonicNonRegular.lean,Counterexamples/Motzkin.lean,Counterexamples/NowhereDifferentiable.lean,Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean,Counterexamples/PeanoCurve.lean,Counterexamples/Phillips.lean,Counterexamples/PolynomialIsDomain.lean,Counterexamples/Pseudoelement.lean,Counterexamples/QuadraticForm.lean,Counterexamples/SeminormLatticeNotDistrib.lean,Counterexamples/SeparableNotSecondCountable.lean,Counterexamples/SorgenfreyLine.lean,Counterexamples/ZeroDivisorsInAddMonoidAlgebras.lean |
97 |
2 |
['JovanGerb', 'github-actions'] |
dwrensha assignee:dwrensha |
0-2138 35 minutes ago |
5-41614 5 days ago |
5-43452 5 days |
| 26160 |
oliver-butterley author:oliver-butterley |
feat(MeasureTheory.VectorMeasure): add several lemmas which characterize variation |
Add the following lemmas concerning variation of a VectorMeasure:
* `norm_measure_le_variation`: `‖μ E‖ₑ ≤ variation μ E`.
* `variation_neg`: `(-μ).variation = μ.variation`.
* `variation_zero`: `(0 : VectorMeasure X V).variation = 0`.
* `absolutelyContinuous`
Co-authored-by: @yoh-tanimoto
- [x] depends on: #26156
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
340/20 |
Mathlib.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/PreVariation.lean,Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/Order/Partition/Finpartition.lean |
8 |
28 |
['EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'sgouezel', 'yoh-tanimoto'] |
nobody |
0-1676 27 minutes ago |
0-1628 21 minutes ago |
36-40539 36 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'] |
nobody |
0-1418 23 minutes ago |
3-56742 3 days ago |
3-56400 3 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 |
|
8/0 |
Mathlib/Init.lean |
1 |
2 |
['JovanGerb', 'github-actions'] |
nobody |
0-1339 22 minutes ago |
1-23171 1 day ago |
1-26034 1 day |
| 36091 |
JJYYY-JJY author:JJYYY-JJY |
feat(Analysis.LocallyConvex.Separation): add Eidelheit's separation theorem |
Adds `geometric_hahn_banach_of_interior_nonempty`, formalizing Eidelheit's separation theorem for disjoint convex sets where one has a nonempty interior.
This resolves the longstanding TODO in `Mathlib.Analysis.LocallyConvex.Separation`. The patch also removes the TODO for the topological property `Convex ℝ s → interior (closure s) ⊆ s`, as this is already handled by `Convex.closure_interior_eq_closure_of_nonempty_interior` (imported from `Mathlib.Analysis.Convex.Topology`).
Key implementation details:
* Uses `geometric_hahn_banach_open` to separate `interior A` and `B`.
* Requires `B.Nonempty` to guarantee the separating continuous linear functional is nontrivial (`f ≠ 0`), avoiding the triviality trap where `A` covers the entire space.
* Uses `closure_minimal` to extend the weak inequality from `interior A` to the entirety of `A`.
---
[](https://gitpod.io/from-referrer/)
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Interior.20of.20closure.20for.20convex.20sets/with/577060103 |
t-analysis
new-contributor
|
34/5 |
Mathlib/Analysis/LocallyConvex/Separation.lean |
1 |
12 |
['CoolRmal', 'copilot-pull-request-reviewer', 'faenuccio', 'github-actions', 'wwylele'] |
nobody |
0-787 13 minutes ago |
3-26495 3 days ago |
7-40645 7 days |
| Number |
Author |
Title |
Description |
Labels |
+/- |
Modified files (first 100) |
📝 |
💬 |
All users who commented or reviewed |
Assignee(s) |
Updated |
Last status change |
total time in review |
| 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 |
40-40079 1 month ago |
55-29355 55 days ago |
59-80470 59 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 |
40-40076 1 month ago |
48-46451 48 days ago |
48-60212 48 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 |
39-40086 1 month ago |
52-57775 52 days ago |
52-60644 52 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 |
38-40037 1 month ago |
67-3258 67 days ago |
67-2916 67 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 |
35-49846 1 month ago |
35-49846 35 days ago |
87-85707 87 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 |
34-68952 1 month ago |
34-69147 34 days ago |
43-70488 43 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 |
32-69863 1 month ago |
49-28480 49 days ago |
49-36131 49 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 |
30-40156 1 month ago |
35-22492 35 days ago |
35-25114 35 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 |
29-15615 1 month ago |
29-15615 29 days ago |
97-33725 97 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 |
29-9651 1 month ago |
61-19371 61 days ago |
88-57693 88 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 |
28-40002 1 month ago |
37-8617 37 days ago |
40-59789 40 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 |
28-39998 1 month ago |
36-80809 36 days ago |
36-82372 36 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 |
27-76418 27 days ago |
27-78192 27 days ago |
27-79265 27 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 |
25-80436 25 days ago |
25-80502 25 days ago |
39-1622 39 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 |
21-46180 21 days ago |
34-55656 34 days ago |
34-55314 34 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 |
21-41649 21 days ago |
22-40947 22 days ago |
126-75 126 days |
| 34966 |
Deep0Thinking author:Deep0Thinking |
feat(MeasureTheory): add `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio` and `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic` |
This PR proves:
- `continuousWithinAt_Ici/Iic_primitive_Ioi/Iio`
- `continuousOn_Ici/Iic_primitive_Ioi/Iio/Ici/Iic`
- `integral_Ioi_sub_Ioi`, `integral_Ioi_sub_Ioi'`, `integral_Iio_sub_Iio`, `integral_Iio_sub_Iio'`
- `Ioi_diff_Ioc`
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
125/1 |
Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean,Mathlib/Order/Interval/Set/LinearOrder.lean |
3 |
14 |
['CoolRmal', 'Deep0Thinking', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
17-68627 17 days ago |
18-34149 18 days ago |
30-12406 30 days |
| 35011 |
whocares-abt author:whocares-abt |
feat(Combinatorics/SimpleGraph/Copy): add degree of copy less than original |
add two theorems relating degree of a graph and it's copy |
t-combinatorics
new-contributor
|
17/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
12 |
['SnirBroshi', 'github-actions', 'themathqueen', 'vihdzp'] |
nobody |
16-14587 16 days ago |
30-14826 30 days ago |
30-14484 30 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 |
15-40174 15 days ago |
31-39108 31 days ago |
39-46712 39 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 |
14-40154 14 days ago |
25-68317 25 days ago |
35-30227 35 days |
| 33662 |
Pjotr5 author:Pjotr5 |
feat(Algebra/Order/BigOperators/Expect): add lemmas and strict variants |
### Summary
- Combine `le_expect_nonempty_of_subadditive` and `le_expect_of_subadditive` into a single lemma `le_expect_of_subadditive`.
The extra assumptions `(hs : s.Nonempty)` and `(h_zero : m 0 = 0)` are unnecessary (since `m 0 = 0` follows from `h_div`).
This requires a small downstream update to `Mathlib/Analysis/RCLike/Basic.lean` (`norm_expect_le`).
- Add strict-inequality variants:
`expect_lt_expect`, `expect_lt`, `lt_expect`.
- Add existence lemmas:
`exists_le_of_expect_le_expect`, `exists_le_of_le_expect`, `exists_le_of_expect_le`,
and `exists_lt_of_expect_lt_expect`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-algebra
label:t-algebra$ |
46/16 |
Mathlib/Algebra/Order/BigOperators/Expect.lean,Mathlib/Analysis/RCLike/Basic.lean |
2 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
13-78033 13 days ago |
64-10428 64 days ago |
64-10086 64 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 |
13-40176 13 days ago |
16-49850 16 days ago |
22-82796 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 |
11-81325 11 days ago |
11-81543 11 days ago |
68-7380 68 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 |
11-71474 11 days ago |
16-59219 16 days ago |
16-59552 16 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 |
11-52308 11 days ago |
11-61380 11 days ago |
11-61495 11 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 |
9-79467 9 days ago |
9-79490 9 days ago |
30-54305 30 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 |
9-72625 9 days ago |
9-72651 9 days ago |
24-16084 24 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 |
9-71071 9 days ago |
33-74888 33 days ago |
33-74546 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 |
9-8574 9 days ago |
13-6576 13 days ago |
13-6270 13 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 |
8-46652 8 days ago |
8-46711 8 days ago |
24-15637 24 days |
| 27229 |
WilliamCoram author:WilliamCoram |
feat(GroupTheory/DoubleCoset): multiple lemmas |
From FLT
---
[](https://gitpod.io/from-referrer/)
|
FLT
t-group-theory
new-contributor
|
85/2 |
Mathlib/GroupTheory/DoubleCoset.lean |
1 |
41 |
['CBirkbeck', 'Ruben-VandeVelde', 'WilliamCoram', 'github-actions', 'kim-em', 'mariainesdff', 'mathlib4-merge-conflict-bot', 'tb65536'] |
mariainesdff assignee:mariainesdff |
7-85262 7 days ago |
22-9267 22 days ago |
105-20507 105 days |
| 34138 |
pfaffelh author:pfaffelh |
feat(MeasureTheory): Introduce `MassFunction α` giving rise to a `Measure α ⊤` |
Define `MassFunction α := α → ℝ≥0∞`
Define `toMeasure (w : MassFunction α) : @Measure α ⊤` as a sum of diracs
Show properties of the resulting objects
This PR intends to start a more userfriendly interaction with probability mass functions (`PMF`). There are two main differences between `MassFunction` and `PMF`:
* `PMF` hast the additional property `HasSum 1`, making the resulting measure a probability measure. (For `MassFunction`, I intend to use the typeclass `IsProbabilityMeasure`in a later PR instead.)
* The `toMeasure` function of `MassFunction` directly defines the measure as a sum of diracs, which immediately makes computations possible.
Discussion thread on [zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/PMF.20Refactor.3A.20FunLike.20vs.20Definition.20Change)
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
224/0 |
Mathlib.lean,Mathlib/Algebra/GroupWithZero/Indicator.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/MeasureTheory/Measure/MassFunction.lean |
4 |
10 |
['DavidLedvinka', 'github-actions', 'metakunt', 'pfaffelh'] |
kex-y and ocfnash assignee:ocfnash assignee:kex-y |
7-946 7 days ago |
8-51369 8 days ago |
50-56773 50 days |
| 34621 |
homeowmorphism author:homeowmorphism |
feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ` |
feat(GroupTheory/FreeGroup/Basic): deprecate `FreeGroup Empty ≃ Unit` using `Equiv.ofUnique`, add `Mul` suggestion using `MulEquiv.ofUnique` and add `FreeGroup α ≃* Multiplicative ℤ`.
This is a dependency of a larger PR to formalize finitely presented groups https://github.com/leanprover-community/mathlib4/pull/34236.
---
Originally, the PR showed that `FreeGroup Empty ≃* Unit` and `FreeGroup α ≃* Multiplicative ℤ`. During the review process, I was asked to generalized `Unit` to any `Unique` type and `Empty` to `IsEmpty`. Through working on this, it has been realized that the pre-existing `FreeGroup Empty ≃ Unit` should be deprecated using `Equiv.ofUnique` and a multiplicative version `FreeGroup Empty ≃* Unit` can be obtained similarly using `MulEquiv.ofUnique` and there was no need to explicitly upgrade the equivalence. The title has been changed to reflect this.
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
|
45/6 |
Mathlib/GroupTheory/FreeGroup/Basic.lean |
1 |
40 |
['b-mehta', 'copilot-pull-request-reviewer', 'github-actions', 'homeowmorphism', 'kbuzzard', 'riccardobrasca', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
6-74181 6 days ago |
22-63853 22 days ago |
29-80092 29 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 |
25 |
['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] |
awainverse assignee:awainverse |
6-72447 6 days ago |
35-48673 35 days ago |
88-21060 88 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 |
6-40173 6 days ago |
10-21549 10 days ago |
15-33681 15 days |
| 34937 |
tannerduve author:tannerduve |
feat(Computability): semilattice instance on Turing degrees |
This PR equips `TuringDegree` with a `SemilatticeSup` structure by introducing the Turing join, proving usual least-upper-bound properties, and lifting these to degrees (quotients). In support of this, it extends the existing `RecursiveIn` API with some lemmas used in the degree theory.
The main contribution is the `SemilatticeSup` instance on `TuringDegree`. We define the Turing join as follows
```
turingJoin (f g) : ℕ → ℕ -- notation: f ⊕ g
```
and prove it is a least upper bound:
* `left_le_join`, `right_le_join`
* `join_le`
* monotonicity and congruence lemmas (`join_mono`, `join_congr`)
We lift this to degrees in `TuringDegree.sup`, `TuringDegree.le_sup_left`, `TuringDegree.le_sup_right`, and `TuringDegree.sup_le`
```
instance : SemilatticeSup TuringDegree
```
**New additions to `RecursiveIn.lean`:**
- `liftPrim`, `liftPrimrec`, `RecursiveIn'`, `ComputableIn`, `ComputableIn₂`: Encodes partial/total functions between `Primcodable` types as `ℕ →. ℕ`, analogous to `Partrec`/`Computable`.
- `of_eq`, `of_eq_tot`, `of_primrec`, `some`, `none`, `mono`, `subst`: Standard closure properties for `RecursiveIn`.
- `cond_const`, `cond_core_rfind`, `cond`, `ComputableIn.cond`: Shows `RecursiveIn` is closed under conditionals when the guard is absolutely computable
- `Nat.Partrec.recursiveIn`, `Computable.computableIn`: Every partrec/computable function is recursive in any oracle set.
Small addition to `Partrec`
we add to `Mathlib.Computability.Partrec` a small helper def (`Partrec.kronecker` and related `rfind` lemmas) representing the function that returns 1 if its two (unpaired) arguments are equal, and 0 otherwise, which is used in the proof of `cond`
## TODO
Some current `RecursiveIn` proofs such as `cond_core_rfind` still work directly with the inductive constructors and are thus very long. A follow up could add a combinator-style closure library by essentially relativizing all the results and lemmas in `Partrec`, and proofs could be golfed heavily as they are in `Partrec`
## Note: AI Usage
[Aleph prover](https://logicalintelligence.com/aleph-coding-ai/) was allowed to prove an earlier version of `cond_core_rfind`, which included stating and proving the lemma `cond_const` but the proofs have since been iterated on manually
Cursor was allowed to run git commands and edit docstrings/headers, and was used in setting up the module structure of the files |
t-computability
new-contributor
large-import
|
644/63 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
14 |
['eric-wieser', 'github-actions', 'plp127', 'tannerduve', 'vihdzp'] |
nobody |
6-35096 6 days ago |
21-59263 21 days ago |
31-28581 31 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 |
5-86244 5 days ago |
6-74111 6 days ago |
11-12992 11 days |
| 35651 |
sun123zxy author:sun123zxy |
feat(Mathlib/RingTheory/Ideal/Cotangent): `Submodule.map` definition of cotangent spaces |
This PR adds an alternative definition of the cotangent space as an image under the R-module quotient map.
---
Split from PR #33247
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
47/20 |
Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/Ideal/Quotient/Operations.lean |
2 |
10 |
['erdOne', 'github-actions', 'mathlib-merge-conflicts', 'sun123zxy'] |
chrisflav assignee:chrisflav |
5-81180 5 days ago |
10-62973 10 days ago |
6-9373 6 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 |
5-61996 5 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 |
5-45053 5 days ago |
5-45115 5 days ago |
5-45464 5 days |
| 34578 |
dennj author:dennj |
feat: define Boolean circuits over abstract gate families |
This PR introduces a foundation for Boolean circuits parameterized by abstract gate families.
## Main definitions
- `GateEval`: typeclass for gate families with Boolean semantics
- `GateHom`: arity-preserving maps between gate families
- `Circuit`: inductive type representing circuit syntax trees
- `AC0Gate`, `ACC0Gate`, `TC0Gate`: standard complexity-theoretic gate bases
## Design notes
The key design choice is to keep **syntax** (gate labels `G : Nat → Type`) separate from
**semantics** (`GateEval.eval`), allowing users to define custom gate families (e.g., MAJ, XOR,
arbitrary threshold gates) without modifying core definitions.
### Tree vs DAG representation
We evaluated two approaches for circuit representation:
1. **Tree-based** (this PR): Circuits as inductive syntax trees
2. **DAG-based**: Circuits as lists of gates with index-based references
We chose tree-based circuits because:
- **Compositionality**: Easy to build circuits via `gate g (fun i => subcircuit i)`
- **Type safety**: Arity-indexed gates (`G : Nat → Type`) catch errors at compile time
- **Manipulation**: Natural support for `mapGate`, `subst`, `mapInputs`
- **Mathlib philosophy**: Aligns with structural/compositional reasoning patterns
For use cases requiring explicit sharing (complexity analysis, evaluation efficiency),
a separate `DAG` type can be added later with proven equivalence via `Circuit.toDAG`.
The current representation serves as a minimal foundation for size/depth measures,
circuit families, and complexity classes (AC0, ACC0, TC0).
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-computability
|
919/0 |
Mathlib.lean,Mathlib/Computability/Circuit/Basic.lean,Mathlib/Computability/Formula/Basic.lean,Mathlib/Computability/Gate.lean |
4 |
18 |
['LLaurance', 'YuvalFilmus', 'dennj', 'github-actions'] |
Komyyy assignee:Komyyy |
5-40132 5 days ago |
22-33620 22 days ago |
29-72505 29 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'] |
nobody |
5-21657 5 days ago |
5-21721 5 days ago |
5-21476 5 days |
| 34209 |
mike1729 author:mike1729 |
feat(Analysis/Normed): Schauder basis definition and characterization via projections |
A Schauder basis is a fundamental concept in functional analysis, providing a way to represent every element of a Banach space as a unique convergent series. This PR adds the core structures, some theorems necessary to work with these bases and a characterization of a Schauder basis using projections.
This PR is based on Chapter 1. from Albiac, F., & Kalton, N. J. (2016). Topics in Banach Space Theory.
This is a first PR in a series of three aiming for Eberlein-Smulyan Theorem. The next one will contain theory of basic sequences and the final one will contain a proof of Eberlein-Smulyan Theorem using basic sequences.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
539/0 |
Mathlib.lean,Mathlib/Analysis/Normed/Module/Bases.lean,docs/references.bib |
3 |
200 |
['Ruben-VandeVelde', 'faenuccio', 'github-actions', 'goliath-klein', 'j-loreaux', 'mike1729', 'sgouezel', 'themathqueen'] |
sgouezel assignee:sgouezel |
4-56017 4 days ago |
11-72622 11 days ago |
36-28812 36 days |
| 36062 |
huaizhangchu author:huaizhangchu |
feat(Probability/PMF): add PMF.integrable_of_summable_norm |
Adds `PMF.integrable_of_summable_norm`: a function `f` is integrable with respect to `p.toMeasure` when the weighted norms `‖f a‖ * (p a).toReal` form a summable family.
This is useful for computing expectations of discrete distributions (Poisson, geometric, etc.) without manually expanding the `HasFiniteIntegral` definition each time. |
t-measure-probability
new-contributor
|
14/0 |
Mathlib/Probability/ProbabilityMassFunction/Integrals.lean |
1 |
2 |
['github-actions'] |
sgouezel assignee:sgouezel |
4-40184 4 days ago |
7-76320 7 days ago |
7-75978 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 |
2 |
['github-actions'] |
dagurtomas assignee:dagurtomas |
4-40181 4 days ago |
7-47432 7 days ago |
7-47196 7 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 |
3-58592 3 days ago |
3-58568 3 days ago |
24-79200 24 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
|
175/0 |
Mathlib.lean,Mathlib/Combinatorics/Quiver/Schreier.lean |
2 |
2 |
['github-actions'] |
nobody |
3-55172 3 days ago |
3-77209 3 days ago |
3-76867 3 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
|
99/2 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
3 |
25 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster'] |
adamtopaz assignee:adamtopaz |
3-47043 3 days ago |
3-47106 3 days ago |
28-62969 28 days |
| 36336 |
NoahW314 author:NoahW314 |
feat: add indiscrete topology lemmas |
Prove that the indiscrete topology is compact and that every function to the indiscrete topology is continuous.
--- |
t-topology
new-contributor
|
19/0 |
Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Order.lean |
2 |
7 |
['NoahW314', 'github-actions', 'plp127'] |
nobody |
3-29342 3 days ago |
3-48570 3 days ago |
3-54117 3 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'] |
nobody |
3-5465 3 days ago |
6-9817 6 days ago |
6-9475 6 days |
| 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
|
357/2 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean |
1 |
4 |
['SproutSeeds', 'github-actions'] |
nobody |
2-66040 2 days ago |
2-66100 2 days ago |
2-66469 2 days |
| 35652 |
dennj author:dennj |
feat(LinearAlgebra/Matrix): add `Matrix.mul_eq_smul_one_symm` |
## Summary
- Add `Matrix.mul_eq_smul_one_symm`: if `M * N = c • 1` and `det M ≠ 0`, then `N * M = c • 1`
- A scalar generalisation of `mul_eq_one_symm` (the `c = 1` case) to arbitrary scalars, requiring `IsDomain` and `det M ≠ 0`
- The proof uses the adjugate identity `adjugate M * M = det M • 1` to derive `det M • (N * M) = det M • (c • 1)`, then cancels `det M` via `mul_left_cancel₀`
Theorem imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory |
t-algebra
new-contributor
label:t-algebra$ |
28/0 |
Mathlib/LinearAlgebra/Matrix/NonsingularInverse.lean |
1 |
2 |
['eric-wieser', 'github-actions'] |
dagurtomas assignee:dagurtomas |
2-40183 2 days ago |
16-62690 16 days ago |
16-62348 16 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 |
2 |
['github-actions'] |
joelriou assignee:joelriou |
2-40177 2 days ago |
6-25741 6 days ago |
6-25513 6 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$ |
71/0 |
Mathlib/Algebra/MvPolynomial/Degrees.lean |
1 |
2 |
['github-actions'] |
nobody |
2-34025 2 days ago |
2-34025 2 days ago |
2-33683 2 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
|
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 |
2-28298 2 days ago |
13-66044 13 days ago |
16-13588 16 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 |
2-20945 2 days ago |
7-37267 7 days ago |
9-1276 9 days |
| 36379 |
JadAbouHawili author:JadAbouHawili |
doc: Rename Finset API instances in Documentation for clarity |
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
3/8 |
Mathlib/Data/Finset/Lattice/Basic.lean |
1 |
4 |
['JadAbouHawili', 'github-actions'] |
nobody |
2-11865 2 days ago |
2-52310 2 days ago |
2-53619 2 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 |
2-37 2 days ago |
15-31539 15 days ago |
18-18557 18 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'] |
nobody |
1-86049 1 day ago |
6-33969 6 days ago |
15-16518 15 days |
| 27953 |
CoolRmal author:CoolRmal |
feat(ProbabilityTheory): Conditional Jensen's Inequality |
This PR adds several variants of the conditional Jensen's inequality. I made some changes to Mathlib/Analysis/Convex/Approximation.lean because I need the sequence of affine functions to be bouneded above at each point in the proof of `conditional_jensen_hereditarilyLindelofSpace`.
---
- [x] depends on: #31411
- [x] depends on: #31399
- [x] depends on: #31180
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
212/18 |
Mathlib.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/MeasureTheory/Function/ConditionalExpectation/CondJensen.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/MeasureTheory/Measure/Trim.lean |
5 |
11 |
['CoolRmal', 'EtienneC30', 'RemyDegenne', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
sgouezel assignee:sgouezel |
1-78001 1 day ago |
1-79718 1 day ago |
35-35299 35 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 |
1-56845 1 day ago |
55-13003 55 days ago |
55-36009 55 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 |
2 |
['github-actions'] |
nobody |
1-41420 1 day ago |
1-41494 1 day ago |
1-41152 1 day |
| 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 |
25/29 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues'] |
robin-carlier assignee:robin-carlier |
1-40193 1 day ago |
5-5067 5 days ago |
5-6260 5 days |
| 36119 |
Ruizsolveall author:Ruizsolveall |
feat(Topology/Covering): fundamental group of the circle is ℤ |
## Summary
- Proves that the fundamental group of the circle `π₁(S¹, 0)` is isomorphic to `ℤ`, via covering space theory.
- Constructs the winding number map `nLoop : ℤ → Path 0 0` on `AddCircle 1`, and proves it is surjective (`surj_nLoop`), injective (`inj_nLoop`), and additive (`nLoop_add`).
- Assembles these into the group isomorphism `fundamentalGroupCircle : Multiplicative ℤ ≃* FundamentalGroup (AddCircle 1) 0`.
## Approach
Uses the covering map `ℝ → AddCircle 1` and unique path lifting to establish the bijection between homotopy classes of loops and integers (winding numbers). Homotopy invariance of lifted endpoints gives injectivity; surjectivity follows from lifting arbitrary loops. Additivity uses path concatenation of lifts in the simply connected total space `ℝ`.
## Test plan
- [x] `lake env lean Mathlib/Topology/Covering/FundamentalGroupCircle.lean` builds with 0 errors, 0 warnings |
t-topology
new-contributor
|
236/0 |
Mathlib.lean,Mathlib/Topology/Covering/FundamentalGroupCircle.lean |
2 |
22 |
['Ruizsolveall', 'SnirBroshi', 'b-mehta', 'github-actions', 'vihdzp'] |
dagurtomas assignee:dagurtomas |
1-40189 1 day ago |
7-3893 7 days ago |
7-3551 7 days |
| 33355 |
0xTerencePrime author:0xTerencePrime |
feat(Combinatorics/SimpleGraph/Connectivity): define vertex connectivity |
This PR introduces the foundations of vertex connectivity for simple graphs, providing a counterpart to the edge connectivity theory in #32870.
### Main definitions
- `SimpleGraph.IsVertexReachable`: vertices remain reachable after removing strictly fewer than `k` other vertices.
- `SimpleGraph.IsVertexConnected`: a graph is `k`-vertex-connected if its order is strictly greater than `k` and any two distinct vertices are `k`-vertex-reachable.
Includes basic characterizations for $k=0$ and $k=1$, along with monotonicity lemmas (`anti` and `mono`). |
new-contributor
t-combinatorics
|
199/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/VertexConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/IsolateVerts.lean |
3 |
138 |
['0xTerencePrime', 'SnirBroshi', 'SproutSeeds', 'YaelDillies', 'github-actions', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
1-36037 1 day ago |
13-33507 13 days ago |
34-65819 34 days |
| 36347 |
FrankieeW author:FrankieeW |
feat(NumberTheory/QuadraticField): define quadratic number fields as QuadraticAlgebra ℚ d 0 |
Define `Qsqrtd d` as `QuadraticAlgebra ℚ d 0`, representing the quadratic number field `ℚ(√d)`. Prove trace and norm results, show `Qsqrtd d` is a number field and a quadratic extension when `d` is not a perfect square, and prove that `ℚ(√0)` and `ℚ(√1)` are not fields. Include `IsQuadraticField` as a predicate for quadratic extensions of `ℚ`, and bridge lemmas connecting squarefree integer parameters to the non-square condition.
This PR is part of a series upstreaming the [QuadraticNumberFields](https://github.com/FrankieeW/QuadraticNumberFields) project.
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/quadratic.20number.20fields)
---
### PRs
- #36347 (this PR)
- #36387
---
|
t-number-theory
new-contributor
large-import
|
191/0 |
Mathlib.lean,Mathlib/Algebra/QuadraticAlgebra/Defs.lean,Mathlib/Algebra/Squarefree/Basic.lean,Mathlib/NumberTheory/QuadraticField/Basic.lean |
4 |
23 |
['FrankieeW', 'eric-wieser', 'github-actions', 'riccardobrasca', 'tb65536', 'wwylele'] |
nobody |
1-35179 1 day ago |
1-53574 1 day ago |
1-86262 1 day |
| 34435 |
huaizhangchu author:huaizhangchu |
feat(Probability): convolution of Poisson distributions |
This PR proves that the convolution of two Poisson distributions is again a Poisson distribution:
`Poisson(r₁) ∗ Poisson(r₂) = Poisson(r₁ + r₂)`
## Main results
- `poissonMeasureReal_charFun`: characteristic function of Poisson distribution is `exp(r(exp(it) - 1))`
- `poissonMeasureReal_conv_poissonMeasureReal`: convolution of Poisson distributions on ℝ
- `poissonMeasure_conv_poissonMeasure`: convolution of Poisson distributions on ℕ
- `poissonMeasure_add_poissonMeasure_of_indepFun`: sum of independent Poisson random variables
## Proof strategy
Uses characteristic functions: `φ(t) = exp(r(eⁱᵗ - 1))`, then pulls back from ℝ to ℕ.
---
- [x] depends on: #34521 |
t-measure-probability
large-import
new-contributor
|
107/1 |
Mathlib/Probability/Distributions/Poisson/Basic.lean |
1 |
31 |
['CoolRmal', 'DavidLedvinka', 'EtienneC30', 'github-actions', 'huaizhangchu', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
EtienneC30 assignee:EtienneC30 |
1-15289 1 day ago |
4-7251 4 days ago |
29-33945 29 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 |
1-7300 1 day ago |
1-64043 1 day ago |
28-60011 28 days |
| 35481 |
FrankieeW author:FrankieeW |
chore(NumberTheory/Zsqrtd): inline duplicated order lemmas into instances |
This PR follows reviewer feedback by removing duplicated order/additive wrapper theorems in `Zsqrtd` and inlining the proofs into the corresponding typeclass instances.
Changes include:
- remove redundant wrappers such as `Zsqrtd.le_total`, `Zsqrtd.add_le_add_left`, `Zsqrtd.le_of_add_le_add_left`, `Zsqrtd.add_lt_add_left`, and `Zsqrtd.le_antisymm`
- keep the canonical API through `LinearOrder` / ordered additive structure fields
- update downstream use in `PellMatiyasevic` to the canonical theorem (`_root_.le_antisymm`)
This reduces namespace-level duplicate APIs and keeps proofs aligned with standard typeclass lemmas.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-number-theory
|
26/10 |
Mathlib/NumberTheory/PellMatiyasevic.lean,Mathlib/NumberTheory/Zsqrtd/Basic.lean |
2 |
9 |
['FrankieeW', 'MichaelStollBayreuth', 'github-actions', 'vihdzp'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
0-84436 23 hours ago |
19-35142 19 days ago |
20-77041 20 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 |
0-47288 13 hours ago |
3-81328 3 days ago |
10-47303 10 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 |
0-46161 12 hours ago |
0-71648 19 hours ago |
9-45896 9 days |
| 34709 |
dennj author:dennj |
feat(Analysis/ODE): add discrete Grönwall inequality |
## Summary
Add discrete Grönwall inequality to `Mathlib/Analysis/ODE/DiscreteGronwall.lean`
Provides bounds for recurrence inequalities of the form `u(n+1) ≤ c(n) * u(n) + b(n)`
### Main results
- `discrete_gronwall_prod_general`: Product form working over any linearly ordered commutative ring
- `prod_one_add_Ico_mono`: Auxiliary lemma for product comparisons over subintervals
- `discrete_gronwall`: Classical exponential bound `u(n) ≤ (u(n₀) + ∑ b(k)) * exp(∑ c(i))` (ℝ-specific)
- `discrete_gronwall_Ico`: Uniform bound over a finite interval (ℝ-specific)
## Related work
Complements the continuous Grönwall inequality in `Mathlib.Analysis.ODE.Gronwall`
## References
* Grönwall, T. H. (1919). "Note on the derivatives with respect to a parameter of the solutions of a system of differential equations". *Annals of Mathematics*, 20(4), 292–296.
|
t-analysis
new-contributor
|
174/0 |
Mathlib.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean |
2 |
1 |
['github-actions'] |
nobody |
0-40189 11 hours ago |
37-29605 37 days ago |
37-29263 37 days |
| 35705 |
jdhart81 author:jdhart81 |
feat(Data/ENNReal, Probability/Independence): division decomposition and self-independence |
Two general-purpose lemmas extracted from a formal verification of "The Intelligence Bound" (Hart 2025).
---
### New lemmas
- `ENNReal.div_eq_div_mul_div`: Division decomposition `a / c = a / b * (b / c)` when `b ≠ 0` and `b ≠ ⊤`. Added to `Mathlib.Data.ENNReal.Inv`.
- `IndepFun.of_self`: If `Y` is independent of itself under a probability measure, then `X` and `Y` are independent. Self-independence implies `Y` is a.e. constant. Added to `Mathlib.Probability.Independence.Basic`.
### Context
These lemmas arose in formalizing information-theoretic results where:
- The ENNReal division identity is needed for decomposing rate expressions (limsup of ratios)
- The self-independence result bridges entropy = 0 and measure-theoretic independence
### References
- Formal verification: https://github.com/jdhart81/intelligence-bound-lean
- Paper: "The Intelligence Bound" (Hart 2025) |
new-contributor
t-data
|
47/0 |
Mathlib/Data/ENNReal/Inv.lean,Mathlib/Probability/Independence/Basic.lean |
2 |
10 |
['SnirBroshi', 'github-actions', 'jdhart81', 'joneugster', 'kbuzzard'] |
joneugster assignee:joneugster |
0-40187 11 hours ago |
12-75068 12 days ago |
14-44728 14 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 |
0-40185 11 hours ago |
12-29134 12 days ago |
12-31758 12 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
|
42/32 |
Mathlib/Data/PFunctor/Multivariate/W.lean,Mathlib/Data/QPF/Multivariate/Constructions/Fix.lean |
2 |
2 |
['github-actions'] |
joneugster assignee:joneugster |
0-40181 11 hours ago |
6-85430 6 days ago |
7-372 7 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 |
0-40170 11 hours ago |
3-57739 3 days ago |
3-57499 3 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 |
12 |
['github-actions', 'j-loreaux', 'khwilson'] |
j-loreaux assignee:j-loreaux |
0-33963 9 hours ago |
0-54582 15 hours ago |
13-51366 13 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
|
152/0 |
Mathlib.lean,Mathlib/NumberTheory/LSeries/SchwarzReflection.lean |
2 |
2 |
['github-actions'] |
alexjbest assignee:alexjbest |
0-33518 9 hours ago |
0-33582 9 hours ago |
0-34103 9 hours |
| 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'] |
nobody |
0-31866 8 hours ago |
0-41771 11 hours ago |
0-41529 11 hours |
| 35647 |
BryceT233 author:BryceT233 |
feat(RingTheory/Ideal/Quotient): add a canonical inclusion map |
This is the second PR split from the larger PR https://github.com/leanprover-community/mathlib4/pull/34936 to make the review process easier.
It introduces `Submodule.powSmulQuotInclusion`, which is the canonical inclusion from `I ^ a • N ⧸ I ^ b • (I ^ a • N)` to `M ⧸ I ^ c • N` where `c = b + a`, and provides auxiliary lemmas for it
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
37/0 |
Mathlib/RingTheory/Ideal/Quotient/PowTransition.lean |
1 |
9 |
['BryceT233', 'erdOne', 'github-actions', 'wwylele'] |
chrisflav assignee:chrisflav |
0-19045 5 hours ago |
10-33627 10 days ago |
16-48072 16 days |
| 36443 |
Fieldnote-Echo author:Fieldnote-Echo |
feat(Combinatorics/SimpleGraph): add SimpleGraph.ball (open metric ball) |
Add `SimpleGraph.ball`, the open ball in the graph extended metric, to
`Mathlib.Combinatorics.SimpleGraph.Metric`.
## Summary
- Define `SimpleGraph.ball c r := {v | G.edist c v < r}` with `r : ℕ∞`
- Add basic lemmas: `mem_ball`, `ball_zero`, `ball_one`, `ball_top`,
`ball_subset_ball`, `mem_ball_self`, `mem_ball_comm`
- Update module docstring and tags
- No new imports
## 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 `ℝ`.
Discussed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/SimpleGraph.20metric.20balls/with/577846803).
## AI assistance disclosure
Claude (Opus 4.6) was used to help draft and iterate on the implementation. I
reviewed the resulting code line by line, verified the proofs compile, and I
understand and vouch for the final contents of this PR. |
t-combinatorics
new-contributor
|
76/3 |
Mathlib/Combinatorics/SimpleGraph/Metric.lean |
1 |
18 |
['Fieldnote-Echo', 'Rida-Hamadani', 'SnirBroshi', 'github-actions', 'lauramonk'] |
nobody |
0-16658 4 hours ago |
0-74206 20 hours ago |
0-73864 20 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/SheafCondition/UniqueGluing.lean |
5 |
48 |
['Brian-Nugent', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smorel394'] |
dagurtomas assignee:dagurtomas |
0-8881 2 hours ago |
2-1723 2 days ago |
4-52575 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$ |
71/0 |
Mathlib/FieldTheory/Finite/Extension.lean,Mathlib/FieldTheory/Finite/GaloisField.lean |
2 |
5 |
['alainchmt', 'github-actions', 'tb65536'] |
nobody |
0-6829 1 hour ago |
1-61437 1 day ago |
1-61095 1 day |
| 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`).
Specifically, it introduces:
- `List.Primrec.drop`: `List.drop` is primitive recursive (using `nat_rec'`).
- `List.Primrec.takeWhile`: `List.takeWhile` is primitive recursive (using `list_rec`).
- `List.Primrec.dropWhile`: `List.dropWhile` is primitive recursive (using `list_rec`).
- `List.Primrec.length_takeWhile`: The length of `takeWhile` 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
|
39/1 |
Mathlib/Computability/Primrec/List.lean |
1 |
2 |
['github-actions'] |
nobody |
0-6222 1 hour ago |
0-6297 1 hour ago |
0-5955 1 hour |
| 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
|
111/63 |
Mathlib/Analysis/Normed/Module/FiniteDimension.lean,Mathlib/Topology/Algebra/Module/FiniteDimension.lean |
2 |
5 |
['CoolRmal', 'github-actions', 'sharky564'] |
nobody |
0-4700 1 hour ago |
0-68761 19 hours ago |
0-68448 19 hours |
| 26160 |
oliver-butterley author:oliver-butterley |
feat(MeasureTheory.VectorMeasure): add several lemmas which characterize variation |
Add the following lemmas concerning variation of a VectorMeasure:
* `norm_measure_le_variation`: `‖μ E‖ₑ ≤ variation μ E`.
* `variation_neg`: `(-μ).variation = μ.variation`.
* `variation_zero`: `(0 : VectorMeasure X V).variation = 0`.
* `absolutelyContinuous`
Co-authored-by: @yoh-tanimoto
- [x] depends on: #26156
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
340/20 |
Mathlib.lean,Mathlib/Data/Finset/Basic.lean,Mathlib/MeasureTheory/Measure/MeasureSpaceDef.lean,Mathlib/MeasureTheory/Measure/PreVariation.lean,Mathlib/MeasureTheory/OuterMeasure/Induced.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Defs.lean,Mathlib/Order/Partition/Finpartition.lean |
8 |
28 |
['EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'sgouezel', 'yoh-tanimoto'] |
nobody |
0-1676 27 minutes ago |
0-1628 21 minutes ago |
36-40539 36 days |
| 36091 |
JJYYY-JJY author:JJYYY-JJY |
feat(Analysis.LocallyConvex.Separation): add Eidelheit's separation theorem |
Adds `geometric_hahn_banach_of_interior_nonempty`, formalizing Eidelheit's separation theorem for disjoint convex sets where one has a nonempty interior.
This resolves the longstanding TODO in `Mathlib.Analysis.LocallyConvex.Separation`. The patch also removes the TODO for the topological property `Convex ℝ s → interior (closure s) ⊆ s`, as this is already handled by `Convex.closure_interior_eq_closure_of_nonempty_interior` (imported from `Mathlib.Analysis.Convex.Topology`).
Key implementation details:
* Uses `geometric_hahn_banach_open` to separate `interior A` and `B`.
* Requires `B.Nonempty` to guarantee the separating continuous linear functional is nontrivial (`f ≠ 0`), avoiding the triviality trap where `A` covers the entire space.
* Uses `closure_minimal` to extend the weak inequality from `interior A` to the entirety of `A`.
---
[](https://gitpod.io/from-referrer/)
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Interior.20of.20closure.20for.20convex.20sets/with/577060103 |
t-analysis
new-contributor
|
34/5 |
Mathlib/Analysis/LocallyConvex/Separation.lean |
1 |
12 |
['CoolRmal', 'copilot-pull-request-reviewer', 'faenuccio', 'github-actions', 'wwylele'] |
nobody |
0-787 13 minutes ago |
3-26495 3 days ago |
7-40645 7 days |