Welcome to the mathlib review page. Everybody's help with reviewing is appreciated. Reviewing contributions is important, and everybody is welcome to review pull requests! If you're not sure how, the pull request review guide is there to help you.
This page is the main reviewer-facing queue: if a PR is ready for review, it belongs here. The triage page contains additional triage-oriented views, but it is not the primary review queue.
This page contains tables of
| Number |
Author |
Title |
Description |
Labels |
+/- |
Modified files (first 100) |
📝 |
💬 |
All users who commented or reviewed |
Assignee(s) |
Updated |
Last status change |
total time in review |
| 37179 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph): add lemmas about left and right elements of `SimpleGraph.sum` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
18/0 |
Mathlib/Combinatorics/SimpleGraph/Sum.lean |
1 |
3 |
['WilliamCoram', 'github-actions'] |
nobody |
29-35820 29 days ago |
36-2351 36 days ago |
36-2007 36 days |
| 37443 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walks/Operations): permutations of support |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
15/0 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
28-83578 28 days ago |
28-83603 28 days ago |
30-6751 30 days |
| 32583 |
MJ141592 author:MJ141592 |
refactor(SimpleGraph): change bridges not to require the edge to be present |
Remove the requirement for edges to exist in definition of isBridge, and then change the related lemmas to adjust for this, by renaming, fixing the statements and fixing the proofs, including in Acyclic.
Closes #31690.
---
- [x] depends on: #36802
- [x] depends on: #36804 |
t-combinatorics
new-contributor
|
84/84 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/EdgeConnectivity.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean |
4 |
20 |
['MJ141592', 'SnirBroshi', 'YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
28-44988 28 days ago |
28-45024 28 days ago |
28-73201 28 days |
| 36832 |
KryptosAI author:KryptosAI |
chore(Data/Finset/Card): rename `pred_card_le_card_erase` to `sub_one_card_le_card_erase` |
## Summary
The name `pred_card_le_card_erase` suggests `Nat.pred` but the statement uses `- 1` (i.e., `Nat.sub 1`). Rename to `sub_one_card_le_card_erase` to match the actual statement.
A deprecated alias is added for backwards compatibility.
### Files changed
- `Mathlib/Data/Finset/Card.lean` — definition renamed + deprecated alias
- `Mathlib/Data/Finset/Powerset.lean` — reference updated
- `Mathlib/Combinatorics/Additive/SubsetSum.lean` — reference updated
- `Mathlib/Algebra/Polynomial/EraseLead.lean` — reference updated
Addresses the `Finset.pred_card_le_card_erase` item in #21584.
## AI disclosure
I used Claude Code to explore the codebase (finding all references to rename) and to draft the PR description. I reviewed and understand all changes — these are straightforward renames with a deprecated alias. |
new-contributor |
22/15 |
Mathlib/Algebra/Polynomial/EraseLead.lean,Mathlib/Combinatorics/Additive/SubsetSum.lean,Mathlib/Combinatorics/SetFamily/AhlswedeZhang.lean,Mathlib/Combinatorics/SetFamily/Shadow.lean,Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Powerset.lean,Mathlib/Data/Set/Card.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/RingTheory/Ideal/Operations.lean |
9 |
5 |
['KryptosAI', 'Multramate', 'github-actions', 'ooovi'] |
nobody |
27-69981 27 days ago |
27-70039 27 days ago |
41-80023 41 days |
| 37248 |
harahu author:harahu |
doc(Tactic): avoid lazy continuation lines |
We resolve the ambiguity inherent in lazy (un-indented) list item continuation lines by either indenting them or separating them by inserting a newline in the cases where the item continuation was a mistake.
---
[](https://gitpod.io/from-referrer/)
|
documentation |
131/116 |
Mathlib/Tactic/Algebraize.lean,Mathlib/Tactic/Basic.lean,Mathlib/Tactic/CategoryTheory/Coherence/PureCoherence.lean,Mathlib/Tactic/ComputeDegree.lean,Mathlib/Tactic/DepRewrite.lean,Mathlib/Tactic/Finiteness.lean,Mathlib/Tactic/FunProp.lean,Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Tactic/Linarith/Oracle/FourierMotzkin.lean,Mathlib/Tactic/Linter/FlexibleLinter.lean,Mathlib/Tactic/MinImports.lean,Mathlib/Tactic/MoveAdd.lean,Mathlib/Tactic/Order.lean,Mathlib/Tactic/SimpIntro.lean,Mathlib/Tactic/Simps/Basic.lean,Mathlib/Tactic/Widget/InteractiveUnfold.lean |
17 |
1 |
['Multramate', 'github-actions'] |
nobody |
27-28185 27 days ago |
34-78118 34 days ago |
34-83471 34 days |
| 37495 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Sum): add homomorphism, embedding and isomorphism of sums |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
58/2 |
Mathlib/Combinatorics/SimpleGraph/Sum.lean |
1 |
15 |
['IvanRenison', 'YaelDillies', 'github-actions', 'mkaratarakis'] |
nobody |
27-27035 27 days ago |
27-28186 27 days ago |
28-59855 28 days |
| 37399 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Paths): `IsPath` and `Nil` lemmas |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
10/3 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean |
2 |
4 |
['Rida-Hamadani', 'SnirBroshi', 'github-actions'] |
nobody |
27-8612 27 days ago |
30-66123 30 days ago |
30-65923 30 days |
| 37624 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Maps): add theorems about composition |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
25/4 |
Mathlib/Combinatorics/SimpleGraph/Maps.lean |
1 |
1 |
['github-actions'] |
nobody |
26-79882 26 days ago |
26-79956 26 days ago |
26-79612 26 days |
| 37676 |
IvanRenison author:IvanRenison |
feat(Data/Finset/Preimage): add lemmas about `Equiv.symm` |
---
`Finset` version of lemmas already existing for `Set`.
[](https://gitpod.io/from-referrer/)
|
t-data |
15/0 |
Mathlib/Data/Finset/Preimage.lean |
1 |
1 |
['github-actions'] |
nobody |
24-86395 24 days ago |
25-76 24 days ago |
24-86132 24 days |
| 37702 |
grunweg author:grunweg |
chore: golf using {norm,push}_cast |
Not exhaustive
---
[](https://gitpod.io/from-referrer/)
|
|
23/22 |
Archive/Imo/Imo2025Q3.lean,Mathlib/Algebra/Ring/GeomSum.lean,Mathlib/Analysis/Asymptotics/LinearGrowth.lean,Mathlib/Analysis/Fourier/FourierTransformDeriv.lean,Mathlib/Analysis/PSeries.lean,Mathlib/Data/Int/Log.lean,Mathlib/GroupTheory/CommutingProbability.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean,Mathlib/NumberTheory/SumFourSquares.lean,Mathlib/RingTheory/DividedPowers/RatAlgebra.lean,Mathlib/RingTheory/LittleWedderburn.lean,Mathlib/RingTheory/WittVector/WittPolynomial.lean |
12 |
5 |
['github-actions', 'grunweg', 'j-loreaux'] |
nobody |
24-685 24 days ago |
24-685 24 days ago |
24-12307 24 days |
| 37690 |
yuanyi-350 author:yuanyi-350 |
feat(Combinatorics/Enumerative/Bell): sum over partition shapes |
## Summary
- add multiplicative lemmas relating `Multiset.bell` when inserting a part
- prove `Nat.bell` as a sum of `Multiset.bell` over partition shapes
- Kill TODO in `Mathlib/Combinatorics/Enumerative/Bell.lean`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
153/16 |
Mathlib/Combinatorics/Enumerative/Bell.lean |
1 |
1 |
['github-actions'] |
nobody |
23-48147 23 days ago |
24-46772 24 days ago |
24-46428 24 days |
| 37762 |
EtienneC30 author:EtienneC30 |
feat: scalar multiplication of an `NNReal` against `1 : ENNReal` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
4/3 |
Mathlib/Data/ENNReal/Action.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Probability.lean,Mathlib/Probability/Distributions/SetBernoulli.lean |
3 |
1 |
['github-actions'] |
nobody |
23-18137 23 days ago |
23-18200 23 days ago |
23-19099 23 days |
| 37642 |
SnirBroshi author:SnirBroshi |
chore(Combinatorics/SimpleGraph): tidy various files |
---
Concept inspired by @Ruben-VandeVelde :)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
89/72 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Basic.lean,Mathlib/Combinatorics/SimpleGraph/IncMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Trails.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Subwalks.lean |
8 |
2 |
['SnirBroshi', 'github-actions'] |
nobody |
23-12106 23 days ago |
23-12166 23 days ago |
25-28459 25 days |
| 37784 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Basic): `ConditionallyCompleteLinearOrderBot (WithBot α)` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
29/0 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
22-69447 22 days ago |
22-69522 22 days ago |
22-69178 22 days |
| 37185 |
gasparattila author:gasparattila |
chore(Data/Finset/Lattice/Fold): rename `comp_sup_*` to `apply_sup_*` |
These lemmas are of the form `g (s.sup f) = s.sup (g ∘ f)` with no composition on the LHS.
---
- [x] depends on: #37047
[](https://gitpod.io/from-referrer/)
|
|
44/26 |
Mathlib/Algebra/Order/Ring/Finset.lean,Mathlib/Analysis/CStarAlgebra/Basic.lean,Mathlib/Analysis/Normed/Group/Ultra.lean,Mathlib/Data/ENNReal/Lemmas.lean,Mathlib/Data/Finset/Lattice/Fold.lean,Mathlib/Data/Finset/Max.lean,Mathlib/Data/NNReal/Basic.lean,Mathlib/Order/PartialSups.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/Defs.lean,Mathlib/Topology/ContinuousMap/CompactlySupported.lean,Mathlib/Topology/ContinuousMap/Ordered.lean |
11 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
21-83423 21 days ago |
22-57 21 days ago |
22-39 22 days |
| 36472 |
EtienneC30 author:EtienneC30 |
feat: finite dimensional distribution of Brownian motion |
Define `gaussianProjectiveFamily : (I : Finset ℝ≥0) → Measure (I → ℝ)`. Each `gaussianProjectiveFamily I` is the centered Gaussian measure over `I → ℝ` with covariance matrix given by `brownianCovMatrix I s t := min s t`.
Prove that these measures satisfy `IsProjectiveMeasureFamily`, which means that they can be extended into a measure over `ℝ≥0 → ℝ` thanks to the Kolmogorov's extension theorem (not in Mathlib yet). The obtained measure is a measure over the set of real processes indexed by `ℝ≥0` and is the law of the Brownian motion.
---
- [x] depends on: #36143
[](https://gitpod.io/from-referrer/)
|
brownian
t-measure-probability
|
226/1 |
Mathlib.lean,Mathlib/MeasureTheory/Function/L2Space.lean,Mathlib/Probability/BrownianMotion/GaussianProjectiveFamily.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/Probability/Moments/Basic.lean |
5 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
RemyDegenne assignee:RemyDegenne |
21-73848 21 days ago |
45-38252 45 days ago |
45-37909 45 days |
| 37098 |
vihdzp author:vihdzp |
feat: singular cardinals |
We define a singular cardinal as an infinite cardinal which is larger than its cofinality. That's to say, every cardinal is exactly one of the following three: finite, regular, or singular.
Re-opened from #17005, with permission.
---
Co-authored-by: Nir Paz
- [x] depends on: #36933
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
113/28 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Arithmetic.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean |
4 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'plp127'] |
alreadydone assignee:alreadydone |
21-73845 21 days ago |
25-27457 25 days ago |
36-77872 36 days |
| 37623 |
IvanRenison author:IvanRenison |
feat(Order/RelIso): add theorems about `RelHom.comp` and `RelEmbedding.trans` |
Co-authored-by: SnirBroshi <26556598+SnirBroshi@users.noreply.github.com>
---
Missing of this theorems noticed by @SnirBroshi in #37598
[](https://gitpod.io/from-referrer/)
|
t-order |
18/0 |
Mathlib/Order/RelIso/Basic.lean |
1 |
6 |
['IvanRenison', 'SnirBroshi', 'eric-wieser', 'github-actions'] |
bryangingechen assignee:bryangingechen |
21-73839 21 days ago |
25-16828 25 days ago |
26-40019 26 days |
| 37697 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Clique): add theorems about cliques and induced graphs |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
22/0 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean |
1 |
9 |
['Rida-Hamadani', 'SnirBroshi', 'github-actions'] |
nobody |
21-274 21 days ago |
24-24719 24 days ago |
24-24375 24 days |
| 37388 |
xgenereux author:xgenereux |
feat(FunctionField): constant extensions are finite |
Let `F` be a function field over `Fq`. If `E` is an algebraic extension of `Fq` which is contained in `F` then it is finite over `Fq`.
To implement this, we model the following tower of extensions:
```
E(X) - F
/ \ |
E[X] Fq(X)
/ \ /
E Fq[X]
\ /
Fq
```
by assuming algebra hypotheses on the level of `Fq[X]` and `E[X]` and use
```
attribute [local instance] Polynomial.algebra
```
together with the scoped `RatFunc` instances `RatFunc.liftAlgebra` and `RatFunc.isScalarTower_liftAlgebra` to obtain the appropriate algebra instances from `RatFunc Fq/E`.
One annoying thing is that using these instances creates a diamond with `RatFunc.instSMulOfFractionRingPolynomial`, I am working on trying to find a fix but don't have anything at the moment. I am open to suggestions!
Here are some details on this diamond:
Since both `RatFunc E` and `FractionRing E[X]` (which are not defeq) have an `IsFractionRing E[X]` instance we get two maps coming from `RatFunc.liftAlgebra`:
1. (RatFunc.liftAlgebra Fq (FractionRing E[X]))
2. (RatFunc.liftAlgebra Fq (RatFunc E))
Where the first one is transported back to `RatFunc E` via `RatFunc.instSMulOfFractionRingPolynomial`. Analyzing
```
@RatFunc.instSMulOfFractionRingPolynomial _ _ (RatFunc Fq) (RatFunc.liftAlgebra Fq (FractionRing E[X])).toSMul
= (RatFunc.liftAlgebra Fq (RatFunc E)).toSMul
```
we see that this boils down to
`{ toFractionRing := (IsLocalization.lift ⋯) x } = (IsFractionRing.lift ⋯) x` not being defeq.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
64/0 |
Mathlib/NumberTheory/FunctionField.lean,docs/references.bib |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
tb65536 assignee:tb65536 |
20-80230 20 days ago |
20-80288 20 days ago |
30-86291 30 days |
| 37890 |
tb65536 author:tb65536 |
feat(RingTheory/Spectrum/Prime/FreeLocus): add variant of `Module.rankAtStalk_eq` for better rewriting |
This PR adds a variant of `Module.rankAtStalk_eq` for better rewriting. I also generalized `Ideal.Fiber` to `Module`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
8/2 |
Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean,Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean |
2 |
1 |
['github-actions'] |
nobody |
20-25837 20 days ago |
20-25837 20 days ago |
20-25494 20 days |
| 37900 |
tb65536 author:tb65536 |
feat(RingTheory/Localization/FractionRing): add `IsFractionRing.ofAlgEquiv` and `IsFractionRing.ofAlgHom` |
This PR gives constructors for `IsFractionRing` from an `AlgEquiv` and from an `AlgHom`. The first is just a specialization of `IsLocalization.isLocalization_of_algEquiv`, but the second has a bit more content.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
9/0 |
Mathlib/RingTheory/Localization/FractionRing.lean |
1 |
3 |
['github-actions', 'tb65536'] |
nobody |
20-14124 20 days ago |
20-14124 20 days ago |
20-13781 20 days |
| 37871 |
JJYYY-JJY author:JJYYY-JJY |
feat: support intros and simple rintro in introMerge |
* Extend the `introMerge` linter to handle `intros` and a safe subset of `rintro` tactics, allowing it to suggest merging a wider variety of adjacent introduction tactics.
* Introduce helper functions to normalize supported `rcases` and `rintro` patterns into equivalent `intro` arguments for consistent analysis.
* Add tests to verify the correct merging of mixed introduction tactics and ensure intervening tactics prevent merging.
---
[](https://gitpod.io/from-referrer/)
|
t-meta
new-contributor
|
101/9 |
Mathlib/Dynamics/OmegaLimit.lean,Mathlib/Tactic/TacticAnalysis/Declarations.lean,MathlibTest/TacticAnalysis.lean |
3 |
3 |
['copilot-pull-request-reviewer', 'github-actions'] |
dwrensha assignee:dwrensha |
19-73749 19 days ago |
20-64760 20 days ago |
20-67653 20 days |
| 36764 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `DirectSum.lequivCongrLeft_lof`: unchanged 🎉
* `AnalyticOnNhd.preimage_mem_codiscreteWithin`: unchanged 🎉
* `mem_permsOfList_of_mem`: unchanged 🎉
* `PNat.mod_le`: unchanged 🎉
* `Computation.map_parallel`: unchanged 🎉
* `Sigma.curry_update`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
11/41 |
Mathlib/Algebra/DirectSum/Module.lean,Mathlib/Analysis/Analytic/IsolatedZeros.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/Data/PNat/Basic.lean,Mathlib/Data/Seq/Parallel.lean,Mathlib/Data/Sigma/Basic.lean |
6 |
13 |
['chenson2018', 'euprunin', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
19-50965 19 days ago |
19-51025 19 days ago |
44-22460 44 days |
| 37055 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `OreLocalization.smul'_char`: unchanged 🎉
* `Equiv.Perm.cycleOf_mem_cycleFactorsFinset_iff`: unchanged 🎉
* `StrictMono.ite'`: unchanged 🎉
* `Mathlib.Meta.NormNum.isInt_ediv`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
10/29 |
Mathlib/GroupTheory/OreLocalization/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Tactic/NormNum/DivMod.lean |
4 |
11 |
['chenson2018', 'euprunin', 'github-actions'] |
nobody |
19-48605 19 days ago |
19-48666 19 days ago |
37-45906 37 days |
| 36693 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Equiv.Perm.ofSubtype_swap_eq`: unchanged 🎉
* `Filter.hasBasis_biInf_of_directed'`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
2/10 |
Mathlib/GroupTheory/Perm/Support.lean |
1 |
4 |
['artie2000', 'chenson2018', 'euprunin', 'github-actions'] |
nobody |
19-48569 19 days ago |
46-4737 46 days ago |
46-4393 46 days |
| 37700 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Maps): add `Iso.induceIso` |
Similar to `induceHom`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
29/0 |
Mathlib/Combinatorics/SimpleGraph/Maps.lean |
1 |
3 |
['github-actions', 'vlad902'] |
nobody |
19-7518 19 days ago |
19-7576 19 days ago |
24-19549 24 days |
| 37928 |
AlexeyMilovanov author:AlexeyMilovanov |
refactor(Computability.Encoding): unbundle Γ and remove FinEncoding |
This PR unbundles the alphabet `Γ` from the `Encoding` structure and completely removes `FinEncoding`.
`Encoding`: The alphabet `Γ` is now an explicit parameter: `structure Encoding (α : Type u) (Γ : Type v)`.
`FinEncoding`: Removed. Finiteness is now handled via standard typeclasses (e.g., `[Fintype Γ] (e : Encoding α Γ)`).
Combinators: Functions like `finEncodingPair` are simplified to `encodingPair`, dropping the `fin` prefix and `[Fintype]` requirements where no longer needed.
Downstream: Mechanically updated `Mathlib.Computability` and `Mathlib.ModelTheory` to pass the explicit `Γ` and use `[Fintype Γ]` where `FinEncoding` was previously required.
|
new-contributor |
30/67 |
Mathlib/Computability/Encoding.lean,Mathlib/ModelTheory/Encoding.lean |
2 |
5 |
['github-actions', 'vihdzp'] |
nobody |
18-80954 18 days ago |
19-39905 19 days ago |
19-39561 19 days |
| 37522 |
matthewjasper author:matthewjasper |
chore: adjust Module.Finite instance priority |
Make instances that are rarely going to be helpful lower priority.
Increase the priority of `FiniteDimensional.complexToReal`, because it's more likely correct than the other priority 100 `Module.Finite` instances.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
6/4 |
Mathlib/LinearAlgebra/Complex/FiniteDimensional.lean,Mathlib/LinearAlgebra/Dimension/Free.lean,Mathlib/LinearAlgebra/Dual/Lemmas.lean |
3 |
3 |
['github-actions', 'grunweg', 'leanprover-radar'] |
eric-wieser assignee:eric-wieser |
18-73439 18 days ago |
29-535 29 days ago |
29-191 29 days |
| 36385 |
CoolRmal author:CoolRmal |
feat: a sequential and countably compact space is sequentially compact |
The main result proved in this PR is that a sequential and countably compact space is sequentially compact. We also prove some lemmas:
1. If `f` is an embedding, then `A` is sequentially compact iff `f '' A` is sequentially compact. This result is then used to show the equivalence of `IsSeqCompact A` and `SeqCompactSpace A`.
2. If `f` is inducing, then `A` is countably compact iff `f '' A` is countably compact. This result is then used to show the equivalence of `IsCountablyCompact A` and `CountablyCompactSpace A`.
3. If `f` converges and `g` is another function such that `g x ∈ closure {f x}` for all `x`, then `g` also converges.
---
- [x] depends on: #36174
[](https://gitpod.io/from-referrer/)
|
t-topology |
146/13 |
Mathlib/Topology/Compactness/CountablyCompact.lean,Mathlib/Topology/Inseparable.lean,docs/references.bib |
3 |
33 |
['ADedecker', 'CoolRmal', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
18-58127 18 days ago |
18-58185 18 days ago |
30-47631 30 days |
| 37720 |
cjrl author:cjrl |
feat(Data/Fintype/Card): existsUnique_notMem_image_of_injective_of_card_succ |
This pull requests adds a small theorem `existsUnique_notMem_image_of_injective_of_card_succ` to `Mathlib/Data/Fintype/Card` that says given an injective map f : α → β such that β has cardinality one more than α, there exists a unique element of β not in the image of f.
This can be viewed as going in the opposite direction of `card_lt_of_injective_of_notMem`.
This little fact is needed for our Latin Square PR #36698.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
t-set-theory
|
15/0 |
Mathlib/Data/Fintype/Card.lean |
1 |
6 |
['IvanRenison', 'cjrl', 'github-actions'] |
nobody |
18-7858 18 days ago |
18-7916 18 days ago |
23-61423 23 days |
| 37190 |
cjrl author:cjrl |
feat(Combinatorics): Set-Valued Pigeonhole Principle |
This PR contributes two theorems to combinatorics:
- `exists_lt_card_cover_of_card_biUnion_lt_card` is a set-valued version of the pigeonhole principle.
- `sum_card_eq_sum_card_cover_biUnion` is a set theoretic corollary of a double counting result proved for bipartite graphs (`Finset.sum_card_bipartiteAbove_eq_sum_card_bipartiteBelow`). This was needed to prove the above pigeonhole principle.
The motivation for these results is our Latin Square PR #36698. These results were proved in less general terms in that PR, but are independent of Latin Square considerations and so we have generalized and moved them into more relevant files.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
|
38/0 |
Mathlib/Combinatorics/Enumerative/DoubleCounting.lean,Mathlib/Combinatorics/Pigeonhole.lean |
2 |
16 |
['IvanRenison', 'cjrl', 'ghseeli', 'github-actions', 'j-loreaux', 'vlad902'] |
nobody |
18-7050 18 days ago |
18-7101 18 days ago |
33-63956 33 days |
| 36155 |
grunweg author:grunweg |
feat: custom elaborators for TangentSpace and tangentMap(Within) |
And use these to golf the differential geometry files a bit further.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
t-meta
|
85/30 |
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,MathlibTest/DifferentialGeometry/Notation/Basic.lean |
8 |
5 |
['github-actions', 'grunweg', 'mathlib-merge-conflicts', 'ocfnash'] |
PatrickMassot assignee:PatrickMassot |
17-32888 17 days ago |
17-32682 17 days ago |
55-40796 55 days |
| 34675 |
YaelDillies author:YaelDillies |
feat: comultiplication as a bialgebra hom |
From Toric
---
- [x] depends on: #32245
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
toric
|
71/12 |
Mathlib/RingTheory/Bialgebra/TensorProduct.lean,Mathlib/RingTheory/Coalgebra/TensorProduct.lean |
2 |
6 |
['YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'riccardobrasca'] |
nobody |
17-25497 17 days ago |
18-48977 18 days ago |
18-48634 18 days |
| 38021 |
IvanRenison author:IvanRenison |
feat(Data/Int/ModEq): add theorem `modEq_two_abs` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
4/0 |
Mathlib/Data/Int/ModEq.lean |
1 |
1 |
['github-actions'] |
nobody |
16-83144 16 days ago |
16-83210 16 days ago |
16-82866 16 days |
| 37406 |
vihdzp author:vihdzp |
feat(SetTheory/Cardinal): `IsStrongPrelimit` predicate |
We introduce a predicate for cardinals `c` such that `x < c` implies `x < 2 ^ c`. This is to `IsStrongLimit` as `IsSuccPrelimit` is to `IsSuccLimit`. We then make use of it in a few places where we were writing down `∀ x < c, x < 2 ^ c` explicitly.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
56/25 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Cardinal/Regular.lean |
4 |
1 |
['github-actions'] |
alreadydone assignee:alreadydone |
16-73356 16 days ago |
28-83569 28 days ago |
30-49757 30 days |
| 37831 |
EtienneC30 author:EtienneC30 |
feat: the cardinal of a finset is an ite sum over a bigger finset |
If `s ⊆ t` then `s.card = ∑ i ∈ t, if i ∈ s then 1 else 0`.
---
[](https://gitpod.io/from-referrer/)
|
t-data
t-algebra
label:t-algebra$ |
9/2 |
Mathlib/Algebra/BigOperators/Ring/Finset.lean,Mathlib/Data/Finset/BooleanAlgebra.lean,Mathlib/Data/Finset/Filter.lean |
3 |
3 |
['EtienneC30', 'github-actions', 'robin-carlier'] |
nobody |
16-33269 16 days ago |
16-40613 16 days ago |
21-43482 21 days |
| 37053 |
artie2000 author:artie2000 |
refactor(Analysis/Convex/Cone): use `PointedCone` in Riesz extension theorem |
Change the statement of the Riesz extension theorem to take a `PointedCone` rather than a `ConvexCone`.
This PR is part of a series replacing `ConvexCone` with `PointedCone`. https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Replacing.20.60ConvexCone.60.20with.20.60PointedCone.60/near/581184307
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
maintainer-merge
|
15/12 |
Mathlib/Analysis/Convex/Cone/Extension.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean |
2 |
8 |
['YaelDillies', 'artie2000', 'github-actions', 'mathlib-merge-conflicts', 'ocfnash'] |
nobody |
16-28851 16 days ago |
16-28879 16 days ago |
35-69972 35 days |
| 38018 |
matthewjasper author:matthewjasper |
feat(Algebra): expand Subalgebra.restrictScalars API |
Add an instance for the original algebra structure, the implied scalar tower instances, and the algebra equivalence with the original subalgebra. Use this to remove some `set_option backward.isDefEq.respectTransparency`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
53/14 |
Mathlib/Algebra/Algebra/Subalgebra/Tower.lean,Mathlib/RingTheory/AlgebraicIndependent/TranscendenceBasis.lean,Mathlib/RingTheory/Finiteness/Basic.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean |
4 |
2 |
['eric-wieser', 'github-actions'] |
nobody |
16-2819 16 days ago |
16-85750 16 days ago |
17-623 17 days |
| 37534 |
EtienneC30 author:EtienneC30 |
feat: cardinality of subsets of a given cardinality |
Given a finite set `s`, the number of subsets of `s` with cardinality `n` is `s.ncard.choose n`. This is analog to [Finset.card_powersetCard](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Finset/Powerset.html#Finset.card_powersetCard) and [Set.powersetCard.card](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Data/Set/PowersetCard.html#Set.powersetCard.card) but with a set of sets rather than involving finsets.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
18/0 |
Mathlib/Data/Set/Card.lean |
1 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
15-73391 15 days ago |
28-40654 28 days ago |
28-40310 28 days |
| 37718 |
SabrinaJewson author:SabrinaJewson |
feat(Order): add conversions from `Std` order typeclasses to Mathlib ones |
`{Preorder, PartialOrder, LinearOrder}.ofStd` exist to facilitate convenient translation from `Std` order typeclasses to Mathlib ones.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
366/0 |
Mathlib.lean,Mathlib/Order/Std.lean,MathlibTest/OrderOfStd.lean |
3 |
2 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
15-73390 15 days ago |
23-76769 23 days ago |
23-76918 23 days |
| 38047 |
mbkybky author:mbkybky |
feat(RingTheory/Finiteness/Ideal): `I` is finitely generated if `f(I)` and `I ∩ ker(f)` are finitely generated |
Let `f : R →+* S` be a surjective ring homomorphism, and let `I` be an ideal of `R`. If `f(I)` and `I ∩ ker(f)` are finitely generated ideals, then `I` is also finitely generated.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
13/3 |
Mathlib/RingTheory/Finiteness/Ideal.lean |
1 |
1 |
['github-actions'] |
nobody |
15-62175 15 days ago |
15-62239 15 days ago |
15-63056 15 days |
| 36219 |
gasparattila author:gasparattila |
chore(Order/SupClosed): use `to_dual` |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
66/215 |
Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/SupClosed.lean |
2 |
6 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
15-15533 15 days ago |
15-15591 15 days ago |
19-19458 19 days |
| 38087 |
kbuzzard author:kbuzzard |
perf: add some fast_instance% |
---
[](https://gitpod.io/from-referrer/)
`fast_instance%` experts should take a look at this and say which if any are spurious. I confess to throwing them around rather randomly.
Zulip thread [#mathlib4 > random fast_instance% makes gains @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/random.20fast_instance.25.20makes.20gains/near/585737520)
|
t-algebra label:t-algebra$ |
10/9 |
Mathlib/Algebra/EuclideanDomain/Field.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
3 |
3 |
['github-actions', 'kbuzzard', 'leanprover-radar'] |
nobody |
15-8335 15 days ago |
15-8366 15 days ago |
15-8038 15 days |
| 37865 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): Edge cut of `Graph` |
This PR introduces
- `edgeCut`: A function on set of vertices that returns the set of edges with exactly one end in the set.
- `IsEdgeCut`: A predicate for set of edges that promises it is `edgeCut` of some set.
- `IsBridge`: An edge `e` is a bridge iff it is a singleton edge cut.
- `IsBond`: An edge Set `B` is bond iff it is minimal nonempty edge cut.
---
- [x] depends on: #35879
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
194/0 |
Mathlib/Combinatorics/Graph/Connected/EdgeCut.Lean,Mathlib/Combinatorics/Graph/Subgraph.lean |
2 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
15-5334 15 days ago |
15-22991 15 days ago |
15-23085 15 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'] |
Vierkantor assignee:Vierkantor |
14-73290 14 days ago |
83-77364 83 days ago |
87-4046 87 days |
| 38098 |
astrainfinita author:astrainfinita |
chore: make `SMul.comp.smul` `implicit_reducible` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
2/1 |
Mathlib/Algebra/Group/Action/Defs.lean |
1 |
3 |
['astrainfinita', 'github-actions', 'leanprover-radar'] |
nobody |
14-58736 14 days ago |
14-63610 14 days ago |
14-63266 14 days |
| 37420 |
artie2000 author:artie2000 |
refactor: change definitions to avoid `ConvexCone` |
Change the definitions of `PointedCone.positive` and `PointedCone.closure` to avoid mentioning `ConvexCone`.
This PR is part of a series deprecating `ConvexCone`: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Replacing.20.60ConvexCone.60.20with.20.60PointedCone.60/with/582738985
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry
maintainer-merge
|
10/4 |
Mathlib/Analysis/Convex/Cone/Closure.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean |
2 |
3 |
['YaelDillies', 'github-actions', 'mathlib-merge-conflicts', 'ooovi', 'vihdzp'] |
nobody |
14-34903 14 days ago |
14-34867 14 days ago |
29-55086 29 days |
| 32692 |
WilliamCoram author:WilliamCoram |
feat: define multivariate restricted power series |
We define multivariate restricted power series over a normed ring R, and show the properties that they form a ring when R has the ultrametric property.
This work generalises my previous work in #26089 which will need to be refactored.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-number-theory
new-contributor
|
137/0 |
Mathlib.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/RingTheory/MvPowerSeries/Restricted.lean |
3 |
43 |
['WilliamCoram', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts'] |
alreadydone assignee:alreadydone |
14-29068 14 days ago |
14-29128 14 days ago |
32-42446 32 days |
| 36676 |
euprunin author:euprunin |
chore: replace long terminal `simp only […]`:s (≥3 lemmas) with bare `simp`:s |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Polynomial.map_comp`: unchanged 🎉
* `AlgebraicGeometry.IsClosedImmersion.Spec_iff`: 152 ms before, 107 ms after 🎉
* `nnnorm_pow_le`: unchanged 🎉
* `norm_pow_le`: unchanged 🎉
* `integral_sin`: unchanged 🎉
* `SimpleGraph.Subgraph.le_induce_union`: unchanged 🎉
* `ENNReal.iSup_add_iSup`: unchanged 🎉
* `ENat.iSup_add_iSup`: unchanged 🎉
* `ENat.mul_epow`: unchanged 🎉
* `EReal.abs_eq_zero_iff`: unchanged 🎉
* `Finset.disjoint_biUnion_left`: unchanged 🎉
* `List.splitOnP.go_acc`: unchanged 🎉
* `Multiset.count_map_eq_count`: unchanged 🎉
* `Nat.toDigitsCore_length`: unchanged 🎉
* `PartENat.pos_iff_one_le`: unchanged 🎉
* `Rat.intCast_div_self`: unchanged 🎉
* `Set.biUnion_empty_finset`: unchanged 🎉
* `Quot.subsingleton_iff`: unchanged 🎉
* `Equiv.Perm.support_closure_subset_union`: unchanged 🎉
* `Module.Basis.reindexRange_repr'`: unchanged 🎉
* `MeasureTheory.mul_le_addHaar_image_of_lt_det`: unchanged 🎉
* `MeasureTheory.memLp_finset_sum`: unchanged 🎉
* `MeasureTheory.exists_lt_lowerSemicontinuous_integral_lt`: 450 ms before, 404 ms after 🎉
* `BoundedContinuousFunction.toReal_lintegral_coe_eq_integral`: unchanged 🎉
* `nullMeasurableSet_region_between_oc`: unchanged 🎉
* `nullMeasurableSet_region_between_co`: unchanged 🎉
* `nullMeasurableSet_region_between_cc`: unchanged 🎉
* `MeasureTheory.integral_le_liminf_integral_of_forall_isOpen_measure_le_liminf_measure`: unchanged 🎉
* `padicValNat.pow_add_pow`: unchanged 🎉
* `Monotone.biUnion_Ico_Ioc_map_succ`: unchanged 🎉
* `ProbabilityTheory.condIndepSets_singleton_iff`: unchanged 🎉
* `ProbabilityTheory.sum_variance_truncation_le`: unchanged 🎉
* `IsLocalRing.CotangentSpace.span_image_eq_top_iff`: unchanged 🎉
* `galRestrict'_galLift`: 163 ms before, 48 ms after 🎉
* `Valuation.ne_zero_of_isUnit`: unchanged 🎉
* `hasProd_prod`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
35/35 |
Mathlib/Algebra/Polynomial/Eval/Defs.lean,Mathlib/Analysis/Normed/Ring/Basic.lean,Mathlib/Analysis/SpecialFunctions/Integrals/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/ENat/Lattice.lean,Mathlib/Data/ENat/Pow.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finset/Union.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Nat/Digits/Defs.lean,Mathlib/Data/Rat/Lemmas.lean,Mathlib/Data/Set/Constructions.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/Perm/Finite.lean,Mathlib/LinearAlgebra/Basis/Defs.lean,Mathlib/MeasureTheory/Function/Jacobian.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Integral/Bochner/VitaliCaratheodory.lean,Mathlib/MeasureTheory/Integral/BoundedContinuousFunction.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/MeasureTheory/Measure/Portmanteau.lean,Mathlib/NumberTheory/Multiplicity.lean,Mathlib/Order/SuccPred/IntervalSucc.lean,Mathlib/Probability/Independence/Conditional.lean,Mathlib/Probability/StrongLaw.lean,Mathlib/RingTheory/Ideal/Cotangent.lean,Mathlib/RingTheory/IntegralClosure/IntegralRestrict.lean,Mathlib/RingTheory/Valuation/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean |
30 |
4 |
['euprunin', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
14-7185 14 days ago |
25-37756 25 days ago |
44-27940 44 days |
| 36774 |
euprunin author:euprunin |
chore: replace long terminal `rw […]`:s (≥4 lemmas) with bare `simp`:s |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `Finset.lcm_union`: unchanged 🎉
* `Finset.gcd_union`: unchanged 🎉
* `Polynomial.derivative_eval₂_C`: unchanged 🎉
* `Polynomial.expand_pow`: unchanged 🎉
* `Cardinal.mk_real`: unchanged 🎉
* `Real.log_zpow`: unchanged 🎉
* `Matroid.eRank_le_encard_add_eRk_compl`: unchanged 🎉
* `DFinsupp.single_tsub`: unchanged 🎉
* `EReal.inv_neg`: unchanged 🎉
* `Finsupp.toMultiset_map`: unchanged 🎉
* `Finsupp.single_tsub`: unchanged 🎉
* `Multiset.countP_map`: unchanged 🎉
* `Nat.ascFactorial_eq_factorial_mul_choose'`: unchanged 🎉
* `Real.sign_intCast`: unchanged 🎉
* `Real.volume_eball`: unchanged 🎉
* `Real.volume_closedEBall`: unchanged 🎉
* `LFunction_ne_zero_of_not_quadratic_or_ne_one`: 295 ms before, 152 ms after 🎉
* `hasSum_one_div_nat_pow_mul_cos`: unchanged 🎉
* `inv_eq_of_aeval_divX_ne_zero`: unchanged 🎉
* `AlgebraicIndependent.aeval_comp_mvPolynomialOptionEquivPolynomialAdjoin`: unchanged 🎉
* `Ordinal.deriv_mul_eq_opow_omega0_mul`: unchanged 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
22/24 |
Mathlib/Algebra/GCDMonoid/Finset.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/Expand.lean,Mathlib/Analysis/Real/Cardinality.lean,Mathlib/Analysis/SpecialFunctions/Log/Basic.lean,Mathlib/Combinatorics/Matroid/Rank/ENat.lean,Mathlib/Data/DFinsupp/Order.lean,Mathlib/Data/EReal/Inv.lean,Mathlib/Data/Finsupp/Multiset.lean,Mathlib/Data/Finsupp/Order.lean,Mathlib/Data/Multiset/Filter.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/Data/Real/Sign.lean,Mathlib/MeasureTheory/Measure/Lebesgue/Basic.lean,Mathlib/NumberTheory/LSeries/Nonvanishing.lean,Mathlib/NumberTheory/ZetaValues.lean,Mathlib/RingTheory/Algebraic/Basic.lean,Mathlib/RingTheory/AlgebraicIndependent/Basic.lean,Mathlib/SetTheory/Ordinal/FixedPoint.lean |
19 |
2 |
['artie2000', 'euprunin', 'github-actions'] |
nobody |
14-7174 14 days ago |
44-15700 44 days ago |
44-15356 44 days |
| 37598 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Coloring): add lemmas about coloring and maps |
---
Idea from this Zulip thread: [graph theory>Second Order Monadic Logic for Graph](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Second.20Order.20Monadic.20Logic.20for.20Graph/with/583013775)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
37/13 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
18 |
['IvanRenison', 'SnirBroshi', 'b-mehta', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
14-730 14 days ago |
14-4818 14 days ago |
25-33690 25 days |
| 38095 |
astrainfinita author:astrainfinita |
perf(Algebra/*/{InjSurj, TransferInstance}): reduce instance `Expr`s |
---
We can not just use `fast_instance%`, because `fast_instance%` reduces instances into constructor applications, but their arguments may still not be reduced.
This PR continues the work from #13795.
Original PR: https://github.com/leanprover-community/mathlib4/pull/13795
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/instance.20unfolding.20phenomenon/) |
t-algebra label:t-algebra$ |
401/219 |
Mathlib/Algebra/Field/Basic.lean,Mathlib/Algebra/Field/TransferInstance.lean,Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Action/TransferInstance.lean,Mathlib/Algebra/Group/InjSurj.lean,Mathlib/Algebra/Group/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/End.lean,Mathlib/Algebra/GroupWithZero/Action/TransferInstance.lean,Mathlib/Algebra/GroupWithZero/InjSurj.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Algebra/Module/RingHom.lean,Mathlib/Algebra/Ring/InjSurj.lean,Mathlib/Algebra/Ring/TransferInstance.lean,Mathlib/Util/TermReduce.lean,scripts/noshake.json |
16 |
7 |
['astrainfinita', 'github-actions', 'leanprover-radar'] |
nobody |
13-72810 13 days ago |
14-63205 14 days ago |
14-65391 14 days |
| 38141 |
Jun2M author:Jun2M |
feat(Order/Partition): Partition induced by symmetric, transitive relation |
We introduce a constructor for Partition from a symmetric, transitive relation, with `copy` function baked into the definition.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-order |
41/7 |
Mathlib/Order/Partition/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
13-70683 13 days ago |
13-70750 13 days ago |
13-70406 13 days |
| 35569 |
goliath-klein author:goliath-klein |
refactor(PiTensorProduct/{InjectiveNorm, ProjectiveNorm}): deprecate `injectiveSeminorm` |
This PR:
* Deprecates `PiTensorProduct.injectiveSeminorm` and supporting lemmas.
* Moves the theory of `liftEquiv` from InjectiveSeminorm.lean to ProjectiveSeminorm.lean.
No changes are introduced beyond adding deprecation notices, adapting docstrings, and moving material between files.
The PR leaves InjectiveSeminorm.lean almost empty. A new implementation of `injectiveSeminorm`, one which reflects the common mathematical definition, is to be done.
This is the third in a series of three PRs with the goal to [deprecate `PiTensorProuduct.injectiveSeminorm`](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/injectiveSeminorm/with/568798633).
---
- [ ] depends on: #35567
- [ ] depends on: #35568
Deprecations:
- injectiveSeminorm
- dualSeminorms_bounded
- injectiveSeminorm_apply
- norm_eval_le_injectiveSeminorm
- injectiveSeminorm_le_projectiveSeminorm
- injectiveSeminorm_tprod_le
Preliminary work toward a reimplementation is at #33969.
I've added Davood and myself to the "Authors" field, as we have now significantly refactored this module.
Co-authored-by: Davood H. T. Tehrani
[](https://gitpod.io/from-referrer/)
|
new-contributor |
222/233 |
Mathlib/Analysis/Normed/Module/PiTensorProduct/InjectiveSeminorm.lean,Mathlib/Analysis/Normed/Module/PiTensorProduct/ProjectiveSeminorm.lean |
2 |
6 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
13-46029 13 days ago |
13-46053 13 days ago |
30-14025 30 days |
| 37588 |
Vierkantor author:Vierkantor |
feat(Linter/DocString): ignore Verso linter errors about links and LaTeX |
I went through [the weekly linting log](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Weekly.20linting.20log/near/582485221) and found most of the warnings come from three sources. All of these are sensical syntax in our current Markdown dialect, and should be fixed automatically by a script, instead of manually. I expect after these changes we'll be down to hundreds of linter errors rather than two thousand.
* References [between square brackets] without a following link URL. Verso has different implementations for references depending on what kind they are, and since there are a thousand references we should be using a script to fix these.
* Autolinks: bare URLs or URLs between . Autolinks are intentionally not supported by Verso but replacing every `https://...` with `[https://...](https://...)` would be too noisy.
* LaTeX blocks: Verso does have TeX blocks but with an incompatible syntax. Better to fix it with a script.
I ended up using preprocessing in addition to postprocessing to filter out errors: using the error message we can determine whether it is a reference, but for errors caused by autolinks and LaTeX blocks I couldn't figure out how to do so easily: the information about the parse error does report a string position but this is always the last character of the docstring. So instead we modify the docstring before it is passed into Verso to get rid of the offending syntax.
---
[](https://gitpod.io/from-referrer/)
|
t-linter
large-import
maintainer-merge
|
113/5 |
Mathlib/Tactic/Linter/DocString.lean,MathlibTest/DocString.lean |
2 |
18 |
['Vierkantor', 'github-actions', 'thorimur'] |
thorimur assignee:thorimur |
13-31129 13 days ago |
13-31187 13 days ago |
16-26524 16 days |
| 37808 |
JovanGerb author:JovanGerb |
feat(Translate): locally modify name guessing dictionaries |
This PR adds the feature to `to_dual` and `to_additive` that you can now locally modify the name translation dictionary.
With this change, we run the risk of having the automated translations being harder to predict. For this reason, the changes to the dictionary do not persisted through imports. Instead, the change lasts until the end of the file (though it ignores sections).
See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Order.20dual.20tactic/near/580834166
---
[](https://gitpod.io/from-referrer/)
|
t-meta
maintainer-merge
|
111/39 |
Mathlib/Order/GaloisConnection/Basic.lean,Mathlib/Order/GaloisConnection/Defs.lean,Mathlib/Order/Interval/Set/Basic.lean,Mathlib/Order/Interval/Set/Disjoint.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/GuessName.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Tactic/Translate/ToDual.lean,MathlibTest/ToDual.lean |
9 |
4 |
['JovanGerb', 'bryangingechen', 'github-actions', 'joneugster'] |
joneugster assignee:joneugster |
13-30996 13 days ago |
18-26976 18 days ago |
18-33866 18 days |
| 36863 |
artie2000 author:artie2000 |
refactor(Algebra/Order/Ring/Ordering): unbundle `RingPreordering` |
The current design for [RingPreordering](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Ordering/Defs.html#RingPreordering) ran into issues at PR #32077. This PR unbundles [RingPreordering](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Ordering/Defs.html#RingPreordering) into a class predicate on [Subsemiring](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Ring/Subsemiring/Defs.html#Subsemiring), generalising the material on supports as far as possible.
Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/116395-maths/topic/Ring.20orderings.20-.20structure.20or.20predicate.3F/with/562594050
See #37298 for the analogous change to group and ring cones.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
455/87 |
Mathlib.lean,Mathlib/Algebra/Order/Ring/Ordering/Basic.lean,Mathlib/Algebra/Order/Ring/Ordering/Defs.lean,Mathlib/Algebra/Ring/Subsemiring/Support.lean |
4 |
13 |
['artie2000', 'chrisflav', 'github-actions'] |
eric-wieser assignee:eric-wieser |
13-26710 13 days ago |
13-27336 13 days ago |
38-36576 38 days |
| 36541 |
BGuillemet author:BGuillemet |
feat(CategoryTheory): define internal equivalence relations |
Define internal equivalence relations in any category `C`, as a structure on parallel pairs of morphisms.
Prove that equivalence relations on types are equivalence relations in the category of types.
Prove that kernel pairs are equivalence relations.
Define (universally) effective equivalence relations, and a associated class for categories in which every equivalence relation is effective universal.
Prove that an effective equivalence relation yields a coequalizer diagram, and that the associated projection on the "quotient" of the relation is a regular epimorphism.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
288/0 |
Mathlib.lean,Mathlib/CategoryTheory/EquivalenceRelation.lean,Mathlib/CategoryTheory/Limits/Shapes/RegularMono.lean |
3 |
12 |
['BGuillemet', 'dagurtomas', 'github-actions'] |
b-mehta assignee:b-mehta |
13-24909 13 days ago |
13-24909 13 days ago |
20-47718 20 days |
| 36910 |
Brian-Nugent author:Brian-Nugent |
feat(CategoryTheory): 4 and 5 lemmas for ComposableArrows n |
Adds versions of the 4 and 5 lemmas for morphisms in `ComposableArrows n`.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
85/2 |
Mathlib/Algebra/Homology/ExactSequence.lean,Mathlib/CategoryTheory/Abelian/DiagramLemmas/Four.lean,Mathlib/CategoryTheory/ComposableArrows/Basic.lean |
3 |
8 |
['Brian-Nugent', 'dagurtomas', 'erdOne', 'github-actions'] |
adamtopaz assignee:adamtopaz |
13-15925 13 days ago |
13-15925 13 days ago |
28-30738 28 days |
| 37819 |
YellPika author:YellPika |
feat(Order/OmegaCompletePartialOrder): add `OmegaCompletePartialOrder` instance for `WithBot` with basic `ωScottContinuous` lemmas |
This is a modification of #34093. See #34093 for details.
---
- [x] depends on: #33941
- [x] depends on: #37258
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
337/10 |
Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Order/Monotone/Basic.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Order/TypeTags.lean,Mathlib/Order/WithBot.lean |
6 |
3 |
['github-actions', 'mathlib-dependent-issues'] |
Komyyy assignee:Komyyy |
13-15733 13 days ago |
21-67481 21 days ago |
21-70955 21 days |
| 37893 |
abeldonate author:abeldonate |
feat: Module theory theorems |
Added three theorems:
- annihilator_sup
- torsionOf_eq_annihilator_span_singleton
- annihilator_eq_iInf_torsionOf
|
new-contributor
t-algebra
label:t-algebra$ |
15/0 |
Mathlib/Algebra/Module/Torsion/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean |
2 |
8 |
['abeldonate', 'github-actions', 'scholzhannah', 'wwylele'] |
nobody |
13-15454 13 days ago |
13-23128 13 days ago |
14-35661 14 days |
| 37982 |
chrisflav author:chrisflav |
feat(RingTheory/Etale): descent along faithfully flat maps |
From Pi1.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
123/1 |
Mathlib.lean,Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Descent.lean |
3 |
5 |
['chrisflav', 'github-actions', 'robin-carlier'] |
mattrobball assignee:mattrobball |
13-10434 13 days ago |
13-10434 13 days ago |
17-33242 17 days |
| 38049 |
WilliamCoram author:WilliamCoram |
feat: lemmas towards showing gaussNorm on MvPowerSeries is an absolute value |
We prove lemmas: ``gaussNorm_mul_le`` and ``gaussNorm_le_mul`` which will allow us to show it is an absolute value on Mv restricted power series.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
144/1 |
Mathlib/RingTheory/MvPowerSeries/GaussNorm.lean |
1 |
4 |
['WilliamCoram', 'github-actions'] |
nobody |
13-6121 13 days ago |
16-16097 16 days ago |
16-15753 16 days |
| 37674 |
gasparattila author:gasparattila |
feat(Topology/Sets): separation properties of `(Nonempty)Compacts` |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
97/6 |
Mathlib/Topology/Sets/VietorisTopology.lean |
1 |
13 |
['gasparattila', 'github-actions', 'mathlib-merge-conflicts', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
13-1997 13 days ago |
15-16290 15 days ago |
23-62423 23 days |
| 38185 |
Jun2M author:Jun2M |
feat(Order/Partition): operations over Frame |
This PR introduces:
* `Partition.induce`: The induce of a partition by a frame element.
* `Partition.disjUnion`: The disjoint union of two partitions.
* `Partition.bind`: The finer partition obtained by family of partitions for each part of the original partition.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-order |
89/11 |
Mathlib/Order/Partition/Basic.lean,Mathlib/Order/SupIndep.lean |
2 |
1 |
['github-actions'] |
nobody |
13-1669 13 days ago |
13-1741 13 days ago |
13-1397 13 days |
| 38186 |
tb65536 author:tb65536 |
feat(RingTheory/QuasiFinite/Basic): Localizations of the fiber are finite over the residue field |
This PR adds an instance stating that localizations of the fiber are finite over the residue field.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
4/0 |
Mathlib/RingTheory/QuasiFinite/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
13-510 13 days ago |
13-510 13 days ago |
13-168 13 days |
| 35216 |
kim-em author:kim-em |
doc(Tactic/Translate/ToDual): add deployment guide for @[to_dual] |
This PR expands the documentation for `@[to_dual]` with practical advice for deploying it to existing code.
**Module docstring** (`Mathlib/Tactic/Translate/ToDual.lean`): adds a "Deploying `@[to_dual]` to existing code" section covering name agreement, attribute propagation, docstring syntax ordering, declaration order dependencies, and known structural mismatches (conjunct reordering, type class gaps, interval argument swapping).
**Attribute docstring**: adds a note that `@[simp]` is not auto-copied (must use `(attr := simp)`), and shows the correct ordering when combining `(attr := ...)` with docstrings.
**Agent skill** (`.claude/skills/to_dual/SKILL.md`): detailed step-by-step instructions for an AI agent deploying `@[to_dual]`, including how to identify candidates, common patterns, and debugging.
🤖 Prepared with Claude Code |
documentation
enhancement
LLM-generated
|
31/3 |
Mathlib/Tactic/Translate/ToDual.lean |
1 |
30 |
['JovanGerb', 'MichaelStollBayreuth', 'github-actions', 'kim-em', 'mathlib-merge-conflicts', 'vihdzp'] |
JovanGerb assignee:JovanGerb |
12-80177 12 days ago |
12-80200 12 days ago |
19-66740 19 days |
| 34273 |
gasparattila author:gasparattila |
feat(Topology/Sets): finite sets are dense in `(Nonempty)Compacts` |
---
- [x] depends on: #34266
[](https://gitpod.io/from-referrer/)
|
t-topology |
35/0 |
Mathlib/Topology/Sets/VietorisTopology.lean |
1 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
12-73676 12 days ago |
37-16833 37 days ago |
37-17739 37 days |
| 36643 |
Thmoas-Guan author:Thmoas-Guan |
feat(Homology): interaction of projective and injective dimension and SES |
In this PR, we directly implemented the relation of `projectiveDimension` and `injectiveDimension` in SES.
---
- [ ] depends on: #36817
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
159/0 |
Mathlib/CategoryTheory/Abelian/Injective/Dimension.lean,Mathlib/CategoryTheory/Abelian/Projective/Dimension.lean |
2 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
adamtopaz assignee:adamtopaz |
12-73673 12 days ago |
24-56254 24 days ago |
31-4951 31 days |
| 37298 |
artie2000 author:artie2000 |
refactor(Algebra/Order): unbundle group and ring cone |
* Unbundle `GroupCone` and `RingCone` using `Submonoid.IsMulPointed`
The material in `Mathlib.Algebra.Group.Submonoid.Support` was created to treat uniformly
* positive cones in groups and rings
* pointed cones in vector spaces over an ordered field
* orderings in rings
This PR deprecates the [GroupCone](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Group/Cone.html#GroupCone) and [RingCone](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Algebra/Order/Ring/Cone.html#RingCone) structures, making use of the predicates `Submonoid.IsMulPointed` and `AddSubmonoid.IsPointed` defined in that file instead.
See also #36863 for the analogous change to ring orderings.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
136/31 |
Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Ring/Cone.lean |
2 |
2 |
['github-actions', 'joneugster'] |
kim-em assignee:kim-em |
12-73671 12 days ago |
32-14047 32 days ago |
32-14258 32 days |
| 38177 |
chrisflav author:chrisflav |
chore(RingTheory/Localization): mirror tensor product compatibilities and golf |
We add a mirrored version of `IsLocalization.tensorProduct_tensorProduct` and some related isomorphisms. We use this to golf the proof of `RingHom.locally_isStableUnderBaseChange`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
116/44 |
Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Localization/Basic.lean,Mathlib/RingTheory/Localization/Finiteness.lean,Mathlib/RingTheory/RingHom/Locally.lean,Mathlib/RingTheory/RingHomProperties.lean |
5 |
1 |
['github-actions'] |
riccardobrasca assignee:riccardobrasca |
12-73661 12 days ago |
13-10007 13 days ago |
13-10624 13 days |
| 37573 |
vihdzp author:vihdzp |
feat: supremum of `≤ c` ordinals of cardinal `≤ c` has cardinal `≤ c` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
48/13 |
Mathlib/SetTheory/Cardinal/Ordinal.lean |
1 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
alreadydone assignee:alreadydone |
12-55475 12 days ago |
12-55531 12 days ago |
27-59310 27 days |
| 38200 |
Parcly-Taxel author:Parcly-Taxel |
feat: Turán numbers and their strict monotonicity |
`strictMonoOn_turanNumber` and `sum_mul_le_twice_turanNumber` were initially proved by @Aristotle-Harmonic, then hand-polished.
Co-authored-by: Aristotle (Harmonic) |
t-combinatorics |
55/20 |
Mathlib/Combinatorics/SimpleGraph/Extremal/Turan.lean |
1 |
1 |
['github-actions'] |
nobody |
12-44713 12 days ago |
12-46140 12 days ago |
12-45796 12 days |
| 38173 |
JovanGerb author:JovanGerb |
chore(CategoryTheory/EpiMono): use `to_dual` |
Generate declarations about `Mono`, `SplitMono` and `SplitMonoCategory` from the epic versions.
---
[](https://gitpod.io/from-referrer/)
|
|
40/120 |
Mathlib/CategoryTheory/EpiMono.lean,Mathlib/Tactic/Translate/ToDual.lean |
2 |
1 |
['github-actions'] |
nobody |
12-39146 12 days ago |
12-39203 12 days ago |
12-41693 12 days |
| 38169 |
tb65536 author:tb65536 |
chore(GroupTheory/Finiteness): make `Subgroup.FG` a class |
This PR refactors `Subgroup.FG` to be a class to match `Group.FG`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
37/20 |
Mathlib/GroupTheory/Commutator/Finite.lean,Mathlib/GroupTheory/Finiteness.lean,Mathlib/GroupTheory/Rank.lean,Mathlib/GroupTheory/Schreier.lean |
4 |
3 |
['JovanGerb', 'github-actions', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
12-26709 12 days ago |
13-18108 13 days ago |
13-17766 13 days |
| 38073 |
sgouezel author:sgouezel |
chore: improve performance for quotient group structure |
The ring instance on `R ⧸ I` is not reducibly compatible with its `AddCommGroup` structure. A previous version of this PR was fixing this diamond, but mixing several changes (notably improving performance to compensate for the performance loss due to the fix). Now, the PR is only improving performance (quite nicely) by introducing intermediate classes for typeclass inference (notably `AddMonoid`) to make for more compact instances in quotient groups. Another PR will subsequently fix the diamond (with a performance hit).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
6/1 |
Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean |
2 |
36 |
['JovanGerb', 'github-actions', 'leanprover-radar', 'robin-carlier', 'sgouezel'] |
JovanGerb assignee:JovanGerb |
12-19582 12 days ago |
14-55111 14 days ago |
15-24045 15 days |
| 37649 |
IvanRenison author:IvanRenison |
feat(Data): add theorem `Finset.image_eq_iff_eq_preimage` |
---
[](https://gitpod.io/from-referrer/)
|
t-data |
19/0 |
Mathlib/Data/Finset/Preimage.lean,Mathlib/Data/Set/Function.lean |
2 |
4 |
['Rida-Hamadani', 'github-actions', 'themathqueen'] |
nobody |
12-1962 12 days ago |
25-78107 25 days ago |
25-77763 25 days |
| 38199 |
vihdzp author:vihdzp |
chore: add items to set theory overview |
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-set-theory
|
11/2 |
docs/overview.yaml |
1 |
3 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
11-80272 11 days ago |
12-46813 12 days ago |
12-46568 12 days |
| 38224 |
plp127 author:plp127 |
fix(QuadraticAlgebra): `Rat` algebra diamond |
Fix a diamond for `Algebra Rat (QuadraticAlgebra Rat a b)` at default transparency by overriding the default implementation of the `qsmul` and `ratCast` fields with one that does not create a diamond. The diamond is still present at reducible-and-instances transparency.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
59/7 |
Mathlib/Algebra/QuadraticAlgebra/Basic.lean,Mathlib/Algebra/QuadraticAlgebra/Defs.lean,MathlibTest/Algebra/QuadraticAlgebra/RatAlgebraDiamond.lean |
3 |
1 |
['github-actions'] |
nobody |
11-75867 11 days ago |
11-75937 11 days ago |
11-75593 11 days |
| 31892 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Sphere/PolePolar): poles and polars |
Define poles and polars for spheres in Euclidean affine spaces, and set up some basic API, including in particular La Hire's theorem (`p₁` lies on the polar of `p₂` if and only if `p₂` lies on the polar of `p₁`).
Poles and polars are actually meaningful for any quadric in a projective space over any field, but I think it's reasonable to set up this theory for spheres in the Euclidean context and potentially link it in future to more general projective geometry.
---
- [ ] depends on: #31891
- [ ] depends on: #32296
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
159/0 |
Mathlib.lean,Mathlib/Geometry/Euclidean/Sphere/PolePolar.lean |
2 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
11-73859 11 days ago |
34-11399 34 days ago |
34-11815 34 days |
| 32294 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): distance from second intersection with circumcircle |
Add the following lemma: given a triangle ABC, suppose an angle bisector from A through the incenter or excenter I meets the circumcircle again at X (including the case of an external bisector at A tangent to the circle, in which case X = A). Then XB = XI (= XC, by applying this lemma again). This is a standard configuration: https://en.wikipedia.org/wiki/Incenter%E2%80%93excenter_lemma
---
- [ ] depends on: #30981
- [ ] depends on: #30982
- [ ] depends on: #32019
- [ ] depends on: #32021
- [ ] depends on: #32023
- [ ] depends on: #32270
- [ ] depends on: #32290
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
189/0 |
Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
1 |
5 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'peakpoint'] |
nobody |
11-73858 11 days ago |
34-11413 34 days ago |
34-11859 34 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
|
112/0 |
Mathlib/Combinatorics/SimpleGraph/DegreeSum.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean |
2 |
39 |
['SnirBroshi', 'SproutSeeds', 'github-actions', 'jcommelin', 'ksenono'] |
b-mehta assignee:b-mehta |
11-73301 11 days ago |
13-23590 13 days ago |
113-4835 113 days |
| 35683 |
gasparattila author:gasparattila |
fix(Tactic/FunProp): detect `Continuous.subtype_mk` as compositional |
This PR changes `fun_prop` to detect some theorems involving dependent types, such as `Continous.subtype_mk` to be in compositional form. This lets `fun_prop` solve goals such as `Continuous fun x => (⟨x, trivial⟩ : {x : ℝ // True})`.
---
These theorems become compositional: `Continuous.subtype_mk`, `Topology.IsEmbedding.inclusion`, `Topology.IsOpenEmbedding.inclusion`, `Topology.IsClosedEmbedding.inclusion`, `Measurable.subtype_mk`, `Measurable.imp`, `Path.symm_continuous_family`, `Continuous.upperHalfPlaneMk`
These theorems become simple: `hasFDerivAt_prodMk_left`, `hasFDerivAt_prodMk_right`, `contDiff_prodMk_left`, `contDiff_prodMk_right`
[](https://gitpod.io/from-referrer/)
|
t-meta |
57/33 |
Mathlib/Tactic/FunProp/Core.lean,Mathlib/Tactic/FunProp/FunctionData.lean,Mathlib/Tactic/FunProp/Theorems.lean,Mathlib/Topology/Homeomorph/Lemmas.lean,MathlibTest/fun_prop_dev.lean |
5 |
6 |
['gasparattila', 'github-actions', 'grunweg', 'lecopivo', 'mathlib-merge-conflicts'] |
thorimur assignee:thorimur |
11-73300 11 days ago |
33-85913 33 days ago |
65-83130 65 days |
| 36202 |
vihdzp author:vihdzp |
feat: more theorems on the Cantor normal form |
We also remove some redundant assumptions.
Used in the CGT repo.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
68/17 |
Mathlib/SetTheory/Ordinal/CantorNormalForm.lean |
1 |
16 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
alreadydone assignee:alreadydone |
11-73299 11 days ago |
36-43626 36 days ago |
55-37102 55 days |
| 36922 |
SnirBroshi author:SnirBroshi |
feat(Data/List/Chain): generalize `WellFounded.asymmetric₃` to chains |
The existing `WellFounded.asymmetric` shows `r a b → ¬r b a`,
and `WellFounded.asymmetric₃` shows `r a b → r b c → ¬r c a`.
This adds `WellFounded.asymmetricₙ` which shows `l.IsChain r → ¬r l.getLast l.head`.
---
Also adds a couple of `IsChain` lemmas which might be useful.
[](https://gitpod.io/from-referrer/)
|
t-data |
29/8 |
Mathlib/Data/List/Chain.lean |
1 |
4 |
['SnirBroshi', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
TwoFX assignee:TwoFX |
11-73298 11 days ago |
36-27486 36 days ago |
40-63218 40 days |
| 37625 |
slavanaprienko author:slavanaprienko |
feat(LinearAlgebra/Matrix/Charpoly): general coefficient formula as sum of principal minors |
This PR adds a general formula for the coefficients of `det(1 + X • M)` as sums of principal minors, generalizing the existing `coeff_det_one_add_X_smul_one` (k=1, trace) and `det_eq_sign_charpoly_coeff` (k=n, determinant). It also derives the corresponding formula for the coefficients of the characteristic polynomial via `charpolyRev`.
New results:
- `det_piecewise_one_eq_submatrix_det`: relates piecewise-with-identity to principal submatrix determinants
- `coeff_det_one_add_X_smul_eq_sum_minors`: the k-th coefficient of `det(1 + X • M)` equals the sum of k×k principal minors
- `charpoly_coeff_eq_sum_minors`: coefficients of the characteristic polynomial as signed sums of principal minors
--- |
t-algebra
new-contributor
label:t-algebra$ |
105/1 |
Mathlib/LinearAlgebra/Matrix/Charpoly/Coeff.lean |
1 |
24 |
['eric-wieser', 'github-actions', 'slavanaprienko', 'wwylele'] |
kim-em assignee:kim-em |
11-73297 11 days ago |
25-61749 25 days ago |
26-76893 26 days |
| 37931 |
Vierkantor author:Vierkantor |
chore(Tactic): make the (deprecated) `replace` syntax a `@[tactic_alt]` |
This PR replaces the tactic docstring for Mathlib's version of `replace` with a `@[tactic_alt]` attribute + `tactic_extension`. Also update the module docs which did not get updated when `replace` got upstreamed to core Lean.
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-meta
maintainer-merge
|
7/31 |
Mathlib/Tactic/Replace.lean |
1 |
2 |
['github-actions', 'joneugster'] |
dwrensha assignee:dwrensha |
11-73295 11 days ago |
17-23883 17 days ago |
17-24261 17 days |
| 38208 |
mbkybky author:mbkybky |
chore: rename two instances |
Rename [Module.Free.Module.free_shrink](https://leanprover-community.github.io/mathlib4_docs/Mathlib/LinearAlgebra/FreeModule/Basic.html#Module.Free.Module.free_shrink) to `Module.Free.shrink` and rename [Module.Finite.Module.finite_shrink](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Finiteness/Basic.html#Module.Finite.Module.finite_shrink) to `Module.Finite.shrink`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-ring-theory
label:t-algebra$ |
6/2 |
Mathlib/LinearAlgebra/FreeModule/Basic.lean,Mathlib/RingTheory/Finiteness/Basic.lean |
2 |
3 |
['github-actions', 'mbkybky', 'plp127'] |
nobody |
11-58618 11 days ago |
12-29993 12 days ago |
12-30864 12 days |
| 38231 |
NoneMore author:NoneMore |
feat(ModelTheory/Definablity): add syntax-to-definability bridge lemmas |
Add bridge lemmas from syntax to definability and refactor downstream proofs to use them.
---
[](https://gitpod.io/from-referrer/) |
t-logic |
88/56 |
Mathlib/ModelTheory/Definability.lean,Mathlib/ModelTheory/ElementarySubstructures.lean |
2 |
1 |
['github-actions'] |
nobody |
11-58463 11 days ago |
11-58542 11 days ago |
11-58198 11 days |
| 38245 |
RemyDegenne author:RemyDegenne |
feat: CountableSupClosed |
Define the property for a set of being closed by countable supremum (resp. infimum).
The new file is adapted from the `SupClosed` file, which describes sets closed by binary supremum.
Also use `to_dual` on `SupClosed`.
`CountableInfClosed` will be used in measure theory, for developments related to compact systems used for Kolmogorov's extension theorem and Choquet's capacitability theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-order
brownian
|
308/66 |
Mathlib.lean,Mathlib/Order/CountableSupClosed.lean,Mathlib/Order/SupClosed.lean |
3 |
14 |
['RemyDegenne', 'b-mehta', 'github-actions', 'vihdzp'] |
nobody |
11-19455 11 days ago |
11-33705 11 days ago |
11-38085 11 days |
| 34952 |
joneugster author:joneugster |
feat(scripts/autolabel): use `Cli` and integrate `curl` call into `autolabel` |
- use `Cli` for `lake exe autolabel`
- add arguments `--pr xxx --gh` and `--pr xxx --curl ` to chose between different interaction methods with github
- add `--force` to skip the check whether labels are already present. (note: the current `curl` setup doesn't perform this step and neither does the refactor, so I added a `Todo` to remember this. )
- make CI-workflow simpler and more robust by removing current stdout-parsing of the debug-messages which `autolabel` emits.
### Testing
Make some local changes and commit them. Ensure your local `origin/master` is in sync with `upstream/master` if you are on a fork.
- `lake exe autolabel`: prints the labels which would be applicable
- `lake exe autolabel --pr 34952 --gh --force` adds these labels to this PR using `gh`.
- `lake exe autolabel --pr 34952 --gh` adds these labels to this PR using `gh` if no topic labels are present.
- `lake exe autolabel --pr 34952 --curl ` adds these labels to this PR using `curl`. This requires a github access token for authentication
---
[](https://gitpod.io/from-referrer/)
|
CI |
86/73 |
.github/workflows/add_label_from_diff.yaml,scripts/autolabel.lean |
2 |
4 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
10-73859 10 days ago |
32-34459 32 days ago |
64-75455 64 days |
| 32282 |
jsm28 author:jsm28 |
feat(Geometry/Euclidean/Angle/Incenter): unoriented angle bisection |
Add lemmas giving unoriented angles involving the incenter and excenters of a triangle as expressions involving dividing angles of the triangle by 2, deduced from oriented bisection lemmas.
---
- [ ] depends on: #30981
- [ ] depends on: #30982
- [ ] depends on: #31205
- [ ] depends on: #32019
- [ ] depends on: #32021
- [ ] depends on: #32259
- [ ] depends on: #32260
- [ ] depends on: #32270
- [ ] depends on: #32273
- [ ] depends on: #32278
[](https://gitpod.io/from-referrer/)
|
t-euclidean-geometry |
98/0 |
Mathlib/Geometry/Euclidean/Angle/Incenter.lean |
1 |
8 |
['github-actions', 'jsm28', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'wwylele'] |
nobody |
10-73858 10 days ago |
34-11410 34 days ago |
34-11802 34 days |
| 35069 |
A-M-Berns author:A-M-Berns |
feat(Geometry/Polygon): simple polygons and boundary map |
This PR introduces Simple polygons with the predicate `IsSimple`, which captures the idea of a non-self-intersecting boundary, in the file Simple.lean. In the file Boundary.lean, a boundary map from `AddCircle n` is defined. I prove that the range of this map is the boundary and that this map is injective if and only if the polygon is simple. I kept Boundary.lean and Simple.lean separate because future results will include stuff just about the boundary map independent of simplicity (e.g. that it is continuous in the appropriate setting) and stuff just about simple polygons independent of the boundary map (e.g. that for n = 3, IsSimple iff HasNondegenerateVertices.) I used Claude Code to help generate some of the proof material, but I golfed and edited all AI contribution.
- [x] depends on: #34598
---
|
new-contributor
t-euclidean-geometry
LLM-generated
|
360/0 |
Mathlib.lean,Mathlib/Geometry/Polygon/Boundary.lean,Mathlib/Geometry/Polygon/Simple.lean,Mathlib/Logic/Equiv/Fin/Rotate.lean |
4 |
30 |
['A-M-Berns', 'eric-wieser', 'github-actions', 'joneugster', 'jsm28', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp', 'wwylele'] |
nobody |
10-73857 10 days ago |
64-13312 64 days ago |
66-47254 66 days |
| 34759 |
Hagb author:Hagb |
feat(RingTheory/MvPolynomial/MonomialOrder): add degree with `⊥` as degree of `0` |
`withBotDegree` is to distinguish the degree of zero polynomial from the degree of non-zero constant polynomial. `MonomialOrder.degree` of both are 0, while `withBotDegree` is `⊥` for zero polynomial and 0 for non-zero constant polynomial.
`MonomialOrder.withBotDegree` is to [`MonomialOrder.degree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=MonomialOrder.degree#doc) as [`Polynomial.degree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Polynomial.degree#doc) is to [`Polynomial.natDegree`](https://leanprover-community.github.io/mathlib4_docs/find/?pattern=Polynomial.natDegree#doc).
It's upstreamized from https://github.com/WuProver/groebner_proj.
---
It's upstream from [`Groebner/MonomialOrder.lean` in the repo `WuProver/groebner_proj`](https://github.com/WuProver/groebner_proj/blob/main/Groebner/MonomialOrder.lean).
- [x] ~~depends on: #34755~~
- [x] depends on: #34756
- [x] depends on: #34758
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
245/2 |
Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
2 |
5 |
['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
mariainesdff assignee:mariainesdff |
10-73343 10 days ago |
27-16877 27 days ago |
27-18630 27 days |
| 37523 |
matthewjasper author:matthewjasper |
feat: elements of Dedekind domain approximate elements of valuation ring |
Algebra part of showing that `R` is dense in `O_v` which is used to show that `R / v` is isomorphic to
the residue field of `O_v` and construct the base change isomorphism for finite adeles.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
87/11 |
Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
mariainesdff assignee:mariainesdff |
10-73342 10 days ago |
12-29017 12 days ago |
27-44445 27 days |
| 37576 |
WenrongZou author:WenrongZou |
feat(MvPowerSeries): connection between rename and subst |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
33/6 |
Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Rename.lean |
2 |
3 |
['BryceT233', 'WenrongZou', 'github-actions'] |
mariainesdff assignee:mariainesdff |
10-73341 10 days ago |
27-83975 27 days ago |
27-83631 27 days |
| 37527 |
bryanboehnke author:bryanboehnke |
feat(LocalRing/Etale): Finite étale extensions of local rings are monogenic |
Formalization of Lemma 3.2 from https://arxiv.org/abs/2503.07846: Given a finite extension of local rings R -> S, if the extension is étale, then there exists β ∈ S such that R[β] = S. Furthermore, if f(z) ∈ R[z] is the minimal polynomial of β, then f′(β) is a unit in S. This file also includes some relevant intermediate results used in the formalization of the proof of Lemma 3.1 from the same paper.
Co-authored-by: George Peykanu
Co-authored-by: Bianca Viray
Co-authored-by: Grant Yang
---
- [ ] depends on: #36421
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
148/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/Etale.lean |
2 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
10-73153 10 days ago |
10-73177 10 days ago |
11-7410 11 days |
| 37071 |
ericluap author:ericluap |
feat: Dedekind completion of rationals is isomorphic to EReal |
|
t-order
new-contributor
|
143/4 |
Mathlib.lean,Mathlib/Data/EReal/Basic.lean,Mathlib/Data/EReal/DedekindCut.lean,Mathlib/Order/Completion.lean,Mathlib/Order/Concept.lean |
5 |
49 |
['ericluap', 'github-actions', 'vihdzp', 'wwylele'] |
vihdzp assignee:vihdzp |
10-61287 10 days ago |
10-66606 10 days ago |
16-54574 16 days |
| 38282 |
JovanGerb author:JovanGerb |
chore(Algebra/Lie/Submodule): remove duplicate instance |
This PR removes the explicit `CoeSort` instance on `LieSubmodule`, because it is identical to the one inherited from its `SetLike` instance.
This instance was added in #16509, and I'm not quite sure why it was needed then and not anymore.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
0/3 |
Mathlib/Algebra/Lie/Submodule.lean |
1 |
1 |
['github-actions'] |
nobody |
10-43199 10 days ago |
10-43484 10 days ago |
10-43140 10 days |
| 38234 |
vihdzp author:vihdzp |
chore: make `IsSuccLimit` a structure |
This lets us name the fields. Note that the `mk_iff` lemma overwrites a recently deprecated theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
35/28 |
Mathlib/Order/SuccPred/InitialSeg.lean,Mathlib/Order/SuccPred/Limit.lean |
2 |
5 |
['github-actions', 'plp127'] |
nobody |
10-31074 10 days ago |
10-79707 10 days ago |
10-81757 10 days |
| 38297 |
sgouezel author:sgouezel |
chore: fix double conflicting instances of `OmegaCompletePartialOrder` on `CompleteLattice` |
Currently, we have a direct instance `CompleteLattice -> OmegaCompletePartialOrder` (in `OmegaCompletePartialOrder.lean`), and a path `CompleteLattice -> ChainCompletePartialOrder -> OmegaCompletePartialOrder` (in `BourbakiWitt.lean`). They are defeq, but not implicit-reducibly. To solve the diamond, we remove the first instance, and move everything that depends on it from the first file to the second file.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
60/65 |
Mathlib/LinearAlgebra/Span/Basic.lean,Mathlib/Order/BourbakiWitt.lean,Mathlib/Order/Category/OmegaCompletePartialOrder.lean,Mathlib/Order/FixedPoints.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,Mathlib/Topology/OmegaCompletePartialOrder.lean |
6 |
1 |
['github-actions'] |
nobody |
10-21682 10 days ago |
10-22182 10 days ago |
10-22227 10 days |
| 38309 |
ntapiam author:ntapiam |
feat(Algebra/NonAssoc): dendriform algebras |
Define dendriform semirings and algebras
---
This PR introduces dendriform structures such as dendriform semirings
and algebras, and proves basic facts linking them to their pre-Lie
counterparts.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
270/0 |
Mathlib.lean,Mathlib/Algebra/NonAssoc/Dendriform/Defs.lean,docs/references.bib |
3 |
3 |
['github-actions'] |
nobody |
10-11281 10 days ago |
10-12619 10 days ago |
10-12373 10 days |
| 38310 |
ZRTMRH author:ZRTMRH |
feat(Combinatorics/Quiver/Schreier): word evaluation and reachability |
Adds word evaluation and reachability results to the Schreier graph API.
* `SchreierGraph.evalWord` : evaluates a word `List (S × Bool)` as an element of the ambient group, where `(s, true)` contributes `ι s` and `(s, false)` contributes `(ι s)⁻¹`.
* `SchreierGraph.evalWord_eq_lift` : agreement with `FreeGroup.lift`.
* `SchreierGraph.evalWord_mem_closure` : every word evaluates into the subgroup generated by `ι`.
* `SchreierGraph.pathFromWord` : a Bool-tagged word yields a path in `Symmetrify (SchreierGraph V ι)` from `x` to `evalWord ι w • x`.
* `SchreierGraph.reachable_iff` : two vertices are connected by a path in the symmetrification iff some element of the subgroup closure carries one to the other.
Follow-up to #36320.
This PR was written with AI assistance (Claude). The code has been reviewed by the author.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-combinatorics
large-import
|
157/0 |
Mathlib/Combinatorics/Quiver/Schreier.lean |
1 |
2 |
['github-actions'] |
nobody |
10-6248 10 days ago |
10-6327 10 days ago |
10-5983 10 days |
| 38317 |
WenrongZou author:WenrongZou |
feat(Date/Choose): add some lemmas about choose of prime pow |
In this PR, I add some lemma about choose of prime pow.
1) For primes `p` and positive integer `n`, assume that for all `i ∈ Icc 1 (n - 1)`, `choose n i` congruent to `0` module `p`, then `n = p ^ multiplicity p n`.
2) For a prime power `n`, the greatest common divisor of `choose n 1, ⋯, choose n (n - 1)` is actually the minimal prime factor of `n`.
3) For a natural number `n` greater than `1`, assume that `n` is not a prime power, then the greatest common divisor of `choose n 1, ⋯, choose n (n - 1)` is `1`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
88/1 |
Mathlib/Data/Nat/Choose/Lucas.lean |
1 |
1 |
['github-actions'] |
nobody |
9-82593 9 days ago |
9-82664 9 days ago |
9-82320 9 days |
| 37724 |
xgenereux author:xgenereux |
feat(UniqueFactorizationDomain/Multiplicity): WfDvdMonoid.max_power_factor for finset |
A version of `WfDvdMonoid.max_power_factor` for finsets/finsupp. That is, we take the highest power which divides everything in the finset.
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 |
66/10 |
Mathlib/RingTheory/UniqueFactorizationDomain/Multiplicity.lean |
1 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
9-73371 9 days ago |
23-69217 23 days ago |
23-68873 23 days |
| 38323 |
NoahW314 author:NoahW314 |
feat(RingTheory/MvPolynomial/MonomialOrder): remove unnecessary hypothesis |
Some results had a nonzero hypothesis which can be eliminated since the result holds trivially when the polynomial is zero.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
13/5 |
Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean |
1 |
1 |
['github-actions'] |
nobody |
9-66315 9 days ago |
9-66388 9 days ago |
9-66044 9 days |
| 38322 |
NoahW314 author:NoahW314 |
feat(Algebra/MvPolynomial): add monomial prod lemma |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
4/0 |
Mathlib/Algebra/MvPolynomial/Basic.lean |
1 |
1 |
['github-actions', 'wwylele'] |
nobody |
9-64651 9 days ago |
9-66969 9 days ago |
9-66625 9 days |
| 37183 |
dagurtomas author:dagurtomas |
feat(Tactic/CategoryTheory): map attribute |
Adding `@[map]` to a lemma named `H` of shape `∀ .., f = g`, where `f` and `g` are morphisms
in some category `C`, creates a new lemma named `H_map` of the form
`∀ .. {D} (func : C ⥤ D), F.map f = F.map g` and then applies
`simp only [Functor.map_comp, Functor.map_id]`.
---
[](https://gitpod.io/from-referrer/)
|
LLM-generated
t-meta
t-category-theory
|
290/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/Map.lean,MathlibTest/CategoryTheory/MapSimp.lean |
5 |
11 |
['adamtopaz', 'dagurtomas', 'github-actions', 'joelriou'] |
adamtopaz assignee:adamtopaz |
9-60714 9 days ago |
9-60772 9 days ago |
35-57622 35 days |
| 35820 |
smmercuri author:smmercuri |
feat: unit lemmas and embedding for `FiniteAdeleRing` |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
42/4 |
Mathlib/RingTheory/DedekindDomain/FiniteAdeleRing.lean |
1 |
11 |
['Multramate', 'Ruben-VandeVelde', 'github-actions', 'smmercuri'] |
mattrobball assignee:mattrobball |
9-43984 9 days ago |
9-44048 9 days ago |
55-28224 55 days |
| 38036 |
JovanGerb author:JovanGerb |
feat: `NSMul`/`NPow` type class |
This PR is adds `NSMul`, `NPow`, `ZSMul` and `ZPow` classes for the `nsmul`, `npow`, `zsmul`, `zpow` data fields.
This has a few advantages:
- If you first declare a `SMul` instance, then you don't need to manually write `nsmul := (· • ·)` and `zsmul := (· • ·)` . For `Pow`, the extra benefit is that inferring the instance is preferred over the default field `npowRecAuto`. So this helps avoid accidental diamonds.
- If you first declare a `SMul` instance on a type synonym, then `inferInstanceAs` will infer the `nsmul` field from the `SMul` instance. This makes it easier to avoid diamonds on type synonyms like `Matrix` and `MonoidAlgebra`.
- The not-yet-merged instance diamond linter will be able to detect cases where the `NSMul` and `SMul` classes do not agree.
In the process of making this PR, I have identified two existing `NPow` diamonds:
- In `Mathlib.Algebra.Order.Positive.Field`, there were two conflicting `NPow` instances.
- For `Fin`, there are two conflicting `NPow` instances. I have overwritten the one in core lean with the one from mathlib that is more computationally efficient.
TODO: the same for `QSMul` and `NNQSMul`.
---
[](https://gitpod.io/from-referrer/)
|
|
276/273 |
Mathlib/Algebra/Colimit/DirectLimit.lean,Mathlib/Algebra/FreeAlgebra.lean,Mathlib/Algebra/Group/Action/Opposite.lean,Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Int/Defs.lean,Mathlib/Algebra/Group/Opposite.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/TypeTags/Basic.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Opposite.lean,Mathlib/Algebra/Module/NatInt.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/WithTop.lean,Mathlib/Algebra/Order/Positive/Field.lean,Mathlib/Algebra/Order/Ring/Archimedean.lean,Mathlib/Algebra/Order/Ring/WithTop.lean,Mathlib/Algebra/Ring/MinimalAxioms.lean,Mathlib/Algebra/RingQuot.lean,Mathlib/CategoryTheory/Triangulated/Basic.lean,Mathlib/Data/BitVec.lean,Mathlib/Data/Complex/Basic.lean,Mathlib/Data/Rat/Defs.lean,Mathlib/Data/ZMod/Defs.lean,Mathlib/Data/ZMod/IntUnitsPower.lean,Mathlib/FieldTheory/RatFunc/Basic.lean,Mathlib/GroupTheory/GroupAction/Hom.lean,Mathlib/LinearAlgebra/Matrix/Defs.lean,Mathlib/LinearAlgebra/Matrix/ZPow.lean,Mathlib/LinearAlgebra/TensorProduct/Basic.lean,Mathlib/LinearAlgebra/TensorProduct/Defs.lean,Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/RingTheory/PolynomialLaw/Basic.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/Tactic/Abel.lean,Mathlib/Tactic/Translate/ToAdditive.lean,Mathlib/Topology/Algebra/GroupCompletion.lean,Mathlib/Topology/Algebra/Module/LinearMap.lean,MathlibTest/instance_diamonds.lean |
41 |
16 |
['JovanGerb', 'eric-wieser', 'github-actions', 'jcommelin', 'leanprover-radar', 'vihdzp'] |
nobody |
9-27061 9 days ago |
9-27953 9 days ago |
9-27899 9 days |
| 38189 |
artie2000 author:artie2000 |
feat: simplify proof of `IsAdjoinRootMonic.mkOfAdjoinEqTop'` |
* Simplify the proof of `IsAdjoinRootMonic.mkOfAdjoinEqTop'` by factoring out a lemma `OrzechProperty.bijective_of_surjective_of_finrank_le` and making use of the existing lemma `finrank_le_iff_exists_linearMap`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
22/21 |
Mathlib/LinearAlgebra/Dimension/Free.lean,Mathlib/RingTheory/IsAdjoinRoot.lean |
2 |
6 |
['Vierkantor', 'artie2000', 'github-actions'] |
nobody |
9-916 9 days ago |
12-78645 12 days ago |
12-80966 12 days |
| 38337 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): supremum |
This PR introduces the union of `Graph`, as `sup`.
Due to compatibility issue, in general, `sup` is not very well-behaved: `SemilatticeSup` is not true. In the case of incompatible edge, unlike `inf` which simply removed such edge, we include it following its incidence in the left graph. This has the benefit of associativity being true in general at the cost of commutativity.
Assuming compatibility or existence of mutual supergraph, which are shown to be equivalent in this PR, everything behaves nicely.
Co-authored-by: Peter Nelson
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
86/1 |
Mathlib/Combinatorics/Graph/Lattice.lean |
1 |
2 |
['github-actions', 'vihdzp'] |
nobody |
8-86209 8 days ago |
9-24582 9 days ago |
9-24238 9 days |
| 38244 |
vihdzp author:vihdzp |
feat: interactions between `IsSuccLimit` and `WithTop` |
---
- [x] depends on: #38240
[](https://gitpod.io/from-referrer/)
|
t-order |
60/2 |
Mathlib/Order/BoundedOrder/Basic.lean,Mathlib/Order/Cover.lean,Mathlib/Order/SuccPred/Limit.lean |
3 |
5 |
['SnirBroshi', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
8-84658 8 days ago |
9-10369 9 days ago |
9-11116 9 days |
| 38343 |
mortarsanjaya author:mortarsanjaya |
chore(Data/Nat/Cast/Order/Ring): move two Nat lemmas to Data/Nat/Basic |
These two lemmas have no correlation with `Nat.cast`, and the proof can be golfed to fit `Data/Nat/Basic`.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
22/27 |
Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Cast/Order/Ring.lean |
2 |
2 |
['github-actions'] |
nobody |
8-81674 8 days ago |
9-10142 9 days ago |
9-9798 9 days |
| 38002 |
Raph-DG author:Raph-DG |
feat(Topology): Relating irreducible components of a space to codimension one points in non dense subsets |
In this PR we show that the coheight zero points of a sober space (in the specialization order) correspond to the irreducible components. Furthermore, we show that the coheight one points of any non dense subset p of X (in the specialization order on p) have coheight zero in the specialization order on X.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-topology
|
104/0 |
Mathlib/Order/Hom/Basic.lean,Mathlib/Order/KrullDimension.lean,Mathlib/Order/Minimal.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/Sober.lean |
5 |
2 |
['ADedecker', 'github-actions'] |
urkud assignee:urkud |
8-73561 8 days ago |
15-46362 15 days ago |
15-49340 15 days |
| 38356 |
SnirBroshi author:SnirBroshi |
feat(Order/ConditionallyCompleteLattice/Finset): `sSup s ≠ ⊤` in a `CompleteLinearOrder` for a finite set without `⊤` |
---
btw `to_dual` here is blocked on #35213
[](https://gitpod.io/from-referrer/)
|
t-order |
20/0 |
Mathlib/Order/ConditionallyCompleteLattice/Finset.lean |
1 |
1 |
['github-actions'] |
nobody |
8-70927 8 days ago |
8-71002 8 days ago |
8-70658 8 days |
| 38340 |
xroblot author:xroblot |
refactor(Data/ZMod): move `coe_int_isUnit_iff_isCoprime` to `ZMod.Units` |
Move `ZMod.coe_int_isUnit_iff_isCoprime` from `Mathlib.Data.ZMod.Coprime` to `Mathlib.Data.ZMod.Units`, where it more naturally belongs as a statement about units in `ZMod`. The proof is rewritten to only use tools available in `Mathlib.Data.ZMod.Units`, avoiding the dependency on `Mathlib.Algebra.EuclideanDomain.Int`.
This is motivated by the desire to use `coe_int_isUnit_iff_isCoprime` without the overhead of importing `Mathlib.Data.ZMod.Coprime` (see #38339 for a use case).
🤖 Co-Authored with [Claude Code](https://claude.com/claude-code) |
t-data |
10/7 |
Mathlib/Data/ZMod/Coprime.lean,Mathlib/Data/ZMod/Units.lean |
2 |
1 |
['github-actions'] |
nobody |
8-47969 8 days ago |
9-5616 9 days ago |
9-5695 9 days |
| 37985 |
Raph-DG author:Raph-DG |
feat(Topology): intersections preserve Notherian-ness and Quasisober-ness |
In this PR we prove some basic topology lemmas about the preservation of noetherianness and quasisoberness under intersections.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
maintainer-merge
|
25/0 |
Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Sober.lean |
2 |
23 |
['Raph-DG', 'chrisflav', 'github-actions', 'grunweg', 'vihdzp'] |
PatrickMassot assignee:PatrickMassot |
8-7332 8 days ago |
8-7355 8 days ago |
16-68637 16 days |
| 38316 |
tannerduve author:tannerduve |
feat(Order/OmegaCompletePartialOrder): least fixed point and Scott induction |
Add `lfp` for endomorphisms on an ωCPO with a least element and its basic API (`map_lfp`, `isFixedPt_lfp`, `lfp_le_fixed`, `isLeast_lfp`) and the Scott induction theorem `lfp_induction`
Also add corresponding induction principles for `Part.fix`: `fix_scott_induction` (ω-Scott continuous functional, admissible predicate) and `fix_scott_induction_pointwise` |
new-contributor |
110/0 |
Mathlib/Control/LawfulFix.lean,Mathlib/Order/OmegaCompletePartialOrder.lean,docs/references.bib |
3 |
2 |
['github-actions'] |
nobody |
8-4375 8 days ago |
9-74330 9 days ago |
9-74512 9 days |
| 37939 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Order/Completion): embed a linear order into a dense and complete linear order |
The aim of the PR is to prove the following theorem that will be used as an input to [Sion.DMCompletion.exists_isSaddlePointOn](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Topology/Sion.html#Sion.DMCompletion.exists_isSaddlePointOn) :
*If `β` is any linear order, then there exists a complete and dense linear order `γ` together with a continuous embedding `ι : β ↪o γ` (for the order topologies on `β` and `γ`).*
Meanwhile, the PR also records various instances about dense orders and lemmas regarding the Dedekind MacNeille completion and lexicographic orders.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
206/3 |
Mathlib.lean,Mathlib/Data/Prod/Lex.lean,Mathlib/Order/Completion.lean,Mathlib/Topology/Order/Completion.lean,Mathlib/Topology/Sion.lean |
5 |
52 |
['ADedecker', 'AntoineChambert-Loir', 'github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
vihdzp assignee:vihdzp |
7-85979 7 days ago |
8-20310 8 days ago |
11-19665 11 days |
| 38325 |
Jun2M author:Jun2M |
feat(Combinatorics/Graph): EndPoint function |
This PR introduces `endPoints`: `Set` of incident vertices, given an edge (in the case of non-edge, return empty).
**Import change**: `Graph/Basic` now imports `Data/Set/Card` to allow reasoning about card of `endPoints`.
[Relavent Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/513188-CSLib/topic/New.20graph.20definitions/with/588616269)
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
large-import
|
83/3 |
Mathlib/Combinatorics/Graph/Basic.lean |
1 |
9 |
['Jun2M', 'SnirBroshi', 'eric-wieser', 'github-actions', 'mathlib-bors'] |
nobody |
7-77925 7 days ago |
8-355 8 days ago |
9-56354 9 days |
| 38390 |
mortarsanjaya author:mortarsanjaya |
feat(Data/Nat/Cast/Order/Basic): introduce new class `IsMonotoneNatCast` |
The class says that `Nat.cast` is monotone in an `AddMonoidWithOne`. Basically, we use this class when we only care about comparing the elements of a monoid that comes from the `Nat`s (so we do not have to care about the compatibility between the additive structure of the monoid and its order structure).
---
Other than that, I'm also reorganizing some section naming, and I change the proof of the `Nontrivial` instance at the bottom to using `NeZero.nontrivial`.
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
28/18 |
Mathlib/Data/Nat/Cast/Order/Basic.lean |
1 |
6 |
['github-actions', 'leanprover-radar', 'mortarsanjaya', 'vihdzp'] |
nobody |
7-77177 7 days ago |
7-81961 7 days ago |
7-81617 7 days |
| 36239 |
plp127 author:plp127 |
feat(FieldTheory/KrullTopology): define uniform group structure on galois group |
Endow the galois group of a field extension `Gal(L/K)` with the structure of a uniform group. Use this to prove some properties of the galois group earlier, for example, that the galois group is compact is immediate, and in more generality than the version proved in `FieldTheory/Galois/Profinite`. Deprecate some material which used to be used to define the krull topology, but is now unused since the krull topology comes out of the uniform structure.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
271/177 |
Mathlib/FieldTheory/Galois/Infinite.lean,Mathlib/FieldTheory/Galois/Profinite.lean,Mathlib/FieldTheory/KrullTopology.lean,Mathlib/NumberTheory/Cyclotomic/CyclotomicCharacter.lean |
4 |
17 |
['github-actions', 'mathlib-merge-conflicts', 'plp127', 'vihdzp'] |
mattrobball assignee:mattrobball |
7-73255 7 days ago |
32-64551 32 days ago |
32-64207 32 days |
| 36378 |
EtienneC30 author:EtienneC30 |
refactor: define the geometric distribution via a sum of Dirac masses |
Change the definition of `geometricMeasure p` to be
`Measure.sum (fun n ↦ ENNReal.ofReal ((1 - p) ^ n * p)) • (.dirac n))`
instead of using `PMF`. This allows to directly use API for measures instead of having to develop an API for `PMF`, which anyway is defined as a sum of Dirac masses.
Also add some results about integrals against the geometricMeasure.
---
- [x] depends on: #36355
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
|
138/25 |
Mathlib/Probability/Distributions/Geometric.lean |
1 |
41 |
['DavidLedvinka', 'EtienneC30', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'pfaffelh'] |
kex-y assignee:kex-y |
7-73254 7 days ago |
30-29688 30 days ago |
52-24613 52 days |
| 36507 |
BryceT233 author:BryceT233 |
feat(RingTheory/MvPowerSeries): various equivalences for `MvPowerSeries` |
This PR adds a number of equivalences related to power series rings and is patterned after `Mathlib/Algebra/MvPolynomial/Equiv.lean`.
To be specific, it adds:
* `MvPowerSeries.isEmptyEquiv` : The isomorphism between multivariable power series
in no variables and the ground ring.
* `MvPowerSeries.uniqueEquiv` : The isomorphism between multivariable power series
in a single variable and power series over the ground ring.
* `MvPowerSeries.mapEquiv`, `MvPowerSeries.mapAlgEquiv` : The isomorhism between
multivariable power series induced by an isomorphism between the coefficient rings.
* `MvPowerSeries.sumAlgEquiv` : The isomorphism between multivariable power series
in a sum of two types, and multivariable power series in one of the types,
with coefficients in multivariable power series in the other type.
* `MvPowerSeries.commAlgEquiv` : The isomorphism between multivariable power series
in variables `σ` of multivariable power series in variables `τ` and multivariable power series
in variables `τ` of multivariable power series in variables `σ`.
* `MvPowerSeries.optionEquivLeft` : The isomorphism between multivariable power series
in `Option σ` and power series with coefficients in `MvPowerSeries σ R`.
* `MvPowerSeries.optionEquivRight` : The isomorphism between multivariable power series
in `Option σ` and multivariable power series in `σ` with coefficients in `PowerSeries R`
* `MvPowerSeries.finSuccEquiv` : The isomorphism between multivariable power series
in `Fin (n + 1)` and power series over multivariable power series in `Fin n`.
---
[](https://gitpod.io/from-referrer/)
- [x] depends on: #35329
- [x] depends on: #36506 |
t-ring-theory |
600/4 |
Mathlib/RingTheory/MvPowerSeries/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Equiv.lean |
2 |
26 |
['AntoineChambert-Loir', 'BryceT233', 'Thmoas-Guan', 'WenrongZou', 'YaelDillies', 'eric-wieser', 'github-actions', 'mathlib-dependent-issues'] |
mattrobball assignee:mattrobball |
7-73253 7 days ago |
16-81736 16 days ago |
23-41475 23 days |
| 37374 |
NoneMore author:NoneMore |
feat(Topology/DerivedSet): add relative derived set lemmas |
Add `relDerivedSet`, `relDerivedSet_subset`, and `IsClosed.relDerivedSet_eq`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
|
17/0 |
Mathlib/Topology/DerivedSet.lean |
1 |
6 |
['NoneMore', 'github-actions', 'plp127', 'vihdzp'] |
urkud assignee:urkud |
7-73250 7 days ago |
30-21906 30 days ago |
30-74976 30 days |
| 37744 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/Ideal/IsAugmentation): define the concept of an augmentation ideal |
Define an augmentation ideal in an R-algebra A: this is an `Ideal A` which is a complement to `⊥ : Subalgebra R A` in `A`.
(This subalgebra consists of `R`-multiples of `1`.)
Co-authored with: @mariainesdff
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
98/3 |
Mathlib.lean,Mathlib/Algebra/Algebra/Subalgebra/Tower.lean,Mathlib/Algebra/Module/Submodule/RestrictScalars.lean,Mathlib/RingTheory/Ideal/IsAugmentation.lean |
4 |
1 |
['github-actions'] |
mattrobball assignee:mattrobball |
7-73249 7 days ago |
23-15330 23 days ago |
23-15282 23 days |
| 38257 |
joelriou author:joelriou |
feat(CategoryTheory): MorphismProperty.single |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
63/1 |
Mathlib/CategoryTheory/MorphismProperty/Basic.lean,Mathlib/CategoryTheory/MorphismProperty/IsSmall.lean,Mathlib/CategoryTheory/ObjectProperty/Local.lean |
3 |
6 |
['github-actions', 'joelriou', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
7-73244 7 days ago |
9-26747 9 days ago |
11-9404 11 days |
| 38393 |
staroperator author:staroperator |
refactor(ModelTheory): add typeclasses for algebraic symbols |
`Language.ring` and `Language.presburger` share the same symbols `0`, `1` and `+` and have duplicated instances on `Term` and `realize` simp lemmas. This PR makes these symbols certain typeclasses (similar to [`Language.IsOrdered`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/ModelTheory/Order.html#FirstOrder.Language.IsOrdered)) and removes the duplication. It also adds certain definability lemmas that `fun_prop` can use.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
332/201 |
Mathlib.lean,Mathlib/ModelTheory/Algebra/Classes.lean,Mathlib/ModelTheory/Algebra/Field/IsAlgClosed.lean,Mathlib/ModelTheory/Algebra/Ring/Basic.lean,Mathlib/ModelTheory/Algebra/Ring/FreeCommRing.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Basic.lean,Mathlib/ModelTheory/Arithmetic/Presburger/Definability.lean |
7 |
1 |
['github-actions'] |
nobody |
7-65619 7 days ago |
7-65677 7 days ago |
7-66885 7 days |
| 38375 |
WenrongZou author:WenrongZou |
feat(MvPowerSeries): some lemmas `truncTotal` of `subst` |
This PR adds some lemmas about truncation of total degree of a substitution.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
124/7 |
Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean |
2 |
3 |
['BryceT233', 'github-actions'] |
nobody |
7-42688 7 days ago |
8-22396 8 days ago |
8-22052 8 days |
| 38358 |
yuanyi-350 author:yuanyi-350 |
doc(1000.yaml): note more formalised theorems |
---
[](https://gitpod.io/from-referrer/)
|
documentation |
29/4 |
Mathlib/Topology/Order/IntermediateValue.lean,docs/1000.yaml |
2 |
8 |
['github-actions', 'grunweg', 'vihdzp', 'yuanyi-350'] |
nobody |
7-41418 7 days ago |
7-76301 7 days ago |
8-44006 8 days |
| 38406 |
plp127 author:plp127 |
chore(ModelTheory/Skolem): remove unnecessary `[Nonempty M]` assumption |
Removes a `[Nonempty M]` assumption by slightly modifying two proofs.
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
7/1 |
Mathlib/ModelTheory/Skolem.lean |
1 |
1 |
['github-actions'] |
nobody |
7-39476 7 days ago |
7-39547 7 days ago |
7-39203 7 days |
| 38373 |
Nicola9Falciola author:Nicola9Falciola |
feat (Algebra/FreeAbelianGroup /Finsupp) : The support of non zero element in a freeabeliangroup is non empty |
Add the lemma that for a nonzero a : FreeAbelianGroup X the support of it is non empty.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
3/0 |
Mathlib/Algebra/FreeAbelianGroup/Finsupp.lean |
1 |
7 |
['Nicola9Falciola', 'SnirBroshi', 'github-actions'] |
nobody |
7-28673 7 days ago |
7-28730 7 days ago |
8-16827 8 days |
| 38409 |
chrisflav author:chrisflav |
feat(RingTheory): totally split algebras over a field |
We show that for a totally split algebra over a field, the `k`-rational points are in bijection with the prime spectrum. We also show that an étale algebra over a separably closed field is totally split.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
122/2 |
Mathlib/Algebra/Algebra/Pi.lean,Mathlib/FieldTheory/IsSepClosed.lean,Mathlib/RingTheory/Artinian/Module.lean,Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Field.lean,Mathlib/RingTheory/TotallySplit.lean |
6 |
1 |
['github-actions'] |
nobody |
7-26230 7 days ago |
7-35297 7 days ago |
7-34953 7 days |
| 36553 |
j-loreaux author:j-loreaux |
feat: add IsMulCommutative instances for directed families of commutative subobjects |
---
- [ ] depends on: #36549
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
169/1 |
Mathlib/Algebra/Algebra/NonUnitalSubalgebra.lean,Mathlib/Algebra/Algebra/Subalgebra/Directed.lean,Mathlib/Algebra/Group/Subgroup/Lattice.lean,Mathlib/Algebra/Group/Submonoid/Membership.lean,Mathlib/Algebra/Group/Subsemigroup/Membership.lean,Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/Algebra/Star/NonUnitalSubalgebra.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/RingTheory/NonUnitalSubring/Basic.lean,Mathlib/RingTheory/NonUnitalSubsemiring/Basic.lean |
11 |
5 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'themathqueen'] |
kim-em assignee:kim-em |
7-17769 7 days ago |
7-17826 7 days ago |
29-10096 29 days |
| 35197 |
j-loreaux author:j-loreaux |
feat: Hölder framework for `lp` spaces |
---
- [ ] depends on: #35152
- [ ] depends on: #35198
[](https://gitpod.io/from-referrer/)
|
t-analysis |
311/9 |
Mathlib.lean,Mathlib/Analysis/Normed/Lp/LpEquiv.lean,Mathlib/Analysis/Normed/Lp/lpHolder.lean,Mathlib/Analysis/Normed/Lp/lpSpace.lean,Mathlib/Analysis/Normed/Operator/Basic.lean,Mathlib/Tactic/Linter/TextBased.lean |
6 |
10 |
['github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mike1729'] |
urkud assignee:urkud |
7-16437 7 days ago |
7-16493 7 days ago |
26-18928 26 days |
| 38214 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): add Euler's continued fraction |
This PR formalizes Euler’s continued fractions by providing `Euler` which construct one by giving head term and coefficients with some basic property.
We also introduce a transformation `GenContFract.toEuler` that maps a generalized continued fraction `g : GenContFract K` to an equivalent Euler-form continued fraction. |
new-contributor
t-algebra
label:t-algebra$ |
262/0 |
Mathlib.lean,Mathlib/Algebra/ContinuedFractions/Euler.lean |
2 |
15 |
['github-actions', 'mathlib-bors', 'wwylele'] |
nobody |
7-13973 7 days ago |
7-13973 7 days ago |
7-17381 7 days |
| 37914 |
j-loreaux author:j-loreaux |
feat: transfer `star`-related instances across equivalences |
This also adds `Function.Injective.{InvolutiveStar,...}` and related lemmas.
In addition we rename the existing `Equiv.star` to `Equiv.Perm.star` (without a deprecation) so that the name can be used for the declaration which transfers a `Star` instance across an `Equiv`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
95/2 |
Mathlib.lean,Mathlib/Algebra/Star/Basic.lean,Mathlib/Algebra/Star/Pointwise.lean,Mathlib/Algebra/Star/TransferInstance.lean |
4 |
5 |
['SnirBroshi', 'github-actions', 'themathqueen'] |
nobody |
7-13483 7 days ago |
7-13543 7 days ago |
7-15108 7 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
maintainer-merge
|
36/10 |
Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
2 |
13 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
7-10882 7 days ago |
7-15883 7 days ago |
35-53489 35 days |
| 38324 |
BryceT233 author:BryceT233 |
chore(RingTheory/AdicCompletion): make `AdicCompletion.map` linear on linear maps |
This PR upgrades `AdicCompletion.map` to be an R-linear map on the space of linear maps `M →ₗ[R] N`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
38/12 |
Mathlib/RingTheory/AdicCompletion/Basic.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
6-76184 6 days ago |
6-76238 6 days ago |
9-58600 9 days |
| 37956 |
artie2000 author:artie2000 |
feat(Algebra/Polynomial): lemmas about polynomial degree |
* Add various small lemmas about polynomial degree
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
28/5 |
Mathlib/Algebra/Polynomial/Degree/Defs.lean,Mathlib/Algebra/Polynomial/Degree/Operations.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/Monic.lean,MathlibTest/hintAll.lean |
5 |
7 |
['artie2000', 'github-actions', 'vihdzp'] |
themathqueen assignee:themathqueen |
6-73248 6 days ago |
18-14415 18 days ago |
18-15872 18 days |
| 38055 |
felixpernegger author:felixpernegger |
feat(Topology/EMetricSpace): add r-variation |
Redoing #37007 (I had accidently deleted my fork which nuked the PR).
See https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/p-variation for discussion.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-analysis
|
408/0 |
Mathlib.lean,Mathlib/Topology/EMetricSpace/RVariation.lean |
2 |
2 |
['felixpernegger', 'github-actions'] |
j-loreaux assignee:j-loreaux |
6-73247 6 days ago |
14-44436 14 days ago |
14-44486 14 days |
| 38090 |
chrisflav author:chrisflav |
feat(AlgebraicGeometry): rank of finite flat morphism |
From Pi1.
---
- [x] depends on: #38084
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
461/2 |
Mathlib.lean,Mathlib/Algebra/Algebra/Tower.lean,Mathlib/AlgebraicGeometry/AffineScheme.lean,Mathlib/AlgebraicGeometry/Morphisms/Affine.lean,Mathlib/AlgebraicGeometry/Morphisms/Finite.lean,Mathlib/AlgebraicGeometry/Morphisms/FinitePresentation.lean,Mathlib/AlgebraicGeometry/Morphisms/Flat.lean,Mathlib/AlgebraicGeometry/Morphisms/FlatRank.lean,Mathlib/RingTheory/Flat/Rank.lean,Mathlib/RingTheory/Localization/BaseChange.lean |
10 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
kim-em assignee:kim-em |
6-73247 6 days ago |
9-777 9 days ago |
9-16214 9 days |
| 38114 |
javgomzar author:javgomzar |
feat(FinitelyPresentedGroup): add finite groups instance |
Add IsFinitelyPresented instance for finite groups.
Co-authored-by: Hang Lu Su , Thomas Browning
---
[](https://gitpod.io/from-referrer/)
|
t-group-theory
new-contributor
large-import
|
32/3 |
Mathlib/GroupTheory/FinitelyPresentedGroup.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean |
2 |
32 |
['github-actions', 'javgomzar', 'kbuzzard', 'mathlib-merge-conflicts', 'plp127', 'tb65536', 'vihdzp'] |
mattrobball assignee:mattrobball |
6-73244 6 days ago |
8-79283 8 days ago |
11-82480 11 days |
| 38422 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Maps): `G →g G.map f` |
The existing `SimpleGraph.Embedding.map` takes an embedding and lifts it to a graph embedding `G ↪g G.map f`.
#36130 generalized `SimpleGraph.map` from embeddings to functions, so now we can get a graph homomorphism `G →g G.map f` without requiring that `f` is injective, although we still have to require that it is injective on adjacent vertices (aka a valid coloring).
This adds `Coloring.homMap`, and `Hom.map` which is identical but avoids coloring terminology/spelling.
---
I'd love for suggestions to improve the docstring of `Coloring.homMap`, I'm not sure about it :)
Are the two versions a good idea, or should we just have the coloring one? (we have `{Hom,Embedding,Iso}.comap` but only `{Embedding,Iso}.map`)
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
16/0 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
2 |
4 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
6-68216 6 days ago |
7-16993 7 days ago |
7-16706 7 days |
| 37062 |
tannerduve author:tannerduve |
feat(Computability): Turing join and semilattice structure on Turing degrees |
## Summary
- Add `Partrec.kronecker` (equality test) and `Partrec.join` (disjoint union by parity) in `Partrec.lean`
- Prove `Nat.RecursiveIn` is closed under computable conditionals (`cond_const`, `cond`)
- Show each component reduces to the join (`left_le_join`, `right_le_join`) and the join is the least upper bound (`join_le`)
- Establish `SemilatticeSup` instance on `TuringDegree` |
t-computability
new-contributor
large-import
|
311/15 |
Mathlib/Computability/Partrec.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/TuringDegree.lean |
3 |
7 |
['Komyyy', 'github-actions', 'mathlib-merge-conflicts', 'tannerduve'] |
Komyyy assignee:Komyyy |
6-64653 6 days ago |
17-22359 17 days ago |
17-84309 17 days |
| 30185 |
alreadydone author:alreadydone |
feat(MathlibTest): kernel reduction of nsmul on elliptic curve over ZMod |
Co-authored-by: @SteffenReith
---
- [x] depends on: #30144
- [x] depends on: #30181
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-number-theory
t-algebraic-geometry
maintainer-merge
label:t-algebra$ |
29/0 |
MathlibTest/EllipticCurve.lean |
1 |
11 |
['alreadydone', 'github-actions', 'joneugster', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] |
joneugster assignee:joneugster |
6-50016 6 days ago |
12-40887 12 days ago |
13-56065 13 days |
| 36815 |
EtienneC30 author:EtienneC30 |
feat: a measurable space structure on the type of continuous maps |
Endow the type `C(X, Y)` of continuous maps from `X` to `Y` with the Borel sigma-algebra coming from the compact-open topology and show that, under some assumptions on `X` and `Y`, this is equal to the restriction of the product sigma-algebra over `X → Y`.
Provide a measurable equivalence between `{f : X → Y // Continuous f}` and `C(X, Y)`.
Co-authored-by: @RemyDegenne
---
[](https://gitpod.io/from-referrer/)
|
t-topology
brownian
t-measure-probability
|
256/0 |
Mathlib.lean,Mathlib/MeasureTheory/Constructions/BorelSpace/ContinuousMap.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/Basic.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Separation/Regular.lean |
6 |
26 |
['ADedecker', 'EtienneC30', 'felixpernegger', 'github-actions'] |
urkud assignee:urkud |
6-47781 6 days ago |
21-16165 21 days ago |
35-77095 35 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`.
---
[Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Can.20I.20make.20positivity.20work.20for.20this.3F/near/578277240)
[](https://gitpod.io/from-referrer/)
|
t-meta
maintainer-merge
|
63/26 |
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 |
13 |
['JovanGerb', 'Vierkantor', 'github-actions', 'hrmacbeth', 'j-loreaux', 'joneugster', 'leanprover-radar'] |
joneugster assignee:joneugster |
6-47544 6 days ago |
9-27337 9 days ago |
38-11384 38 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 |
66/5 |
Mathlib/Data/List/Lattice.lean,Mathlib/Data/List/Perm/Lattice.lean,Mathlib/Data/Multiset/UnionInter.lean |
3 |
13 |
['Vierkantor', 'github-actions', 'vlad902'] |
Vierkantor assignee:Vierkantor |
6-43657 6 days ago |
6-43717 6 days ago |
6-46017 6 days |
| 35415 |
joneugster author:joneugster |
feat(Cache): enable partial cache in downstream projects |
Migrated to fork from: #21238.
Enable partial cache retrieval in downstream projects: `lake exe cache get MyProject.Basic` downloads only the relevant cache to build `MyProject/Basic.lean`
---
### 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
- [x] depends on: #21848
- [x] depends on: #21834
[](https://gitpod.io/from-referrer/)
|
CI
t-meta
|
27/15 |
Cache/Hashing.lean,Cache/IO.lean,Cache/Main.lean |
3 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
6-43399 6 days ago |
6-43487 6 days ago |
40-53181 40 days |
| 37267 |
xroblot author:xroblot |
feat(NumberTheory/NumberField/Cyclotomic): cardinality of the subgroup of characters associated to an intermediate field equals its degree |
New main result : `card_intermediateFieldEquivSubgroupChar`: the cardinality of the subgroup of Dirichlet characters of level `n` associated to an intermediate field `F` of `ℚ(ζₙ)/ℚ` equals the degree `[F : ℚ]`.
---
- [x] depends on: #34571
- [x] depends on: #37108
[](https://gitpod.io/from-referrer/)
|
t-number-theory |
42/1 |
Mathlib/Algebra/Group/Subgroup/Finite.lean,Mathlib/GroupTheory/FiniteAbelian/Duality.lean,Mathlib/NumberTheory/MulChar/Duality.lean,Mathlib/NumberTheory/NumberField/Cyclotomic/Galois.lean |
4 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
riccardobrasca assignee:riccardobrasca |
6-24712 6 days ago |
8-47631 8 days ago |
8-47334 8 days |
| 38380 |
linesthatinterlace author:linesthatinterlace |
feat(Data/Set): add Set.diag API |
Introduces `Set.diag (s : Set α) : Set (α × α) = {(a, a) | a ∈ s}` as the set-level companion to `Set.offDiag`, mirroring the existing `Finset.diag` / `Finset.offDiag` pairing. The type-level `Set.diagonal : Type* → Set (α × α)` is retained unchanged; `diag_univ : (univ : Set α).diag = diagonal α` (`@[simp]`) keeps it canonical when the underlying set is `univ`.
Parallels to the existing `offDiag` API (`diag_mono`, `diag_nonempty`, `diag_eq_empty`, `diag_empty`, `diag_singleton`, `diag_subset_prod`, `diag_eq_sep_prod`, `diag_inter`, `diag_union`, `diag_insert`) plus bridges `diag_union_offDiag`, `disjoint_diag_offDiag`, `prod_sdiff_diag`, `prod_sdiff_offDiag`. Also `diag_eq_image`, `image_diag` (matching `Finset.image_diag`), `preimage_coe_coe_diag`, and `Finset.coe_diag`. Note `diag_union` and `diag_insert` are unconditional (no `Disjoint` / `a ∉ s` hypothesis).
To free the `diag_` prefix for the set sense, the existing lemmas about the diagonal *map* `fun x => (x, x)` are renamed with deprecation aliases:
`range_diag` → `range_diagMap`, `diag_preimage_prod` → `diagMap_preimage_prod`, `diag_preimage_prod_self` → `diagMap_preimage_prod_self`. `diag_image` and `preimage_coe_coe_diagonal` are marked `@[deprecated]`. |
t-data |
124/15 |
Mathlib/Data/Finset/Prod.lean,Mathlib/Data/Set/Operations.lean,Mathlib/Data/Set/Prod.lean,Mathlib/MeasureTheory/MeasurableSpace/Constructions.lean,Mathlib/Topology/Compactness/Compact.lean,Mathlib/Topology/Compactness/Lindelof.lean,Mathlib/Topology/NhdsSet.lean |
7 |
2 |
['github-actions', 'linesthatinterlace'] |
nobody |
6-24701 6 days ago |
8-3969 8 days ago |
8-3625 8 days |
| 38466 |
Thmoas-Guan author:Thmoas-Guan |
feat(ModuleCat): some lemmas for `Ext` over `ModuleCat` |
some lemmas for `Ext` over `ModuleCat`
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
67/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Basic.lean,Mathlib/RingTheory/Ideal/Maps.lean |
4 |
1 |
['github-actions'] |
nobody |
6-24620 6 days ago |
6-26481 6 days ago |
6-26137 6 days |
| 37415 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): compute limits of `Monomial`s |
Prove
* `UnitMonomial.logToFun_isEquivalent_of_nonzero_head`: `log m.toFun` is asymptotically equivalent
to its first summand - `m[0] • log basis[0]` if `m[0] ≠ 0`. Using this theorem we can prove that
the asymptotic behavior of a monomial is determined by its first non-zero exponent.
* `toFun_tendsto_top_of_FirstNonzeroIsPos` and its variants: used to infer the limit of
`t.toFun` from `FirstNonzeroIsPos`/`FirstNonzeroIsNeg`/`AllZero`.
* `IsLittleO_of_lt_exps` and its variants: used to asymptotically compare two monomials.
---
- [x] depends on: #37411
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-meta |
380/1 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Basis.lean,Mathlib/Tactic/ComputeAsymptotics/Multiseries/Monomial/Basic.lean |
2 |
3 |
['github-actions', 'joneugster', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
joneugster assignee:joneugster |
6-14798 6 days ago |
6-28351 6 days ago |
6-28231 6 days |
| 38142 |
SnirBroshi author:SnirBroshi |
feat(Order/SuccPred/CompleteLinearOrder): generalize `csSup_mem_of_not_isSuccLimit` |
Given `s.Nonempty` and `BddAbove s` we can conclude `sSup s ∈ s` using either:
- `csSup_mem_of_not_isSuccPrelimit`, given `ConditionallyCompleteLinearOrder` and `¬IsSuccPrelimit (sSup s)`
- `csSup_mem_of_not_isSuccLimit`, given `ConditionallyCompleteLinearOrderBot` and `¬IsSuccLimit (sSup s)`
We generalize both to a theorem that requires `ConditionallyCompleteLinearOrder` and `¬IsSuccLimit (sSup s)`.
This creates 8 theorems that require `¬IsSuccPrelimit` but are now easily proved with the `¬IsSuccLimit` theorems, we replace `csSup_mem_of_not_isSuccPrelimit`/`exists_eq_ciSup_of_not_isSuccPrelimit` with their primed `ConditionallyCompleteLinearOrderBot` theorems, and deprecates the other 6.
Tags a couple of random `to_dual`s (in `ConditionallyCompleteLattice/Basic.lean`) to let us `to_dual`ize the new lemmas.
---
~~Should we also deprecate the 8 theorems that require `¬IsSuccPrelimit` and now use `mt`?~~
[](https://gitpod.io/from-referrer/)
|
t-order |
56/45 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/SuccPred/CompleteLinearOrder.lean,Mathlib/SetTheory/Cardinal/Order.lean |
3 |
8 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
6-6676 6 days ago |
6-6692 6 days ago |
13-68470 13 days |
| 38424 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Coloring/VertexColoring): `chromaticNumber ⊤` and other small lemmas |
- Golf `isEmpty_of_colorable_zero` and rename to `Colorable.isEmpty`
- `colorable_one_iff`: `G.Colorable 1 ↔ G = ⊥`
- Combine `chromaticNumber_eq_zero_of_isEmpty`/`isEmpty_of_chromaticNumber_eq_zero` into `chromaticNumber_eq_zero_iff : G.chromaticNumber = 0 ↔ IsEmpty V` and deprecate the `→` side
- `chromaticNumber_top_eq_enat_card`: `chromaticNumber ⊤ = ENat.card V`
- Tag `chromaticNumber_top_eq_top_of_infinite`/`chromaticNumber_eq_zero_of_isEmpty` as `simp`
- Golf `chromaticNumber_eq_one_iff`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
33/26 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean |
1 |
3 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
6-5002 6 days ago |
7-13116 7 days ago |
7-13210 7 days |
| 38465 |
tb65536 author:tb65536 |
refactor(Localization/AtPrime/Basic): add predicate for algebra instance on `Localization.AtPrime` |
Currently [Localization.AtPrime](https://leanprover-community.github.io/mathlib4_docs/Mathlib/RingTheory/Localization/AtPrime/Basic.html#Localization.AtPrime.instAlgebraOfLiesOver) induces a diamond when the top ring is already an algebra over the localization of the bottom ring (e.g., this happens for `Ideal.Fiber`). This PR resolves the diamond by turning the instance into a def and adding a predicate typeclass.
Zulip thread: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/instance.20diamond.20with.20.60Ideal.2EFiber.60
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
159/39 |
Mathlib/AlgebraicGeometry/Morphisms/QuasiFinite.lean,Mathlib/AlgebraicGeometry/Morphisms/Smooth.lean,Mathlib/NumberTheory/RamificationInertia/Unramified.lean,Mathlib/RingTheory/DedekindDomain/Different.lean,Mathlib/RingTheory/Etale/Locus.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Flat/Localization.lean,Mathlib/RingTheory/Flat/Rank.lean,Mathlib/RingTheory/Ideal/GoingDown.lean,Mathlib/RingTheory/LocalRing/ResidueField/Ideal.lean,Mathlib/RingTheory/LocalRing/ResidueField/Instances.lean,Mathlib/RingTheory/LocalRing/ResidueField/Polynomial.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean,Mathlib/RingTheory/QuasiFinite/Basic.lean,Mathlib/RingTheory/QuasiFinite/Polynomial.lean,Mathlib/RingTheory/QuasiFinite/Weakly.lean,Mathlib/RingTheory/Smooth/Fiber.lean,Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean,Mathlib/RingTheory/TensorProduct/Maps.lean,Mathlib/RingTheory/Unramified/Dedekind.lean,Mathlib/RingTheory/Unramified/LocalRing.lean,Mathlib/RingTheory/Unramified/LocalStructure.lean,Mathlib/RingTheory/Unramified/Locus.lean,Mathlib/RingTheory/ZariskisMainTheorem.lean |
24 |
1 |
['github-actions'] |
nobody |
5-83949 5 days ago |
5-84011 5 days ago |
5-85623 5 days |
| 38220 |
wwylele author:wwylele |
feat(LinearAlgebra/AffineSpace): shifting a subspace towards a point |
Split off from #36018 and excluded the Simplex part. This is preparing to calculate the volume of a simplex by integrating the cross-section created by shifting the base plane. Part of https://github.com/leanprover-community/mathlib4/pull/34826.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
137/0 |
Mathlib.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Shift.lean |
2 |
1 |
['github-actions'] |
nobody |
5-74260 5 days ago |
12-1060 12 days ago |
12-716 12 days |
| 37826 |
EtienneC30 author:EtienneC30 |
feat: lemmas about HasLaw |
- If `X` has law `µ` then `P {ω | p (X ω)} = μ {x | p x}`.
- If there is a random variable `X` with law `μ` such that `f(X)` has law `ν`, then for any random variable `Y` with law `μ`, `f(Y)` has law `ν`.
- Composition of a random variable with a measure-preserving function.
---
- [x] depends on: #37828
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
35/2 |
Mathlib/Probability/HasLaw.lean |
1 |
3 |
['RemyDegenne', 'github-actions', 'mathlib-dependent-issues'] |
kex-y assignee:kex-y |
5-73555 5 days ago |
6-46808 6 days ago |
6-48648 6 days |
| 37848 |
rwst author:rwst |
feat(RingTheory/PowerSeries/Log): log and exp as inverses |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
87/0 |
Mathlib/RingTheory/PowerSeries/Log.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
2 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
5-73553 5 days ago |
21-22685 21 days ago |
21-22341 21 days |
| 38456 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Function/L2Space` |
- rewrites `inner_indicatorConstLp_eq_setIntegral_inner` to pass through `integral_indicator` and a single `integral_congr_ae` argument
- reuses `indicatorConstLp_coeFn` directly, replacing the separate `s` and `sᶜ` integral arguments with a shorter pointwise proof
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
5/23 |
Mathlib/MeasureTheory/Function/L2Space.lean |
1 |
4 |
['github-actions', 'leanprover-radar', 'yuanyi-350'] |
kex-y assignee:kex-y |
5-71742 5 days ago |
6-41347 6 days ago |
6-41003 6 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'`
---
NOTE: this PR began as an effort to use `Subrelation` since `≤` wasn't available in this file, but it was agreed on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2330526.20use.20Subrelation.20in.20Mathlib.2ELogic.2ERelation/with/546572676) to instead make `≤` available there.
[](https://gitpod.io/from-referrer/)
|
t-logic |
158/143 |
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/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 |
22 |
21 |
['SnirBroshi', 'Vierkantor', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'thorimur', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
5-64849 5 days ago |
6-76168 6 days ago |
68-60631 68 days |
| 38442 |
Parcly-Taxel author:Parcly-Taxel |
feat: arbitrary-order induction on `Nat` |
This can be used as e.g.
```lean
induction n using stepInduction 3 with
| base n hn => ...
| step n ih => ...
``` |
t-data |
10/2 |
Mathlib/Data/Nat/Init.lean |
1 |
3 |
['Parcly-Taxel', 'SnirBroshi', 'github-actions'] |
nobody |
5-64568 5 days ago |
6-69428 6 days ago |
6-69084 6 days |
| 38489 |
Jun2M author:Jun2M |
feat(Topology/Algebra/InfiniteSum): Generalize ENNReal lemmas |
This PR generalizes many theorems in Topology/Algebra/InfiniteSum/ENNReal.lean from `ENNREal` to any type that satisfies a list of order-related instances, mostly
`[CommMonoid α] [CompleteLattice α] [CanonicallyOrderedMul α] [TopologicalSpace α] [SupConvergenceClass α]`
Deprecation of the original `ENNReal` lemmas are done in the next PR: #38193.
Related Zulip thread: [#Is there code for X? > Summing `ENat`s without topology](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Summing.20.60ENat.60s.20without.20topology/with/588756615)
---
[](https://gitpod.io/from-referrer/)
|
|
191/1 |
Mathlib/Probability/ProbabilityMassFunction/Monad.lean,Mathlib/Topology/Algebra/InfiniteSum/Order.lean |
2 |
2 |
['SnirBroshi', 'github-actions'] |
nobody |
5-61745 5 days ago |
5-75486 5 days ago |
5-76369 5 days |
| 34507 |
metakunt author:metakunt |
feat(NumberTheory/AKSPrimality): Adds the AKS primality test |
Adds the completed proof for the AKS primality test.
Everything except the final theorem is marked private as it's only needed for the final proof.
Also everything except the final theorem is namespaced with AKS.
----
Zulip discussion: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Aks.20primality.20Theorem.206.2E1.20Claim.20.28i.29.20proven |
t-number-theory |
645/0 |
Mathlib.lean,Mathlib/NumberTheory/AKSPrimality.lean |
2 |
52 |
['MichaelStollBayreuth', 'github-actions', 'jcommelin', 'kim-em', 'metakunt', 'qawbecrdtey', 'tb65536', 'vihdzp'] |
tb65536 assignee:tb65536 |
5-61679 5 days ago |
32-54623 32 days ago |
62-47040 62 days |
| 38498 |
SnirBroshi author:SnirBroshi |
feat(Order/RelIso/Basic): lift a function to an order morphism into `Relation.Map` or from `Function.onFun` |
For an `α`-relation `r` we have:
```
mapRelHom (f : α → β) : r →r Relation.Map r f f
mapRelEmbedding (f : α ↪ β) : r ↪r Relation.Map r f f
mapRelIso (f : α ≃ β) : r ≃r Relation.Map r f f
```
For a `β`-relation `r` we have:
```
onFunRelHom (f : α → β) : r.onFun f →r r
onFunRelEmbedding (f : α ↪ β) : r.onFun f ↪r r
onFunRelIso (f : α ≃ β) : r.onFun f ≃r r
```
---
These are pretty similar to `SimpleGraph.{Embedding/Iso}.map` and `SimpleGraph.{Hom/Embedding/Iso}.comap`, as [`comap`](https://github.com/leanprover-community/mathlib4/blob/9268b22206b0425419498769f780a91dee03bcf3/Mathlib/Combinatorics/SimpleGraph/Maps.lean#L117-L118) on graphs is a wrapper around `onFun`, and [`map`](https://github.com/leanprover-community/mathlib4/blob/9268b22206b0425419498769f780a91dee03bcf3/Mathlib/Combinatorics/SimpleGraph/Maps.lean#L57-L58) on graphs is *almost* a wrapper around `Relation.Map`.
btw `@[simps]` is angry at me when I try to use it on the structures that use spread syntax.
[](https://gitpod.io/from-referrer/)
|
t-order |
42/0 |
Mathlib/Order/RelIso/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
5-61569 5 days ago |
5-61644 5 days ago |
5-61300 5 days |
| 38488 |
b-mehta author:b-mehta |
feat(Data/Finset/Card): iterating a function's image on a finite set stabilises |
...and does so in a bounded number of steps (which is why this is Finset-specific).
In a later PR, I'll add this for endofunctions on a fintype, as well as add a Set.Finite version.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
40/0 |
Mathlib/Data/Finset/Card.lean,Mathlib/Data/Finset/Image.lean |
2 |
16 |
['SnirBroshi', 'b-mehta', 'github-actions'] |
nobody |
5-53117 5 days ago |
5-77825 5 days ago |
5-77481 5 days |
| 37521 |
jessealama author:jessealama |
feat(Data/Part): add Part.bind_eq_some_iff |
Add `Part.bind_eq_some_iff`, the `Part` analogue of `Option.bind_eq_some_iff`. Noticed this small gap while working on some equivalence proofs with partial functions. |
t-data |
6/0 |
Mathlib/Data/Part.lean |
1 |
3 |
['github-actions', 'jessealama', 'vihdzp'] |
TwoFX assignee:TwoFX |
5-51951 5 days ago |
29-2580 29 days ago |
29-2236 29 days |
| 36788 |
hommmmm author:hommmmm |
feat(RingTheory): height of span of a prime element is one |
## Summary
- Add `Ideal.height_span_singleton_eq_one_of_prime`: in a Noetherian integral domain, the ideal generated by a prime element has height one.
## Notes
The new theorem follows directly from `height_le_one_of_isPrincipal_of_mem_minimalPrimes` (upper bound) and the fact that `span {p} ≠ ⊥` for `p` prime (lower bound).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
new-contributor
|
20/0 |
Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean |
2 |
10 |
['Multramate', 'chrisflav', 'github-actions', 'hommmmm'] |
chrisflav assignee:chrisflav |
5-41270 5 days ago |
5-41270 5 days ago |
42-67971 42 days |
| 35504 |
JoaBjo author:JoaBjo |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property |
feat(Probability/Distributions/Exponential): add MGF, moments, and memoryless property
Add the main analytic results for the exponential distribution:
- moment-generating function `mgf id (expMeasure r) t = r / (r - t)` for `t < r`
- mean `∫ x, x ∂(expMeasure r) = r⁻¹`
- variance `Var[id; expMeasure r] = r⁻¹ ^ 2`
- `ℒp` membership for all `p`
- tail probability `P(X > x) = exp (-(r * x))`
- memoryless property `P(X > s + t | X > s) = P(X > t)`
The MGF is computed by reducing to the known improper integral `∫ exp(c * x)` on `Ioi`,
and integrability is deduced by contradiction from the positive closed-form value.
The mean and variance are computed via the Gamma function integral
`∫₀^∞ x^(n-1) exp(-r x) dx = Γ(n) / rⁿ`. The memoryless property follows from
the exponential identity `exp(-(r(s+t))) = exp(-rt) * exp(-rs)`.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-measure-probability
|
200/0 |
Mathlib/Probability/Distributions/Exponential.lean |
1 |
6 |
['JoaBjo', 'Timeroot', 'github-actions'] |
kex-y assignee:kex-y |
5-37524 5 days ago |
5-37578 5 days ago |
21-36293 21 days |
| 38344 |
robo7179 author:robo7179 |
feat(SimpleGraph/Coloring/VertexColoring): Matching is 2 colorable |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
51/0 |
Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean |
1 |
5 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
5-37492 5 days ago |
9-5036 9 days ago |
9-5078 9 days |
| 38512 |
gasparattila author:gasparattila |
chore(MeasureTheory): replace remaining `@[measurability]` attributes by `@[fun_prop]` |
Since #30511, the `@[measurability]` attribute is equivalent to `@[fun_prop]` when applied to lemmas about measurability of functions. This PR replaces these attributes by `@[fun_prop]` and adds a warning for this use of `@[measurability]`. Note that `@[measurability]` is still used for lemmas about measurability of sets.
---
[](https://gitpod.io/from-referrer/)
|
|
45/41 |
Mathlib/Analysis/Complex/UpperHalfPlane/Measure.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/AEStronglyMeasurable.lean,Mathlib/MeasureTheory/Function/StronglyMeasurable/Basic.lean,Mathlib/MeasureTheory/Group/Arithmetic.lean,Mathlib/MeasureTheory/MeasurableSpace/Basic.lean,Mathlib/MeasureTheory/Measure/AEMeasurable.lean,Mathlib/MeasureTheory/Order/Lattice.lean,Mathlib/Probability/Distributions/Gaussian/HasGaussianLaw/Basic.lean,Mathlib/Tactic/Measurability.lean |
9 |
1 |
['github-actions'] |
nobody |
5-36852 5 days ago |
5-36915 5 days ago |
5-37485 5 days |
| 36739 |
mbkybky author:mbkybky |
feat(RingTheory): UFD criteria via height `1` prime ideals and localization |
We prove the following UFD criteria via height `1` prime ideals and localization:
1. Let `R` be a Noetherian domain. Then `R` is a UFD if and only if every height `1` prime ideal is principal.
2. Let `R` be a Noetherian domain, `x ∈ R` be a prime element. If `Rₓ` is a UFD, then `R` is also a UFD.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
205/11 |
Mathlib.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/RingTheory/Ideal/Operations.lean,Mathlib/RingTheory/Ideal/UFD.lean,Mathlib/RingTheory/Localization/Away/Basic.lean,Mathlib/RingTheory/Smooth/StandardSmoothOfFree.lean,Mathlib/RingTheory/UniqueFactorizationDomain/Localization.lean,Mathlib/RingTheory/Unramified/LocalStructure.lean |
11 |
12 |
['chrisflav', 'github-actions', 'mbkybky', 'tb65536'] |
chrisflav assignee:chrisflav |
5-31171 5 days ago |
5-53901 5 days ago |
44-28803 44 days |
| 38524 |
mbkybky author:mbkybky |
doc(RingTheory/Flat): fix typos in module docstrings |
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-ring-theory
|
3/3 |
Mathlib/RingTheory/Flat/Stability.lean,Mathlib/RingTheory/Flat/TorsionFree.lean |
2 |
1 |
['github-actions'] |
nobody |
5-30284 5 days ago |
5-30362 5 days ago |
5-30018 5 days |
| 31513 |
FLDutchmann author:FLDutchmann |
feat(Tactic): `polynomial` tactic |
Implement tactic for proving equality of polynomials.
This tactic is part of a larger suite (see https://github.com/leanprover-community/mathlib4/pull/30374).
- [x] depends on: #31508
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
284/2 |
Mathlib.lean,Mathlib/Algebra/MvPolynomial/Basic.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Polynomial/Basic.lean,Mathlib/Tactic/Polynomial/Core.lean,MathlibTest/Polynomial.lean |
7 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
Vierkantor assignee:Vierkantor |
5-21258 5 days ago |
5-21317 5 days ago |
5-22534 5 days |
| 38222 |
IvanRenison author:IvanRenison |
feat(Combinatorics/SimpleGraph/Girth): add lemmas about isomorphism and girth |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
19/1 |
Mathlib/Combinatorics/SimpleGraph/Girth.lean |
1 |
6 |
['IvanRenison', 'SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
5-21114 5 days ago |
11-82427 11 days ago |
11-82083 11 days |
| 38528 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Paths): some cycle lemmas are true for circuits |
Add `IsCircuit.{not_of_nil,ne_bot,three_le_length}` by using their corresponding `IsCycle` proofs.
Also golfs a bit.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
17/9 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
1 |
['github-actions'] |
nobody |
5-20018 5 days ago |
5-20088 5 days ago |
5-19744 5 days |
| 36682 |
harahu author:harahu |
chore(Data): avoid lazy continuation in md lists |
We replace lazy continuation lines in lists with either:
- indented lines, to signify that the line is indeed a continuation line; or
- a newline, where the continuation line(s) were in fact intended to be disconnected from the list.
We do this because lazy continuation is a markdown footgun that one does well to avoid.
We also standardize indentation such that continuation lines now line up with the first line of the item they're continuing. This seems to be the solution enforced by markdown formatters, e.g. `mdformat`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
18/7 |
Mathlib/Data/Bracket.lean,Mathlib/Data/Fin/Basic.lean,Mathlib/Data/Fin/FlagRange.lean,Mathlib/Data/Finsupp/MonomialOrder.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Data/Multiset/DershowitzManna.lean,Mathlib/Data/PNat/Xgcd.lean,Mathlib/Data/Part.lean,Mathlib/Data/Stream/Defs.lean |
9 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
5-3852 5 days ago |
46-24898 46 days ago |
46-24554 46 days |
| 36686 |
euprunin author:euprunin |
chore: golf using `grind` |
The goal of this PR is to decrease the number of times lemmas are called explicitly. Any decrease in compilation time is a welcome side effect, although it is not a primary objective.
Trace profiling results (differences <30 ms considered measurement noise):
* `List.prod_map_ite`: unchanged 🎉
* `Path.Homotopy.trans_assoc_reparam`: 2938 ms before, 717 ms after 🎉
* `SimplexCategory.δ_comp_δ`: 522 ms before, 316 ms after 🎉
* `Finsupp.ext_iff'`: unchanged 🎉
* `Computation.bind_assoc`: unchanged 🎉
* `Set.piecewise_insert`: unchanged 🎉
* `ZMod.valMinAbs_mem_Ioc`: unchanged 🎉
* `Matrix.det_eq_of_forall_row_eq_smul_add_pred_aux`: 2141 ms before, 2004 ms after 🎉
Profiled using `set_option trace.profiler true in`.
---
[](https://gitpod.io/from-referrer/)
|
|
11/50 |
Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/AlgebraicTopology/FundamentalGroupoid/Basic.lean,Mathlib/AlgebraicTopology/SimplexCategory/Basic.lean,Mathlib/Data/Finsupp/Defs.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Set/Piecewise.lean,Mathlib/Data/ZMod/ValMinAbs.lean,Mathlib/LinearAlgebra/Matrix/Determinant/Basic.lean |
8 |
12 |
['artie2000', 'chenson2018', 'euprunin', 'github-actions', 'mathlib-merge-conflicts', 'ooovi'] |
nobody |
5-2791 5 days ago |
5-2815 5 days ago |
44-28121 44 days |
| 34855 |
staroperator author:staroperator |
feat(Order): use `to_dual` for `PFilter` |
This PR redefines `PFilter` to get rid of `OrderDual` and uses `to_dual` to translate theorems. The whole file of `PFilter` is now deprecated.
Some changes:
- To align with `Filter`, the order on `PFilter` is changed to the reversed set inclusion. Ultrafilters, the dual notion of maximal ideals, become minimal in this order.
- `to_dual` does not work on `sequenceOfCofinals`. I left `Order.Cofinal` and the Rasiowa–Sikorski lemma not `to_dual`-ized, and we should move them to a separate file later.
- `IsLEChain` is added to tag `to_dual`.
---
- [x] depends on: #34820
---
[](https://gitpod.io/from-referrer/)
|
t-order |
293/242 |
Mathlib/Order/Atoms.lean,Mathlib/Order/BooleanAlgebra/Basic.lean,Mathlib/Order/BooleanAlgebra/Defs.lean,Mathlib/Order/CompleteLattice/Defs.lean,Mathlib/Order/Ideal.lean,Mathlib/Order/PFilter.lean,Mathlib/Order/Preorder/Chain.lean,Mathlib/Order/PrimeIdeal.lean,Mathlib/Order/PrimeSeparator.lean,Mathlib/Order/ZornAtoms.lean,Mathlib/RingTheory/IdealFilter/Basic.lean,Mathlib/RingTheory/IdealFilter/Topology.lean,Mathlib/Tactic/Translate/ToDual.lean |
13 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
4-82086 4 days ago |
5-11324 5 days ago |
6-16706 6 days |
| 37541 |
EtienneC30 author:EtienneC30 |
feat: another version of the cardinality of the difference |
In mathlib there is `Set.ncard_diff` which states that `(t \ s).ncard = t.ncard - s.ncard` when `s ⊆ t` and `s` is finite. But one way to prove that `s` is finite is by showing that `t` is finite and using the `s ⊆ t` hypothesis, so this PR adds `Set.ncard_diff'` which assumes that `t` is finite instead of `s`.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
5/0 |
Mathlib/Data/Set/Card.lean |
1 |
1 |
['github-actions'] |
TwoFX assignee:TwoFX |
4-73172 4 days ago |
28-29216 28 days ago |
28-28872 28 days |
| 38457 |
yuanyi-350 author:yuanyi-350 |
refactor(NumberTheory): golf `Mathlib/NumberTheory/Dioph` |
- golfs `Mathlib/NumberTheory/Dioph` by replacing the arithmetic proof in `sub_dioph` with `grind`
- simplifies `div_dioph` by splitting on `y = 0 ∨ 0 < y`, then closing the positive case with `Nat.div_eq_iff` and `grind`
Extracted from #38144
[](https://gitpod.io/from-referrer/) |
codex
t-number-theory
LLM-generated
maintainer-merge
|
7/18 |
Mathlib/NumberTheory/Dioph.lean |
1 |
12 |
['github-actions', 'grunweg', 'leanprover-radar', 'yuanyi-350'] |
tb65536 assignee:tb65536 |
4-73166 4 days ago |
5-70955 5 days ago |
5-72723 5 days |
| 38525 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(Tactic/Translate/ToAdditive.lean): add con/addCon to to_additive tactic |
This PR adds the pair "con", "addCon" to the additive tactic.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
13/11 |
Mathlib/Algebra/Module/Congruence/Defs.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/GroupTheory/QuotientGroup/Defs.lean,Mathlib/Tactic/Translate/ToAdditive.lean |
4 |
1 |
['github-actions'] |
dwrensha assignee:dwrensha |
4-73163 4 days ago |
5-20380 5 days ago |
5-20067 5 days |
| 38483 |
jessealama author:jessealama |
feat(Algebra/BigOperators): add `Antiperiodic.sum_Ico_shift` |
Two lemmas about `Finset` sums of antiperiodic functions over `Ico` intervals.
* `Function.Antiperiodic.sum_Ico_shift`: For an antiperiodic function `f` with antiperiod `c`, the sum of `f` over the shifted interval `[a + c, b + c)` equals the negation of the sum over `[a, b)`.
* `Function.Antiperiodic.sum_Ico_mul_add_sum_Ico_mul_shift_eq_zero`: A bilinear cancellation variant.
Spun off from #29713 (Euler-Poincaré formula), where the bilinear form is used. |
t-algebra label:t-algebra$ |
54/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Periodic.lean |
2 |
1 |
['github-actions'] |
nobody |
4-53384 4 days ago |
5-52259 5 days ago |
5-51915 5 days |
| 38539 |
plp127 author:plp127 |
fix(Data/Bool/Basic): fix `Bool.not` problem |
Fix three lemmas which have a subterm of the form `!a = b`, which elaborates to `(!(decide (a = b))) = true`, where `(!a) = b` was probably intended. These were introduced in #534.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
3/3 |
Mathlib/Data/Bool/Basic.lean |
1 |
2 |
['github-actions', 'grunweg'] |
nobody |
4-48688 4 days ago |
4-72350 4 days ago |
4-72006 4 days |
| 38531 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Paths): `Walk.map` preserves more properties |
Adds some missing theorems about how `Walk.map` behaves with `IsTrail`/`IsPath`/`IsCircuit`/`IsCycle`.
Summary of what we have now, with the 8 new theorems and 2 renames marked:
```
IsTrail.of_map : (p.map f).IsTrail → p.IsTrail -- new
map_isTrail_iff_of_injective : f.Injective → (p.map f).IsTrail ↔ p.IsTrail
IsTrail.map : f.Injective → p.IsTrail → (p.map f).IsTrail -- renamed from map_isTrail_of_injective
IsPath.of_map : (p.map f).IsPath → p.IsPath
map_isPath_iff_of_injective : f.Injective → (p.map f).IsPath ↔ p.IsPath
IsPath.map : f.Injective f → p.IsPath → (p.map f).IsPath -- renamed from map_isPath_of_injective
IsCircuit.of_map : (p.map f).IsCircuit → p.IsCircuit -- new
map_isCircuit_iff_of_injective : f.Injective → (p.map f).IsCircuit ↔ p.IsCircuit -- new
IsCircuit.map : f.Injective → p.IsCircuit → (p.map f).IsCircuit -- new
IsCycle.of_map : (p.map f).IsCycle → p.IsCycle -- new
map_isCycle_iff_of_injective : f.Injective → (p.map f).IsCycle ↔ p.IsCycle
IsCycle.map : f.Injective → p.IsCycle → (p.map f).IsCycle
mapLe_isTrail : G ≤ G' → (p.mapLe h).IsTrail ↔ p.IsTrail
IsTrail.of_mapLe : G ≤ G' → (p.mapLe h).IsTrail → p.IsTrail
IsTrail.mapLe : G ≤ G' → p.IsTrail → (p.mapLe h).IsTrail
mapLe_isPath : G ≤ G' → (p.mapLe h).IsPath ↔ p.IsPath
IsPath.of_mapLe : G ≤ G' → (p.mapLe h).IsPath → p.IsPath
IsPath.mapLe : G ≤ G' → p.IsPath → (p.mapLe h).IsPath
mapLe_isCircuit : G ≤ G' → (p.mapLe h).IsCircuit ↔ p.IsCircuit -- new
IsCircuit.of_mapLe : G ≤ G' → (p.mapLe h).IsCircuit → p.IsCircuit -- new
IsCircuit.mapLe : G ≤ G' → p.IsCircuit → (p.mapLe h).IsCircuit -- new
mapLe_isCycle : G ≤ G' → (p.mapLe h).IsCycle ↔ p.IsCycle
IsCycle.of_mapLe : G ≤ G' → (p.mapLe h).IsCycle → p.IsCycle
IsCycle.mapLe : G ≤ G' → p.IsCycle → (p.mapLe h).IsCycle
```
---
Also golfs `map_isPath_of_injective`/`IsPath.of_map`/`map_isTrail_iff_of_injective`, they don't need induction.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
47/31 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean |
1 |
1 |
['github-actions'] |
nobody |
4-28676 4 days ago |
5-2756 5 days ago |
5-2412 5 days |
| 38549 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Copy): `Is(Ind)Contained` `completeGraph` lemmas |
- `G ⊑ completeGraph V`
- `G ⊑ completeGraph W ↔ Nonempty (V ↪ W)`
- `completeGraph V ⊴ completeGraph W ↔ Nonempty (V ↪ W)`
- `G ⊴ completeGraph W → G = ⊤`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
12/0 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
1 |
['github-actions'] |
nobody |
4-26593 4 days ago |
4-26662 4 days ago |
4-26318 4 days |
| 38529 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Girth): `egirth ⊤ = 3` when there are at least 3 vertices |
Since `Nontrivial` is not enough, we use the condition `3 ≤ ENat.card α`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
17/0 |
Mathlib/Combinatorics/SimpleGraph/Girth.lean |
1 |
5 |
['SnirBroshi', 'github-actions', 'vlad902'] |
nobody |
4-26536 4 days ago |
5-17253 5 days ago |
5-16909 5 days |
| 38548 |
adomasbaliuka author:adomasbaliuka |
feat(Algebra/Ring/BooleanRing): definitional lemmas for `Bool` ring operations |
Mathlib defines a ring structure on `Bool` but is missing definitional lemmas for the arithmetic operations.
---
Discussed on Zulip ([#Is there code for X? > `Bool.xor` same as `+` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.60Bool.2Exor.60.20same.20as.20.60.2B.60/near/590927417)), in particular, it's not immediately intuitive to everyone what the operations do.
Note that the parentheses around `^^` and `&&` are needed due to operator precedence w.r.t. `=`, see also https://github.com/leanprover-community/mathlib4/pull/38539.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
12/0 |
Mathlib/Algebra/Ring/BooleanRing.lean |
1 |
1 |
['github-actions'] |
nobody |
4-26044 4 days ago |
4-26044 4 days ago |
4-25700 4 days |
| 37835 |
YaelDillies author:YaelDillies |
doc(Algebra/Order): update mentions of `OrderedSemiring` and friends |
As of #20676, it was replaced by `IsOrderedRing`.
Not all docs were straightforward to update.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-order
label:t-algebra$ |
123/280 |
Counterexamples/HomogeneousPrimeNotPrime.lean,Counterexamples/OrderedCancelAddCommMonoidWithBounds.lean,Mathlib/Algebra/Group/Subgroup/Order.lean,Mathlib/Algebra/Group/ULift.lean,Mathlib/Algebra/Order/AddTorsor.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean,Mathlib/Algebra/Order/Group/Cone.lean,Mathlib/Algebra/Order/Group/Cyclic.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled/Defs.lean,Mathlib/Algebra/Order/Hom/Monoid.lean,Mathlib/Algebra/Order/Interval/Set/Monoid.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/ExistsOfLE.lean,Mathlib/Algebra/Order/Positive/Ring.lean,Mathlib/Algebra/Order/Ring/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/Algebra/Order/Star/Basic.lean,Mathlib/Algebra/Order/Sub/WithTop.lean,Mathlib/Algebra/Order/ToIntervalMod.lean,Mathlib/Algebra/Order/WithTop/Untop0.lean,Mathlib/Combinatorics/Pigeonhole.lean,Mathlib/Data/Finsupp/Weight.lean,Mathlib/Data/NNReal/Defs.lean,Mathlib/Data/Nat/Cast/Order/Basic.lean,Mathlib/Data/Nat/Cast/Order/Ring.lean,Mathlib/MeasureTheory/Function/LpOrder.lean,Mathlib/MeasureTheory/Measure/Typeclasses/Finite.lean,Mathlib/Order/Filter/Germ/OrderedMonoid.lean,Mathlib/RingTheory/GradedAlgebra/Radical.lean,Mathlib/RingTheory/HahnSeries/PowerSeries.lean,Mathlib/RingTheory/HahnSeries/Valuation.lean,Mathlib/RingTheory/MvPolynomial/WeightedHomogeneous.lean,Mathlib/Tactic/NormNum/Ineq.lean |
37 |
9 |
['NoahW314', 'SnirBroshi', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
4-18472 4 days ago |
4-18497 4 days ago |
19-13287 19 days |
| 38347 |
artie2000 author:artie2000 |
doc(LinearAlgebra/FreeModule/StrongRankCondition): clarify context of `commRing_strongRankCondition` |
* Replace mathematical documentation in `Mathlib.LinearAlgebra.FreeModule.StrongRankCondition`, with explanation that the file comprises a shortcut instance `commRing_strongRankCondition`
* Signpost `commRing_strongRankCondition` at both its parent instances
* Increase priority of shortcut instance `commRing_strongRankCondition` above that of its parent instances
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
28/41 |
Mathlib/LinearAlgebra/FreeModule/StrongRankCondition.lean,Mathlib/LinearAlgebra/InvariantBasisNumber.lean,Mathlib/RingTheory/FiniteType.lean |
3 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
4-10186 4 days ago |
4-10210 4 days ago |
8-59612 8 days |
| 38093 |
mortarsanjaya author:mortarsanjaya |
feat(Algebra/Order/Ring/Unbundled/Basic): add a generalization of `two_mul_le_add_of_sq_eq_mul` |
The equality `r^2 = a * b` in the hypothesis can be weakened to `r^2 ≤ a * b`.
The implementation requires adding an appropriate `ZeroLEOneClass` instance.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
maintainer-merge
label:t-algebra$ |
16/7 |
Mathlib/Algebra/Order/BigOperators/Ring/Finset.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean |
2 |
13 |
['github-actions', 'leanprover-radar', 'mortarsanjaya', 'themathqueen'] |
themathqueen assignee:themathqueen |
4-9756 4 days ago |
9-85522 9 days ago |
14-48373 14 days |
| 37008 |
BryceT233 author:BryceT233 |
feat(RingTheory/LocalRing): `IsLocalRing` for pullbacks |
We provide basic lemmas for equalizers and pullbacks of `RingHom` and `AlgHom`, and show they are local rings under suitable condtions.
This is needed in #37940 to construct a residue algebra structure on pullbacks.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
167/0 |
Mathlib.lean,Mathlib/RingTheory/LocalRing/Pullback.lean |
2 |
6 |
['BryceT233', 'github-actions', 'wwylele'] |
mattrobball assignee:mattrobball |
3-81919 3 days ago |
3-81977 3 days ago |
38-49986 38 days |
| 34713 |
dennj author:dennj |
feat(Probability/Markov): stationary distributions for stochastic matrices |
This PR proves that every row-stochastic matrix on a finite nonempty
state space has a stationary distribution in the standard simplex.
Main additions to `Mathlib/Probability/Markov/Stationary.lean`:
- `IsStationary`: A distribution μ is stationary for matrix P if μ ᵥ* P = μ
- `cesaroAverage`: Cesàro average of iterates of a vector under a matrix
- `Matrix.rowStochastic.exists_stationary_distribution`: existence theorem
The proof uses Cesàro averaging: start with uniform distribution, form
averages, extract convergent subsequence by compactness, show limit is
stationary via L¹ non-expansiveness.
Also adds `vecMul_mem_stdSimplex` to `Stochastic.lean`: multiplying a
probability vector by a row-stochastic matrix preserves simplex membership.
This is human-made PR with AI help in golfing proof and documenting the code. |
t-algebra
new-contributor
label:t-algebra$ |
166/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Stochastic.lean,Mathlib/Probability/Markov/Stationary.lean |
3 |
16 |
['dennj', 'dupuisf', 'github-actions', 'grunweg', 'j-loreaux', 'mathlib-merge-conflicts', 'riccardobrasca'] |
nobody |
3-80776 3 days ago |
3-80776 3 days ago |
14-27045 14 days |
| 38557 |
SnirBroshi author:SnirBroshi |
feat(Order/Monotone/Defs): weaken `Preorder` to `LE`/`LT` |
`Monotone`/`Antitone`/`MonotoneOn`/`AntitoneOn` can use any `LE`,
and `StrictMono`/`StrictAnti`/`StrictMonoOn`/`StrictAntiOn` can use any `LT`.
This makes it necessary to add some explicit type params (e.g. `(α := α)`) in some places that use monotone-related theorems (e.g. `Function.monotone_eval`).
---
Currently `OrderEmbedding` and `OrderIso` can use `LE` but `OrderHom` requires `Preorder` because it's defined using `Monotone`. Generalizing `Monotone` and friends will let us fix this oddity.
[](https://gitpod.io/from-referrer/)
|
t-order |
21/15 |
Mathlib/Analysis/BoxIntegral/Box/Basic.lean,Mathlib/Data/Finsupp/Lex.lean,Mathlib/Data/Finsupp/MonomialOrder/DegLex.lean,Mathlib/Order/Interval/Lex.lean,Mathlib/Order/Monotone/Defs.lean,Mathlib/RingTheory/MvPowerSeries/Trunc.lean,Mathlib/Topology/Order/MonotoneConvergence.lean |
7 |
1 |
['github-actions'] |
nobody |
3-73350 3 days ago |
3-74486 3 days ago |
3-76973 3 days |
| 33928 |
jsm28 author:jsm28 |
feat(Combinatorics/Tiling/TileSet): indexed families of tiles |
Define the type `TileSet` for indexed families of tiles (in a discrete context), and some associated definitions (including `symmetryGroup`) and API lemmas.
`TileSet` can be used for tilings of the whole space; for tilings of part of the space; for patches of tiles (extracted from a tiling by considering tiles meeting some set of points, or considered on their own without extracting from a tiling); for multiple tilings (covering the space more than once). In particular, the fact that people study multiple tilings provides a clear justification for using indexed families rather than sets of tiles, and basic definitions and API lemmas generally work for all these different uses of `TileSet` (sometimes with weak constraints such as tiles being finite, nonempty and only having finitely many tiles meeting any point of the space).
Definitions for saying e.g. "this `TileSet` is a tiling of the whole space" are to be included in subsequent files in subsequent PRs.
From AperiodicMonotilesLean.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
460/0 |
Mathlib.lean,Mathlib/Combinatorics/Tiling/TileSet.lean |
2 |
23 |
['Parcly-Taxel', 'b-mehta', 'eric-wieser', 'github-actions', 'jsm28', 'vihdzp'] |
YaelDillies assignee:YaelDillies |
3-73147 3 days ago |
107-4564 107 days ago |
107-4220 107 days |
| 34705 |
mpenciak author:mpenciak |
feat(RingTheory): Grassmannian functor |
This PR shows that the association `A → G(k, (A ⊗[R] M); A)` for an `R`-algebra `A` and `R`-module `M` forms a functor.
(AI disclosure: an early version of this PR was prepared with the help of Claude)
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
LLM-generated
large-import
|
138/2 |
Mathlib/LinearAlgebra/TensorProduct/Quotient.lean,Mathlib/LinearAlgebra/TensorProduct/Tower.lean,Mathlib/RingTheory/Grassmannian.lean |
3 |
12 |
['chrisflav', 'github-actions', 'mathlib-merge-conflicts', 'mpenciak', 'robin-carlier'] |
riccardobrasca assignee:riccardobrasca |
3-73146 3 days ago |
27-16217 27 days ago |
70-690 70 days |
| 36814 |
YaelDillies author:YaelDillies |
refactor(Combinatorics/SimpleGraph): no proof obligation in `rotate` |
If the walk doesn't go through the new vertex, return `nil` instead.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
44/31 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Hamiltonian.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean |
8 |
8 |
['SnirBroshi', 'YaelDillies', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts'] |
b-mehta assignee:b-mehta |
3-73142 3 days ago |
27-43262 27 days ago |
41-26746 41 days |
| 37722 |
SabrinaJewson author:SabrinaJewson |
feat(Order/Cover): intervals equal singletons iff |
To complement `Set.Icc_eq_singleton_iff`, this introduces:
- `Set.Ioc_eq_singleton_iff`
- `Set.Ico_eq_singleton_iff`
- `Set.Ioi_eq_singleton_iff`
- `Set.Iio_eq_singleton_iff`
- `Set.Ioo_eq_singleton_iff`
Unforunately because of the order of the ands, the last cannot be made self-dual.
---
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
39/0 |
Mathlib/Order/Cover.lean |
1 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
Komyyy and bryangingechen assignee:bryangingechen assignee:Komyyy |
3-73138 3 days ago |
21-75577 21 days ago |
23-61995 23 days |
| 38481 |
sgouezel author:sgouezel |
chore: fix implicit-reducible diamond in uniform convergence |
This one is fixing a diamond which can not be encountered on master, but shows up after the fixes in #38451 (and fixing this diamond is necessary for #38451 to go through).
The diamond is the following. If a space E is a C-module, then it is automatically an R-module (Module.complexToReal). Define now a type synonym E' to E, and declare that, if k acts on E, then it also acts on E', through `inferInstanceAs`. Then E' is a C-module (instance applied to k=C), and therefore an R-module by Module.complexToReal. But, as E is an R-module (by Module.complexToReal), then E' is also an R-module (by the instance applied to k=R). The two R-module structures are not the same implicit-reducibly, as the latter is hidden behind an opaque function crafted by `inferInstanceAs`.
To avoid this, we define the `smul` field by hand instead of hiding it behind an opaque function. This should probably be done throughout Mathlib whenever a type synonym can be endowed with real and complex module structures. I'm just fixing one example here, because it's the one that breaks in #38451.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
8/2 |
Mathlib/Topology/Algebra/Module/Spaces/UniformConvergenceCLM.lean |
1 |
1 |
['github-actions'] |
urkud assignee:urkud |
3-73129 3 days ago |
6-5800 6 days ago |
6-5456 6 days |
| 38568 |
SnirBroshi author:SnirBroshi |
feat(SimpleGraph/Connectivity/Subgraph): `w.toSubgraph.IsInduced ↔ w.IsChordless` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
6/0 |
Mathlib/Combinatorics/SimpleGraph/Connectivity/Subgraph.lean |
1 |
1 |
['github-actions'] |
nobody |
3-59844 3 days ago |
3-59914 3 days ago |
3-59570 3 days |
| 35672 |
dennj author:dennj |
feat(RingTheory/Polynomial/Cyclotomic): vanishing sums and fiber equidistribution at primitive roots |
## Summary
Building on `sum_eq_zero_iff_forall_eq` from #34592, this PR adds:
- cyclotomic_dvd_of_aeval_eq_zero, exists_int_smul_cyclotomic_of_natDegree_le_totient — integer polynomials vanishing at a primitive n-th root are divisible by cyclotomic n ℤ, and (for degree ≤ φ(n)) integer multiples of it.
- sum_eq_zero_iff_forall_eq and its ℤ / ZMod p variants — vanishing iff all coefficients equal.
- sum_fiber_eq_sum_fiber_of_sum_weighted_pow_eq_zero, card_fiber_eq_card_div_of_sum_pow_eq_zero — fiber equidistribution.
- cyclotomic_prime_coeff — the formula (cyclotomic p R).coeff i = if i < p then 1 else 0, generalising existing coeff_zero/coeff_one lemmas.
-
References: [deLauneyFlannery2011, Lemma 2.8.5] (underlying ℚ/ℕ fact) and [armario2024, Lemma 7 and Theorem 3] (ℤ statement and the fiber-counting application).
Theorems imported from: https://github.com/Latinum-Agentic-Commerce/AlgebraicDesignTheory
Human made PR with LLM used for documentation and proof golfing |
t-ring-theory
new-contributor
|
128/2 |
Mathlib/RingTheory/Polynomial/Cyclotomic/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Roots.lean,docs/references.bib |
3 |
6 |
['dennj', 'github-actions', 'grunweg', 'ocfnash'] |
ocfnash assignee:ocfnash |
3-59810 3 days ago |
3-59810 3 days ago |
13-18827 13 days |
| 37975 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): AdicCompletion of local ring is local |
In this PR, we proved that AdicCompletion of local ring wrt the maximal ideal is local ring with maximal ideal equal to the map of the original maximal ideal.
Also, removing some old junk produced by myself.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
173/5 |
Mathlib/RingTheory/AdicCompletion/LocalRing.lean |
1 |
15 |
['BryceT233', 'Thmoas-Guan', 'github-actions'] |
nobody |
3-58376 3 days ago |
17-41037 17 days ago |
17-52487 17 days |
| 37631 |
linesthatinterlace author:linesthatinterlace |
feat: add `Function.{prod,diag,fstComp,sndComp,prodMap}` |
Adds `Mathlib/Logic/Function/Init.lean`, centralising a cluster of general-purpose function operations in the `Function` namespace:
- `Function.dcomp` (notation `∘'`) — dependent composition, moved here from `Mathlib/Logic/Function/Defs.lean`.
- `Function.prod` (notation `⋏`) — pointwise pair of two (possibly dependent) functions, `(f ▽ g) i = (f i, g i)`.
- `Function.fstComp` / `Function.sndComp` — the two components of a function valued in a product; inverse to `Function.prod`.
- `Function.diag` (notation `△`) — the diagonal `a ↦ (a, a)`.
- `Function.prodMap` — dot-notation alias for `Prod.map`; collapses to `Prod.map` under `simp` so existing API applies unchanged.
`Pi.prod` is removed in favour of `Function.prod` (which is itself the dependent version); a deprecated alias is provided.
The file depends only on `Mathlib.Init` (and `Batteries.Tactic.Alias` for the deprecated alias) so it can be upstreamed to Batteries / core without pulling mathlib dependencies. |
t-logic
large-import
|
322/82 |
Archive/Sensitivity.lean,Mathlib.lean,Mathlib/Algebra/Algebra/NonUnitalHom.lean,Mathlib/Algebra/Algebra/Prod.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/Exact.lean,Mathlib/Algebra/Group/Prod.lean,Mathlib/Algebra/Lie/Prod.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Eval.lean,Mathlib/Algebra/Notation/Pi/Defs.lean,Mathlib/Algebra/Star/StarAlgHom.lean,Mathlib/Combinatorics/Nullstellensatz.lean,Mathlib/Data/Fin/Tuple/Curry.lean,Mathlib/LinearAlgebra/AffineSpace/AffineMap.lean,Mathlib/LinearAlgebra/Dimension/DivisionRing.lean,Mathlib/LinearAlgebra/Goursat.lean,Mathlib/LinearAlgebra/Prod.lean,Mathlib/LinearAlgebra/QuadraticForm/Dual.lean,Mathlib/Logic/Function/Defs.lean,Mathlib/Logic/Function/Init.lean,Mathlib/MeasureTheory/Integral/Prod.lean,Mathlib/MeasureTheory/Measure/Prod.lean,Mathlib/NumberTheory/Height/Basic.lean,Mathlib/SetTheory/Cardinal/Finite.lean,Mathlib/Topology/Algebra/ContinuousAffineMap.lean,Mathlib/Topology/Algebra/InfiniteSum/Basic.lean,Mathlib/Topology/Algebra/InfiniteSum/Constructions.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/UniformSpace/LocallyUniformConvergence.lean |
30 |
15 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'linesthatinterlace'] |
nobody |
3-53445 3 days ago |
8-39070 8 days ago |
20-83135 20 days |
| 38527 |
archiebrowne author:archiebrowne |
feat(Geometry/Manifold): continuously differentiable actions |
define the class `ContDiffSMul 𝕜 M X n` which asserts that the map `(c, x) ↦ c • x` is `n` times continuously differentiable on `M × X`.
Many of the results are the C^n analogues of those in the module Mathlib.Topology.Algebra.MulAction.
|
t-differential-geometry
new-contributor
|
281/0 |
Mathlib.lean,Mathlib/Analysis/ContDiffMulAction.lean |
2 |
11 |
['archiebrowne', 'github-actions', 'grunweg', 'peabrainiac'] |
PatrickMassot and grunweg assignee:grunweg assignee:PatrickMassot |
3-48032 3 days ago |
4-6312 4 days ago |
5-13692 5 days |
| 35733 |
mkaratarakis author:mkaratarakis |
feat: Algebraic setup and matrix coefficients for Gelfond-Schneider theorem |
This PR introduces the foundational algebraic setup and coefficient bounds required for the proof of the Gelfond-Schneider Theorem (Hilbert's Seventh Problem), which establishes that for algebraic numbers $\alpha \neq 0, 1$ and irrational algebraic $\beta$, the number $\alpha^\beta$ is transcendental.
Following the contradiction argument presented in Loo-Keng Hua's "Introduction to Number Theory" (Chapter 17.9, 490 -493) Gelfond's Proof), this file constructs the common number field $K$ and sets up the scaled algebraic integers for the auxiliary linear system. This system will later be solved via Siegel's lemma (Lemma 8.2, 490, Hua).
This PR is essentially the first half of page 490 in the book.
The proof proceeds by assuming $\gamma = \alpha^\beta$ is algebraic, meaning $\alpha$, $\beta$, and $\gamma$ all lie in an algebraic field $K$ of degree $h$.
1. Bundles the common number field $K$, the complex embeddings, and the algebraic preimages $\alpha', \beta', \gamma'$, alongside the core hypotheses of the theorem.
2. Defines the field degree $h = [K : \mathbb{Q}]$, and bounds $m = 2h + 2$ and $n = q^2 / (2m)$ to control the dimensions of the linear system.
3. Defines $c_1$, a natural number chosen so that $c_1 \alpha$, $c_1 \beta$, and $c_1 \gamma$ are algebraic integers in $K$. We prove numerous bounding and integrality lemmas (`isIntegral_c₁α`, `isInt_β_bound`, etc.).
4. Formalizes the core algebraic coefficients $(a+b\beta)^k \alpha^{al} \gamma^{bl}$ which appear in the evaluation of the derivatives of the auxiliary function $R(x)$.
5. By scaling the system by $c_1^{n-1+2mq}$, we successfully restrict the entries of our linear system matrix `A` entirely to the ring of integers $\mathcal{O}_K$, preparing it for the application of Siegel's lemma.
6. House Bounds (`c₂`) : Establishes the foundational base integer $c_2$ to bound the absolute values of the conjugates (houses) of our coefficients.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
new-contributor
|
913/49 |
Mathlib.lean,Mathlib/NumberTheory/NumberField/House.lean,Mathlib/NumberTheory/Transcendental/GelfondSchneider/MainAlg.lean,Mathlib/RingTheory/IntegralClosure/Algebra/Basic.lean |
4 |
17 |
['MichaelStollBayreuth', 'github-actions', 'mkaratarakis', 'tb65536'] |
tb65536 assignee:tb65536 |
3-44210 3 days ago |
26-20908 26 days ago |
39-1000 39 days |
| 38414 |
chrisflav author:chrisflav |
chore(RingTheory): move `IsLocalizedModule.Away` to the `Basic` file and use it everywhere |
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
42/48 |
Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/Algebra/Module/LocalizedModule/Away.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/AlgebraicGeometry/StructureSheaf.lean,Mathlib/RingTheory/LocalProperties/Exactness.lean,Mathlib/RingTheory/LocalProperties/Submodule.lean,Mathlib/RingTheory/Localization/Finiteness.lean,Mathlib/RingTheory/Localization/Free.lean,Mathlib/RingTheory/Spectrum/Prime/FreeLocus.lean,Mathlib/RingTheory/Spectrum/Prime/Module.lean,Mathlib/RingTheory/Support.lean |
12 |
6 |
['chrisflav', 'github-actions', 'grunweg', 'mathlib-merge-conflicts'] |
nobody |
3-43694 3 days ago |
3-43719 3 days ago |
6-33378 6 days |
| 38420 |
eliasjudin author:eliasjudin |
feat(Algebra/MvPolynomial): add coefficient lemma for uniqueAlgEquiv |
Adds `MvPolynomial.coeff_uniqueAlgEquiv` and `MvPolynomial.coeff_uniqueAlgEquiv_symm`,
identifying coefficients under `MvPolynomial.uniqueAlgEquiv` in both directions.
|
t-algebraic-geometry
new-contributor
|
19/0 |
Mathlib/Algebra/MvPolynomial/Equiv.lean |
1 |
5 |
['eliasjudin', 'eric-wieser', 'github-actions'] |
kim-em assignee:kim-em |
3-35463 3 days ago |
6-43332 6 days ago |
7-17097 7 days |
| 36954 |
FMLJohn author:FMLJohn |
feat(Topology/ClosedBases): `TopologicalSpace.IsClosedBasis` and `TopologicalSpace.IsClosedSubbasis s` |
In this pull request, I have defined closed bases and closed subbases of topologies, and proved some basic properties of them.
## Main definitions
* `TopologicalSpace.IsClosedBasis s`: A closed basis of a topological space `α` is a collection of closed sets `s : Set (Set α)` such that every closed subset of `α` can be written as an intersection of elements of `s`.
---
[](https://gitpod.io/from-referrer/) |
t-topology |
117/0 |
Mathlib.lean,Mathlib/Topology/Bases.lean,Mathlib/Topology/ClosedBases.lean |
3 |
19 |
['github-actions', 'scholzhannah'] |
PatrickMassot assignee:PatrickMassot |
3-33740 3 days ago |
7-33831 7 days ago |
36-35813 36 days |
| 38345 |
emlis42 author:emlis42 |
feat(NumberTheory): add Int.divisors |
This PR adds `Int.divisors` in `Mathlib/NumberTheory/Divisors.lean`.
Defines `Int.divisors` as the disjoint union of positive and negative `Nat.divisors`.
Basic lemmas:
* `mem_divisors`
* `divisors_zero`, `divisors_eq_empty`, `divisors_one`
* `one_mem_divisors`, `neg_one_mem_divisors`
* `nonempty_divisors`
* `mem_divisors_self`
* `divisors_neg`
Lemmas relating to `divisorsAntidiag`:
* `image_fst_divisorsAntidiag`
* `image_snd_divisorsAntidiag` |
t-number-theory
new-contributor
maintainer-merge
|
61/2 |
Mathlib/NumberTheory/Divisors.lean |
1 |
21 |
['Multramate', 'SnirBroshi', 'emlis42', 'github-actions', 'tb65536'] |
tb65536 assignee:tb65536 |
3-32296 3 days ago |
8-23412 8 days ago |
8-72809 8 days |
| 38052 |
WenrongZou author:WenrongZou |
feat(FormalGroup): `F(X,0)=X` and `F(0,X)=X` |
In this PR, I prove that given a formal group law `F`, then `F(X,0) = X` and `F(0,X) = X`. And modify the definition of `FormalGroup.Point` to be a subtype. And prove that this subtype is a `AddZeroClass`. Eventually we will prove that this is a `AddGroup`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
261/33 |
Mathlib/RingTheory/FormalGroup/Basic.lean,Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Basic.lean,Mathlib/RingTheory/PowerSeries/Evaluation.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
5 |
17 |
['WenrongZou', 'eric-wieser', 'github-actions', 'mariainesdff'] |
nobody |
3-26344 3 days ago |
5-41509 5 days ago |
15-84325 15 days |
| 34851 |
dennj author:dennj |
feat(Data/Matrix/Mul): add diagonal and transpose lemmas for vector operations |
This adds three lemmas for matrix-vector operations that serve as foundational support for future ML formalization:
- `vecMul_diagonal_dotProduct`: weighted inner product `x ᵥ* diagonal d ⬝ᵥ y = ∑ i, d i * x i * y i`
- `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
|
10/0 |
Mathlib/Data/Matrix/Mul.lean |
1 |
9 |
['dennj', 'eric-wieser', 'github-actions', 'joneugster', 'themathqueen'] |
joneugster assignee:joneugster |
3-17369 3 days ago |
3-74812 3 days ago |
75-42509 75 days |
| 38554 |
YaelDillies author:YaelDillies |
chore(Combinatorics/SimpleGraph): use the auto-param in `loopless` more |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
5/13 |
Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Order/Cover.lean |
8 |
6 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
3-7092 3 days ago |
3-39433 3 days ago |
3-41158 3 days |
| 37342 |
vasnesterov author:vasnesterov |
feat(Tactic/ComputeAsymptotics/Multiseries): non-primitive corecursion for Seq: more `FriendlyOperation` API |
This is a continuation of #35072.
This PR adds more API about friendly operations:
* `FriendlyOperation.coind`: a coinductive principle for proving that operation is friendly
* `FriendlyOperationClass.eq_of_bisim`: a generalisation of `Seq.eq_of_bisim'` for proving two sequences are equal.
---
- [x] depends on: #35072
This is a part of the `compute_asymptotics` tactic (#28291).
[](https://gitpod.io/from-referrer/)
|
t-data
t-meta
|
161/0 |
Mathlib/Tactic/ComputeAsymptotics/Multiseries/Corecursion.lean |
1 |
5 |
['github-actions', 'joneugster', 'mathlib-dependent-issues'] |
joneugster assignee:joneugster |
2-72995 2 days ago |
28-30126 28 days ago |
28-30114 28 days |
| 37561 |
IvanRenison author:IvanRenison |
feat(Data/List): add lemma `List.notMem_subset` |
---
Zulip question: https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/List.2EnotMem_subset/with/583146215
[](https://gitpod.io/from-referrer/)
|
t-data |
3/0 |
Mathlib/Data/List/Basic.lean |
1 |
1 |
['github-actions'] |
joneugster assignee:joneugster |
2-72994 2 days ago |
28-12398 28 days ago |
28-12054 28 days |
| 38500 |
kebekus author:kebekus |
feat: integral presentation of the proximity function of value distribution theory |
If `f : ℂ → ℂ` is meromorphic, establish a presentation of the proximity function `proximity f ⊤` as iterated circle averages. This statement can be used to compare the proximity- and logarithmic counting functions, and is one of the key ingredients in the proof of Cartan's classic formula for the characteristic function.
This is the first section of a multi-part PR, establishing Cartan's formula.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
211/0 |
Mathlib.lean,Mathlib/Analysis/Complex/ValueDistribution/Proximity/IntegralPresentation.lean |
2 |
11 |
['github-actions', 'kebekus', 'wwylele'] |
sgouezel assignee:sgouezel |
2-72990 2 days ago |
4-57328 4 days ago |
5-51687 5 days |
| 38359 |
mcdoll author:mcdoll |
feat: custom `simp` sets for translating between `Equiv` and algebraic notation |
---
The names for the simpsets are not great, I did ask on zulip, but no suggestions.
[#mathlib4 > simpsets for moving between group and equiv](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/simpsets.20for.20moving.20between.20group.20and.20equiv/with/590381093)
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-meta
label:t-algebra$ |
38/15 |
Mathlib/Algebra/Group/End.lean,Mathlib/GroupTheory/Perm/Cycle/Concrete.lean,Mathlib/GroupTheory/Perm/Fin.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Tactic/Attr/Register.lean |
5 |
4 |
['Vierkantor', 'github-actions', 'mcdoll'] |
Vierkantor assignee:Vierkantor |
2-66776 2 days ago |
2-66778 2 days ago |
3-81743 3 days |
| 38027 |
8e7 author:8e7 |
feat(Combinatorics/SimpleGraph/Star): define star graphs |
Add a new definition `starGraph` and several key lemmas. Star graphs are a trivial class of tree, often used in constructive proofs regarding trees. An example use case is shown in #38334.
---
All lemmas are hand written first, then golfed with the help of Claude Code.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
85/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Star.lean |
2 |
39 |
['8e7', 'IvanRenison', 'JovanGerb', 'SnirBroshi', 'github-actions', 'vihdzp', 'vlad902'] |
nobody |
2-65485 2 days ago |
14-65431 14 days ago |
16-63352 16 days |
| 38604 |
wwylele author:wwylele |
chore(Algebra/Module): remove some `backward.privateInPublic` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
tech debt
label:t-algebra$ |
14/30 |
Mathlib/Algebra/Module/GradedModule.lean,Mathlib/Algebra/Module/Submodule/Lattice.lean |
2 |
1 |
['github-actions'] |
nobody |
2-64428 2 days ago |
2-64499 2 days ago |
2-64155 2 days |
| 38608 |
bryangingechen author:bryangingechen |
ci(shake.yaml): weekly workflow for running lake shake --fix |
Modeled on `rm_set_option.yml` and `nolints.yml`.
cf. [#mathlib4 > shake](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/shake/with/591056575)
Prepared with Claude code. |
LLM-generated
CI
|
165/0 |
.github/workflows/shake.yaml,docs/workflows.md |
2 |
1 |
['github-actions'] |
nobody |
2-59137 2 days ago |
2-59375 2 days ago |
2-59031 2 days |
| 38596 |
JJYYY-JJY author:JJYYY-JJY |
Add an API for row echelon forms of matrices |
We write this PR to add `Mathlib.LinearAlgebra.Matrix.Echelon`, which is a theorem-oriented API for row-equivalence, echelon form, and reduced row echelon form of matrices.
The main additions are elementary row-scaling matrices, `Matrix.RowEquivalent`, echelon and reduced-echelon predicates, semantic representative predicates, existence and uniqueness of reduced echelon representatives over fields, and the noncomputable canonical representative `Matrix.rref`.
This is intentionally a semantic/theorem API rather than an executable row-reduction algorithm.
Co-authored-by: Joseph Qian
Co-authored-by: Veer Shukla
Co-authored-by: Dhruv Bhatia
Co-authored-by: Zheng Wu <1036819072@qq.com>
---
This interface is motivated by downstream work on certified row-reduction algorithms. The executable algorithms, row-operation logs, LU factorization, and determinant routines are intentionally out of scope for this PR.
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
1495/4 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Echelon.lean,Mathlib/LinearAlgebra/Matrix/Transvection.lean |
3 |
6 |
['JJYYY-JJY', 'copilot-pull-request-reviewer', 'github-actions', 'wwylele'] |
nobody |
2-57842 2 days ago |
2-66409 2 days ago |
2-66065 2 days |
| 38589 |
vlad902 author:vlad902 |
feat(SimpleGraph): add universal vertex predicate |
Add the predicate `G.IsUniversal v` to indicate that `v` is a universal vertex, i.e. connected to all other vertices in `G`. This matches the recently added `G.IsIsolated v` predicate for isolated vertices.
Co-authored-by: Justin Lai
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
51/10 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Tutte.lean,Mathlib/Combinatorics/SimpleGraph/UniversalVerts.lean |
5 |
4 |
['8e7', 'github-actions', 'vlad902'] |
nobody |
2-52370 2 days ago |
3-4269 3 days ago |
3-3925 3 days |
| 37355 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): refactor `smulShortComplex` |
Use `LinearMap.lsmul` for the `f` of `ModuleCat.smulShortComplex`, also providing new APIs for it.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
maintainer-merge
|
18/21 |
Mathlib/RingTheory/Regular/Category.lean |
1 |
21 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'robin-carlier'] |
chrisflav assignee:chrisflav |
2-49306 2 days ago |
9-19789 9 days ago |
30-23846 30 days |
| 38555 |
SnirBroshi author:SnirBroshi |
feat(Order/Hom/Basic): `OrderEmbedding.refl` and `OrderEmbedding.trans` |
Define `OrderEmbedding.refl` and `OrderEmbedding.trans`,
and add missing associativity lemmas for `OrderHom` and `OrderIso`.
Also unsqueezes a couple of terminal simps in proofs about `OrderEmbedding.birkhoffFinset`/`Finset.orderEmbOfFin`/`Finset.orderEmbOfCardLe` which use `.trans` on an `OrderEmbedding` and now get `OrderEmbedding.trans` instead of `RelEmbedding.trans`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
53/13 |
Mathlib/Data/Finset/Sort.lean,Mathlib/Order/Birkhoff.lean,Mathlib/Order/Hom/Basic.lean |
3 |
5 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
2-48810 2 days ago |
3-85932 3 days ago |
4-667 4 days |
| 38613 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra/Grp): add variant of is zero iff subsingleton |
Add variant `IsZero (GrpCat.of G)` iff `Subsingleton G`
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
10/0 |
Mathlib/Algebra/Category/Grp/Zero.lean |
1 |
1 |
['github-actions'] |
nobody |
2-47191 2 days ago |
2-47267 2 days ago |
2-46923 2 days |
| 38617 |
mariainesdff author:mariainesdff |
feat(RingTheory/DedekindDomain/Ideal/Lemmas): add nontrivial_heightOneSpectrum |
Migrated from #35533.
Co-authored by: @xgenereux.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
14/2 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean |
1 |
1 |
['github-actions'] |
chrisflav assignee:chrisflav |
2-45029 2 days ago |
2-45106 2 days ago |
2-44762 2 days |
| 38619 |
mariainesdff author:mariainesdff |
feat(Algebra/SkewPolynomial/Basic): add API |
We add API for SkewPolynomial, including monomial, coeff, C and X.
Co-authored by: @xgenereux.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
315/20 |
Mathlib/Algebra/SkewPolynomial/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
2-43948 2 days ago |
2-44033 2 days ago |
2-43689 2 days |
| 38370 |
FordUniver author:FordUniver |
feat(Data.Finset.Powerset): add filter_powerset_subset and filter_powersetCard_subset |
Add four lemmas characterising subsets of `powerset` and `powersetCard` that contain a fixed set `s`:
- `Finset.powerset_filter_sdiff`: `t.powerset.filter (s ⊆ ·) = (t \ s).powerset.image (· ∪ s)`
- `Finset.card_powerset_filter`: the count is `2 ^ (t.card - s.card)`
- `Finset.powersetCard_filter_sdiff`: `(t.powersetCard n).filter (s ⊆ ·) = ((t \ s).powersetCard (n - s.card)).image (· ∪ s)`
- `Finset.card_powersetCard_filter`: the count is `Nat.choose (t.card - s.card) (n - s.card)`
The bijection lemmas are stated as set equalities, which is strictly stronger than asserting a bijection: they imply cardinality equality, give a direct membership characterisation, and are usable as rewrites. The cardinality lemmas follow in three lines via `card_image_of_injOn`, using `LeftInvOn.injOn` to derive injectivity from the left inverse `· \ s`.
The hypothesis `s.card ≤ n` in the `powersetCard` variants is necessary: without it, natural subtraction silently gives the wrong count (`Nat.choose k 0 = 1 ≠ 0`).
Co-authored-by: Malte Jackisch
---
We ran into this while formalizing Goodman's formula on triangle densities in graphs as part of an ongoing flag algebras project in Lean, and it seemed worth upstreaming.
**Disclosure.** *This PR was developed with assistance from LLM code tools, used for Mathlib style alignment and proof compactness. The mathematical content and proof strategy originate from formalization work by Malte Jackisch (co-author) and myself; the final code has been reviewed and vouched for by both of us.* |
t-data
new-contributor
|
52/0 |
Mathlib/Data/Finset/Powerset.lean |
1 |
13 |
['FordUniver', 'github-actions', 'mathlib-bors', 'wwylele'] |
nobody |
2-42964 2 days ago |
8-11846 8 days ago |
8-28705 8 days |
| 38205 |
jcommelin author:jcommelin |
chore: reduce technical debt in FreimanHom |
This PR reduces technical debt related to the `CommRing` instance on `Fin (n + 1)`.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
large-import
|
65/27 |
Mathlib/Combinatorics/Additive/FreimanHom.lean |
1 |
9 |
['Vierkantor', 'YaelDillies', 'github-actions', 'jcommelin'] |
nobody |
2-42175 2 days ago |
3-27980 3 days ago |
7-42056 7 days |
| 36709 |
kim-em author:kim-em |
feat(DefEqAbuse): suggest minimal @[implicit_reducible] workaround |
This PR extends `#defeq_abuse` to suggest a minimal set of `@[implicit_reducible]` annotations that would make the failing tactic or command succeed with `backward.isDefEq.respectTransparency true`.
When `#defeq_abuse` detects a failure, it now runs a greedy minimisation over semireducible definitions reachable from the goal/command, finding a (possibly non-unique) minimal subset that, when temporarily marked `@[implicit_reducible]`, fixes the issue. The result is reported as an `info` message:
```
info: Workaround: the following @[implicit_reducible] annotations (a possibly non-unique minimal set) would paper over this problem,
but the real issue is likely a leaky instance somewhere.
set_option allowUnsafeReducibility true
attribute [implicit_reducible]
MyPred
```
This is a workaround, not a fix — the real cause is usually a leaky instance (which `#check_instance` from https://github.com/leanprover-community/mathlib4/pull/36706 can diagnose). But it can be useful for quick debugging.
New helpers: `collectCandidates`, `markImplicitReducible`, `withTempImplicitReducible`, `withTempImplicitReducibleCmd`, `suggestAnnotationsTac`, `suggestAnnotationsCmd`, `formatAnnotations`, `logAnnotationSuggestions`.
🤖 Prepared with Claude Code |
t-meta
LLM-generated
|
187/17 |
Mathlib/Tactic/DefEqAbuse.lean,MathlibTest/DefEqAbuse.lean |
2 |
6 |
['github-actions', 'kim-em', 'mathlib-merge-conflicts', 'thorimur'] |
dwrensha and thorimur assignee:dwrensha assignee:thorimur |
2-38250 2 days ago |
2-38295 2 days ago |
19-36162 19 days |
| 38628 |
tautschnig author:tautschnig |
feat(Data/ZMod/Basic): unit characterization for ZMod (p ^ d) |
Add two lemmas characterizing units in `ZMod (p ^ d)` for a prime `p`:
* `ZMod.isUnit_natCast_of_not_dvd_pow`: a natural number not divisible by `p` is a unit in `ZMod (p ^ d)`.
* `ZMod.prime_natCast_not_isUnit_pow`: the prime `p` is not a unit in `ZMod (p ^ d)` when `d ≥ 1`.
These complement the existing `isUnit_prime_iff_not_dvd` (which characterizes when a *prime* is a unit in `ZMod n`) by characterizing when an *arbitrary* natural number is a unit in `ZMod (p ^ d)`.
**Motivation.** Arithmetic verification over fixed-width bitvectors works in `ZMod (2 ^ d)`. A Gröbner basis solver over this ring needs to know which constants are invertible: odd constants are units (enabling algebraic simplification), while even constants are not (requiring fallback to SAT). These lemmas formalize that characterization for any prime, not just 2.
Further work related to Gröbner basis will be published once #29203 (and, before that, #34873) have been merged.
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
|
12/0 |
Mathlib/Data/ZMod/Basic.lean |
1 |
2 |
['github-actions'] |
nobody |
2-37231 2 days ago |
2-37296 2 days ago |
2-36952 2 days |
| 26304 |
Raph-DG author:Raph-DG |
feat(AlgebraicGeometry): Pushforward of algebraic cycles |
In this PR we define a notion of the "pushfoward of functions with locally finite support". We give this PR the suggestive title "pushforward of algebraic cycles" because we will go on to model algebraic cycles on a scheme X as functions from X to the integers with locally finite support.
- [x] depends on: #26225
- [x] depends on: #26259
- [x] depends on: #35807
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
162/0 |
Mathlib.lean,Mathlib/Topology/LocallyFinsupp/Pushforward.lean |
2 |
27 |
['Raph-DG', 'chrisflav', 'github-actions', 'joelriou', 'leanprover-community-bot-assistant', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
joelriou assignee:joelriou |
2-35313 2 days ago |
2-35313 2 days ago |
24-61552 24 days |
| 37850 |
Vierkantor author:Vierkantor |
feat(Logic): declare optional simprocs for commuting equality and iff |
This PR introduces two simprocs `eqComm` and `iffComm` that can use `@[simp]` lemmas on symmetrical forms of an expression: if we have a simp lemma saying `f a = b ↔ a = g b` and the goal contains `b = f a`, then we would end up with `g b = a`. I developed these in #36534. Enabling them globally proved to be quite slow (+0,44% overall build time, which corresponds to +5% `simp`ing time), so this PR only declares them (and enables them locally, using e.g. `simp [eqComm]`, when we see that it pays off in the proof).
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-meta
|
145/59 |
Archive/Imo/Imo2024Q5.lean,Mathlib/Algebra/Exact.lean,Mathlib/Algebra/Group/Pi/Lemmas.lean,Mathlib/Algebra/GroupWithZero/Defs.lean,Mathlib/Algebra/MvPolynomial/Nilpotent.lean,Mathlib/Algebra/Order/Antidiag/Finsupp.lean,Mathlib/Algebra/Polynomial/Monic.lean,Mathlib/Analysis/CStarAlgebra/ContinuousFunctionalCalculus/Pi.lean,Mathlib/Analysis/Complex/Arg.lean,Mathlib/Analysis/Normed/Module/Multilinear/Basic.lean,Mathlib/Analysis/Polynomial/MahlerMeasure.lean,Mathlib/Analysis/SpecialFunctions/Complex/Arg.lean,Mathlib/Analysis/SpecialFunctions/Gaussian/FourierTransform.lean,Mathlib/Analysis/SpecialFunctions/Pow/Real.lean,Mathlib/CategoryTheory/Preadditive/Biproducts.lean,Mathlib/Data/ENNReal/Operations.lean,Mathlib/Data/EReal/Operations.lean,Mathlib/Data/Fin/Tuple/Sort.lean,Mathlib/Data/Matrix/Diagonal.lean,Mathlib/Data/Set/Prod.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/Finite/Polynomial.lean,Mathlib/FieldTheory/SeparablyGenerated.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/Lean/Meta/Simp.lean,Mathlib/LinearAlgebra/Matrix/Permutation.lean,Mathlib/LinearAlgebra/Matrix/Stochastic.lean,Mathlib/Logic/Basic.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/NumberTheory/LegendreSymbol/GaussEisensteinLemmas.lean,Mathlib/RingTheory/MvPolynomial/MonomialOrder.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Order.lean,Mathlib/SetTheory/Ordinal/Notation.lean,Mathlib/Tactic/NormNum/Irrational.lean |
36 |
4 |
['JovanGerb', 'Vierkantor', 'github-actions'] |
JovanGerb assignee:JovanGerb |
2-29709 2 days ago |
10-16264 10 days ago |
10-22484 10 days |
| 38606 |
dennj author:dennj |
feat: preparation for Vanishing Sum of Roots of Unity |
Adds the Mathlib API extensions needed for an upcoming formalization of the Lam-style classification theorem for vanishing sums of roots of unity.
* Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean
+ `exists_eq_const_of_sum_smul_eq_zero_of_sum_eq_zero_of_linearIndependent`: if `∑ vᵢ = 0` and the first `n-1` of `n` vectors are linearly independent, every linear relation has constant coefficients.
* Mathlib/RingTheory/Radical/NatInt.lean
+ `Nat.totient_eq_div_radical_mul_totient_radical`: Euler's totient splits as `φ(n) = (n / rad n) * φ(rad n)`.
* Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean
+ `IsPrimitiveRoot.sum_range_pow_mul_div_eq_zero_of_dvd`: the `d` evenly-spaced powers of a primitive `k`-th root sum to zero, for `d ∣ k` and `1 < d`.
* Mathlib/NumberTheory/Cyclotomic/LinearDisjoint.lean (new)
+ `IsPrimitiveRoot.linearDisjoint_adjoin_pow_of_coprime`: cyclotomic subfields of coprime orders are linearly disjoint over `ℚ`.
* Mathlib/NumberTheory/Cyclotomic/LinearRelations.lean (new)
+ `IsPrimitiveRoot.coeffs_eq_of_sum_pow_eq_zero_prime_coprime`: in the cyclotomic field of order `p * m` with `p` prime coprime to `m`, any `ℚ⟮ζ^p⟯`-linear relation among powers of `ζ^m` has all coefficients equal.
---
I need these as preparation to start formalizing the theorem:
Let k be a positive integer. If a finite family of complex k-th roots of unity sums to zero, then the size of the family is a non-negative integer combination of the prime divisors of k.
---
Human-made PR with AI used for golfing and documentation |
new-contributor |
219/0 |
Mathlib.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/NumberTheory/Cyclotomic/LinearDisjoint.lean,Mathlib/NumberTheory/Cyclotomic/LinearRelations.lean,Mathlib/RingTheory/Radical/Totient.lean,Mathlib/RingTheory/RootsOfUnity/PrimitiveRoots.lean |
6 |
2 |
['github-actions'] |
nobody |
2-29473 2 days ago |
2-29545 2 days ago |
2-59048 2 days |
| 38647 |
chrisflav author:chrisflav |
chore(RingTheory/Localization): remove outdated TODO |
---
[](https://gitpod.io/from-referrer/)
|
documentation
t-ring-theory
|
3/4 |
Mathlib/RingTheory/Localization/Free.lean |
1 |
1 |
['github-actions'] |
nobody |
2-26055 2 days ago |
2-26134 2 days ago |
2-25790 2 days |
| 38640 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Constructions/Polish/EmbeddingReal` |
- simplifies the finite-case measurable-range proof to `Set.finite_range ((↑) : Fin n → ℝ)).measurableSet`
- simplifies the countably infinite-case measurable-range proof to `Nat.isClosedEmbedding_coe_real.isClosed_range.measurableSet`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
2/7 |
Mathlib/MeasureTheory/Constructions/Polish/EmbeddingReal.lean |
1 |
2 |
['github-actions', 'leanprover-radar'] |
nobody |
2-25257 2 days ago |
2-28731 2 days ago |
2-28387 2 days |
| 38649 |
chrisflav author:chrisflav |
chore(RingTheory): equality of linear map with values in finite module spreads out |
We add some corollaries of `Module.Finite.exists_smul_of_comp_eq_of_isLocalizedModule`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
75/1 |
Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/RingTheory/Localization/BaseChange.lean,Mathlib/RingTheory/Localization/Module.lean |
3 |
2 |
['github-actions'] |
nobody |
2-25118 2 days ago |
2-25333 2 days ago |
2-24989 2 days |
| 34742 |
Brian-Nugent author:Brian-Nugent |
feat(SheafCohomology): add API for Sheaf Cohomology |
Defines the long exact sequence on cohomology associated to a short exact sequence of sheaves `H.longSequence`. Also defines `H.equiv₀`, the additive equivalence between `H F 0` and `((sheafSections J AddCommGrpCat).obj (op T)).obj F` when the category has a terminal object `T`.
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-category-theory
|
88/3 |
Mathlib/Algebra/Category/Grp/ForgetCorepresentable.lean,Mathlib/CategoryTheory/Sites/Abelian.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
3 |
47 |
['Brian-Nugent', 'adamtopaz', 'dagurtomas', 'github-actions', 'joelriou', 'joneugster', 'mathlib-merge-conflicts', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
2-23091 2 days ago |
2-22913 2 days ago |
77-81455 77 days |
| 38592 |
SnirBroshi author:SnirBroshi |
feat(Logic/Embedding/Basic): `refl_trans`/`trans_refl`/`trans_assoc` |
- `(.refl α).trans f = f`
- `f.trans (.refl β) = f`
- `(f.trans g).trans h = f.trans (g.trans h)`
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
12/0 |
Mathlib/Logic/Embedding/Basic.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
nobody |
2-22773 2 days ago |
2-77109 2 days ago |
2-76765 2 days |
| 38656 |
NoahW314 author:NoahW314 |
feat(Data/Finsupp/Weight): add `Finsupp.degree_mapDomain` |
Generalize a result by removing an unnecessary hypothesis. Also simplifies the proof.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
9/8 |
Mathlib/Data/Finsupp/Weight.lean,Mathlib/Order/Filter/TendstoCofinite.lean |
2 |
2 |
['NoahW314', 'github-actions'] |
nobody |
2-20785 2 days ago |
2-22359 2 days ago |
2-22015 2 days |
| 38029 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory): lemmas for minimal primes to lessen defeq abuse |
Remove access by `.1.1` and `.1.2` to mem minimal primes.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
77/59 |
Mathlib/RingTheory/Ideal/AssociatedPrime/Localization.lean,Mathlib/RingTheory/Ideal/Height.lean,Mathlib/RingTheory/Ideal/KrullsHeightTheorem.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Basic.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Colon.lean,Mathlib/RingTheory/Ideal/MinimalPrime/Localization.lean |
6 |
6 |
['Thmoas-Guan', 'chrisflav', 'github-actions', 'themathqueen'] |
nobody |
2-19884 2 days ago |
6-20779 6 days ago |
15-61303 15 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`.
---
- [x] depends on: #36980
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
137/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Ext/Baer.lean,Mathlib/Algebra/Homology/ShortComplex/ModuleCat.lean |
3 |
48 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
dagurtomas assignee:dagurtomas |
2-19771 2 days ago |
6-47434 6 days ago |
37-27874 37 days |
| 38553 |
Whysoserioushah author:Whysoserioushah |
feat(RepresentationTheory/Homological): define Tate cohomology |
co-authored-by : class field theory team
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
CFT
label:t-algebra$ |
279/1 |
Mathlib.lean,Mathlib/RepresentationTheory/Homological/GroupCohomology/LongExactSequence.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/LongExactSequence.lean,Mathlib/RepresentationTheory/Homological/TateCohomology/Basic.lean |
4 |
18 |
['Whysoserioushah', 'faenuccio', 'github-actions', 'kbuzzard', 'riccardobrasca'] |
faenuccio assignee:faenuccio |
2-19518 2 days ago |
3-37647 3 days ago |
4-10157 4 days |
| 37189 |
Brian-Nugent author:Brian-Nugent |
feat(AlgebraicGeometry): The pushforward of a quasi-coherent sheaf between affines is quasi-coherent |
To be more precise, we show that if `AlgebraicGeometry.Scheme.Modules.fromTildeΓ` is an isomorphism then the same holds for the pushforward. This will show that being quasicoherent is stable under pushforward for affine morphisms once it is shown that `AlgebraicGeometry.Scheme.Modules.fromTildeΓ` being an isomorphism is equivalent to being quasicoherent.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
178/5 |
Mathlib/Algebra/Category/ModuleCat/Localization.lean,Mathlib/Algebra/Module/LocalizedModule/Basic.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/Topology/Sheaves/SheafCondition/Sites.lean |
4 |
23 |
['Brian-Nugent', 'chrisflav', 'github-actions', 'joelriou'] |
adamtopaz assignee:adamtopaz |
2-19108 2 days ago |
2-19774 2 days ago |
25-60553 25 days |
| 38633 |
JovanGerb author:JovanGerb |
chore: golf some `grw` proofs |
This PR cleans up a few `grw` proofs.
---
[](https://gitpod.io/from-referrer/)
|
easy |
9/20 |
Mathlib/Analysis/LocallyConvex/Bounded.lean,Mathlib/Data/Int/LeastGreatest.lean,Mathlib/MeasureTheory/Function/LpSpace/Basic.lean,Mathlib/MeasureTheory/Function/LpSpace/Indicator.lean,Mathlib/NumberTheory/Height/MvPolynomial.lean |
5 |
1 |
['github-actions'] |
nobody |
2-18383 2 days ago |
2-32933 2 days ago |
2-32589 2 days |
| 29701 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra/RingTheory): polynomial over regular ring |
In this PR, we proved that polynomial over regular ring is regular.
---
- [x] depends on: #28684
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
128/0 |
Mathlib.lean,Mathlib/RingTheory/RegularLocalRing/Polynomial.lean |
2 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
nobody |
2-16744 2 days ago |
7-41647 7 days ago |
7-41554 7 days |
| 36439 |
xgenereux author:xgenereux |
feat(Algebra/Adjoin): CoeDep instances for Algebra.adjoin on singletons |
It is a common occurrence that I need to consider an element `x` or some polynomial evaluated in `x`, `p.eval x` as an element of `Algebra.adjoin R {x}`.
This makes it so that we can write
- `(x : adjoin R {x})` instead of `⟨x, self_mem_adjoin_singleton A x⟩`
- `(p.eval x : adjoin R {x})` instead of `⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩`
This is particularly useful when we need to write the type anyways, so that we need not to write `(⟨p.aeval x, aeval_mem_adjoin_singleton A x⟩ : adjoin R {x})` anymore.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
33/3 |
Mathlib/Algebra/Algebra/Subalgebra/Lattice.lean,Mathlib/RingTheory/Adjoin/Polynomial/Basic.lean |
2 |
17 |
['Vierkantor', 'chrisflav', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'xgenereux'] |
jcommelin assignee:jcommelin |
2-7399 2 days ago |
2-23285 2 days ago |
37-60250 37 days |
| 37347 |
JovanGerb author:JovanGerb |
feat: implementation of `@[use_set_notation_for_order]` |
This PR allows the use of `⊆` notation while the underlying constant is `≤`.
Similarly for `⊂`/`<`, `⊇`/`≥` and `⊃`/`>`.
- The idea is to later extend this feature to other set notation constants, such as union/intersection.
- There are some types for which we cannot use `LE.le` as the underlying constant, such as `List` and `Multiset`. So, the elaborator for the `⊆` notation needs to make a decision which underlying constant to elaborate to, depending on the type. Sometimes the type is not known yet, which makes things awkward. Most of these cases are solved by delaying the elaboration until later when the type is known.
- However, in some cases this doesn't work either, such as `simp_rw [and_comm (_ ⊆ _)]`, where it is impossible to tell the type when elaborating the term. So, some such cases need to be fixed by making it `simp_rw [and_comm ((_ : Set _) ⊆ _)]`. This is because `simp_rw`, unlike `rw`, fully elaborates the rewrite rules before using them. A linter warns you whever there is such an ambiguity.
See also https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/Any.20infimum.20based.20version.20of.20.60OmegaCompletePartialOrder.60.3F/near/579333629
---
[](https://gitpod.io/from-referrer/)
|
t-meta
maintainer-merge
|
364/0 |
Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/SetNotationForOrder.lean,MathlibTest/SetNotationForOrder.lean |
4 |
51 |
['JovanGerb', 'Vierkantor', 'github-actions', 'thorimur'] |
alexjbest assignee:alexjbest |
2-5535 2 days ago |
17-79256 17 days ago |
31-19999 31 days |
| 37951 |
martinwintermath author:martinwintermath |
chore(Geometry/Convex/Cone): rework `PointedCone.dual` to take a cone as input in place of a set |
Rework `PointedCone.dual` to take as input a cone instead of a set. This is done to untangle the functionality of `PointedCone.dual` from `PointedCone.hull` and to align it with the signature of its submodule analogue `Submodule.orthogonalBilin` (partially, with proposed functionality from #34007). See also the discussion here: [#mathlib4 > Reorganizing bilinearity and orthogonality?](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Reorganizing.20bilinearity.20and.20orthogonality.3F/with/583882414).
Main changes:
* change signature `dual (s : Set M)` to `dual (C : PointedCone R M)`.
* deprecate `dual_hull` since now obsolete in this form, instead add `mem_dual_hull` in addition to `mem_dual`.
* deprecate all of `dual_empty`, `dual_zero` and `dual_singleton_zero` in favor of only `dual_bot`.
* deprecate `dual_univ` in favor of `dual_top`.
* add notation `R ∙₊ x` in analogy to submodule version `R ∙ x`, for use in new lemma `dual_hull_singleton`.
* deprecate `dual_insert` since now obsolete (use `Submodule.span_insert` instead).
* deprecate `dual_union`, `dual_iUnion` and `dual_sUnion` in favor of `dual_sup`, `dual_sSup` and `dual_iSup`.
* remove `dual_sup` since now obsolete and name has been reused (see above).
* add `dual_sup_ker` and `dual_univ_eq_ker` to align with (proposed) submodule analogue for `Submodule.orthogonalBilin`.
* deprecate `dual_image` in favor of `dual_map`
* add `hull_eq` (cone version of `span_eq`) since used in `basis_coord_mem_dual`.
* adjust doc-strings
Numerous changes to other files have been necessary. The dual-variants for proper cones or inner product spaces have not yet been adapted to cone-inputs, though this should happen eventually. The definition of `DualFG` has been changed to "duals of `FG`-cones" instead of "duals of finite sets" (also getting rid of `Finset` as previously requested).
---
- [x] depends on: #37950
- [x] depends on: #37542
[](https://gitpod.io/from-referrer/)
|
|
226/129 |
Mathlib/Analysis/Convex/Cone/Dual.lean,Mathlib/Analysis/Convex/Cone/InnerDual.lean,Mathlib/Analysis/Convex/Cone/TensorProduct.lean,Mathlib/Geometry/Convex/Cone/Dual.lean,Mathlib/Geometry/Convex/Cone/DualFinite.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean,Mathlib/Geometry/Convex/Cone/TensorProduct.lean |
7 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-4814 2 days ago |
2-4816 2 days ago |
2-4472 2 days |
| 35255 |
vlad902 author:vlad902 |
feat(SimpleGraph): `cycleGraph.IsContained` in every graph with a cycle |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
35/0 |
Mathlib/Combinatorics/SimpleGraph/Circulant.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
2-2661 2 days ago |
2-2687 2 days ago |
2-3290 2 days |
| 38667 |
SnirBroshi author:SnirBroshi |
feat(Order/Hom/Basic): equivalences of `Order{Hom/Embedding/Iso}` |
- `OrderHom`s are equivalent to `RelHom`s of `LE` (unlike `OrderEmbedding`/`OrderIso` they aren't defined using it)
- Congruence equivs for `OrderEmbedding`/`OrderIso` when the two sides are order-isomorphic. This already exists for `OrderHom`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
55/1 |
Mathlib/Order/Hom/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
1-83366 1 day ago |
1-83426 1 day ago |
2-456 2 days |
| 38364 |
openendings author:openendings |
feat: create Order/DirectedCompletePartialOrder/Defs.lean |
Define DirectedCompletePartialOrder and its interaction with iSup and sSup.
---
A DirectedCompletePartialOrder is equivalently:
- a partial order with LUBs of nonempty directed sets;
- what happens when you remove ⊥ from a CompletePartialOrder; or
- a ConditionallyCompletePartialOrder in which every directed set is BddAbove.
Like CPOs, DCPOs are commonly studied in denotational semantics.
Potential applications:
- [#Is there code for X? > Summing `ENat`s without topology](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Summing.20.60ENat.60s.20without.20topology/with/590070848) -- defining infinite sums in an DCPO-enriched `AddCommMonoidWithTop` such as `ENat` or `ENNReal`.
- [#Is there code for X? > Scott Induction](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Scott.20Induction/with/590112858) -- fixpoint theorems similar to `OmegaCompletePartialOrder`, generalised to arbitrary cardinalities.
[](https://gitpod.io/from-referrer/)
|
t-order
new-contributor
|
123/0 |
Mathlib.lean,Mathlib/Order/DirectedCompletePartialOrder/Defs.lean,docs/references.bib |
3 |
4 |
['SnirBroshi', 'github-actions', 'openendings'] |
nobody |
1-81748 1 day ago |
7-71868 7 days ago |
8-46350 8 days |
| 38653 |
vihdzp author:vihdzp |
chore(Order/SuccPred/Basic): use `to_dual` more |
---
[](https://gitpod.io/from-referrer/)
|
t-order |
44/231 |
Mathlib/Order/ConditionallyCompleteLattice/Basic.lean,Mathlib/Order/SuccPred/Basic.lean |
2 |
3 |
['JovanGerb', 'github-actions', 'vihdzp'] |
nobody |
1-77863 1 day ago |
1-77617 1 day ago |
2-22283 2 days |
| 38225 |
kim-em author:kim-em |
ci: block merging PRs with large import increases unless reviewed |
This PR makes the existing `large-import` label into a merge gate. PRs that significantly increase transitive imports (>2% for any modified file) are now blocked from merging until a reviewer adds the `allow-large-import` label.
### Why three labels?
Bors's `block_labels` has no conditional logic — if a label is in the list, merge is blocked unconditionally. We need "blocked unless a reviewer has approved", i.e. `large-import ∧ ¬allow-large-import`. Since bors can't express that, we use a derived label:
| Label | Managed by | Purpose |
|---|---|---|
| `large-import` | `build` job (import analysis) | Factual: this PR increases imports |
| `blocked-by-large-import` | `check-large-import` job | Operational: blocks bors |
| `allow-large-import` | Reviewer | Override: reviewer approves the increase |
Each label is managed by exactly one actor, so there is no label-fighting.
### How it works
1. The existing `build` job adds/removes `large-import` based on import analysis (unchanged).
2. A new `check-large-import` job (in the same workflow) waits for `build` to finish, then:
- If `large-import` is present and `allow-large-import` is absent → adds `blocked-by-large-import`
- Otherwise → removes `blocked-by-large-import`
3. `blocked-by-large-import` is added to `block_labels` in `bors.toml`.
When a reviewer adds `allow-large-import`, the `labeled` event re-triggers the workflow. The heavy `build` job is skipped (guarded by `github.event.action != 'labeled'`), but the lightweight `check-large-import` job runs, sees both labels, and removes `blocked-by-large-import`. Bors can now merge.
### Reviewer workflow
The CI failure message tells the reviewer to consider whether the PR could be improved by splitting files, rearranging material, or creating new intermediate files. If the import increase is reasonable, they add `allow-large-import`.
False positives can be reported on the [mathlib4 Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/large-import.20label).
🤖 Prepared with Claude Code |
CI |
78/2 |
.github/workflows/PR_summary.yml,bors.toml |
2 |
5 |
['SnirBroshi', 'github-actions', 'jcommelin', 'joneugster', 'kim-em'] |
jcommelin assignee:jcommelin |
1-75220 1 day ago |
9-78607 9 days ago |
9-78881 9 days |
| 37171 |
SnirBroshi author:SnirBroshi |
chore(Data/Int/Init): generalize `le_induction` from `Prop` to `Sort*` + def lemmas |
---
- Generallise `le_induction` from `Prop` to `Sort*` and rename to `leInduction`
- Add a few lemmas
- Simplify proofs using `lia`
- Move `inductionOn'_add_one`
[Zulip 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Add.20note.20to.20help.20search.20similar.20thms/near/535331432)
[](https://gitpod.io/from-referrer/)
|
t-data
large-import
maintainer-merge
|
56/48 |
Mathlib/Data/Int/Basic.lean,Mathlib/Data/Int/Init.lean,Mathlib/GroupTheory/CoprodI.lean |
3 |
9 |
['SnirBroshi', 'github-actions', 'joneugster', 'mathlib-merge-conflicts', 'plp127'] |
nobody |
1-73858 1 day ago |
29-62620 29 days ago |
30-69978 30 days |
| 25974 |
scholzhannah author:scholzhannah |
feat(Topology/Compactness/CompactlyCoherentSpace): compact coherentification (k-ification) |
This PR defines the notion of turning an arbitrary topological space into a compactly coherent space. Compactly coherent spaces are commonly referred to as "compactly generated spaces" or "k-spaces" in the literature while the operation of turning a space into such as space is called the "k-ification". There are however three different notions that are described with this name. To disambiguate we use the names "compactly coherent space" and "compactcoherentification" here. See [this wikipedia page](https://en.wikipedia.org/wiki/Compactly_generated_space) for an explanation of these notions.
This PR continues the work from #25318.
Original PR: https://github.com/leanprover-community/mathlib4/pull/25318
Co-authored-by: Floris van Doorn |
t-topology
large-import
|
162/5 |
Mathlib/Topology/Compactness/CompactlyCoherentSpace.lean |
1 |
6 |
['github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'scholzhannah'] |
j-loreaux assignee:j-loreaux |
1-72941 1 day ago |
13-24126 13 days ago |
161-2027 161 days |
| 29774 |
Raph-DG author:Raph-DG |
feat(AlgebraicGeometry): Order of vanishing of elements of the function field of locally noetherian, integral schemes |
In this PR, we define the order of vanishing of elements of the function field of locally noetherian, integral schemes at points of codimension 1. This is essentially just a wrapper around the API for the order of vanishing for rings (i.e. Ring.ord and Ring.ordFrac), but I think it's good to have this too for usability.
---
- [ ] depends on: #29550
- [ ] depends on: #26735
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
101/0 |
Mathlib.lean,Mathlib/AlgebraicGeometry/FunctionField.lean,Mathlib/AlgebraicGeometry/OrderOfVanishing.lean |
3 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
joelriou assignee:joelriou |
1-72940 1 day ago |
2-53366 2 days ago |
2-53694 2 days |
| 33714 |
idontgetoutmuch author:idontgetoutmuch |
feat(Mathlib/Geometry/Manifold): Riemannian metrics exist II |
Supersedes https://github.com/leanprover-community/mathlib4/pull/33519
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
|
723/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Geometry/Manifold/ExistsRiemannianMetric.lean,Mathlib/Geometry/Manifold/PartitionOfUnity.lean |
4 |
200 |
['Rida-Hamadani', 'github-actions', 'grunweg', 'idontgetoutmuch'] |
fpvandoorn assignee:fpvandoorn |
1-72937 1 day ago |
11-27006 11 days ago |
56-34115 56 days |
| 34805 |
DavidLedvinka author:DavidLedvinka |
feat(Tactic): generalize ofScientific NormNum extension to `DivisionSemiring` |
Co-authored-by: @hrmacbeth |
t-meta |
68/20 |
Mathlib/Tactic/NormNum/Inv.lean,Mathlib/Tactic/NormNum/OfScientific.lean,MathlibTest/norm_num.lean |
3 |
26 |
['DavidLedvinka', 'JovanGerb', 'b-mehta', 'eric-wieser', 'github-actions', 'mathlib-merge-conflicts', 'thorimur'] |
dwrensha assignee:dwrensha |
1-72936 1 day ago |
40-4405 40 days ago |
60-45473 60 days |
| 36806 |
grunweg author:grunweg |
fix(Tactic/Continuity): mark Continuous.comp' as unsafe |
This issue was pre-existing: `Continuous.comp'` was never full safe, as a constant function could be written as the composition of any function and a constant function (and then applying the lemma could lead to something unprovable). The change in #31607 triggered such a case: make is an unsafe rule with very high probability instead.
This change broke three proofs: one was easy to switch to fun_prop; the others seemed to depend on this being a safe rule. I have added a workaround for now.
There was another test failure, exposing a pre-existing internal bug in aesop. With smaller imports, continuity succeeds [zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/aesop.20error.20during.20proof.20reconstruction.2C.20goal.20not.20normalised/with/580202602), so I have accepted this result as fine.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
54/2 |
Mathlib/Analysis/RCLike/Basic.lean,Mathlib/Condensed/Light/TopCatAdjunction.lean,Mathlib/Condensed/TopCatAdjunction.lean,Mathlib/Topology/Continuous.lean,MathlibTest/Continuity.lean |
5 |
1 |
['github-actions'] |
thorimur assignee:thorimur |
1-72934 1 day ago |
43-25190 43 days ago |
43-24854 43 days |
| 37501 |
xgenereux author:xgenereux |
feat(DedekindDomain/AdicValuation): `intValuation` on uniformizers is `exp (-1)` |
This PR add the lemma `intValuation_val_uniformizer_eq` which is an application of #37497.
Note that I've had to reorganize the files a little bit:
1. I wanted to import `Valuation.Discrete.Basic` in `AdicValuation` but this was not possible since there was a dependency in the other direction (`Valuation.Discrete.Basic` depended on `AdicValuation`). I don't think this makes sense - we want to have access to basic definitions on general valuation in an application file like `AdicValuation`.
~~The reorganization consist of moving the `IsDiscreteValuationRing` of `Valuation.Discrete.Basic` to `AdicValuation`.~~
The reorganization consist of moving the `IsDiscreteValuationRing` section to a new file.
2. I moved some lemmas out of `Mathlib.RingTheory.Valuation.Discrete.RankOne` to the parent file `Mathlib.RingTheory.Valuation.Discrete.Basic.`. These lemmas do not need the richer imports from `RankOne` and are needed in my application.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
- [ ] depends on: #37497
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
203/167 |
Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Reduction.lean,Mathlib/NumberTheory/NumberField/Completion/FinitePlace.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/OrderOfVanishing/Noetherian.lean,Mathlib/RingTheory/Valuation/Discrete/Basic.lean,Mathlib/RingTheory/Valuation/Discrete/IsDiscreteValuationRing.lean,Mathlib/RingTheory/Valuation/Discrete/RankOne.lean |
8 |
4 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
mattrobball assignee:mattrobball |
1-72931 1 day ago |
12-50081 12 days ago |
20-41594 20 days |
| 37747 |
JovanGerb author:JovanGerb |
chore(Order/Filter/AtTopBot/Basic): use `to_dual` |
This PR uses `to_dual` for `atTop`/`atBot`.
A lot of theorems that have been tagged contain the expression `∀ a ≥ b, ...`, which means that their dual will be `∀ a, b ≥ a → ...`, which is obviourly undesirable. Hence, I would like to ask the reviewers to reconsider the possibility of merging #32985.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
56/164 |
Mathlib/Order/Filter/AtTopBot/Basic.lean |
1 |
1 |
['github-actions'] |
bryangingechen assignee:bryangingechen |
1-72930 1 day ago |
23-25621 23 days ago |
23-25277 23 days |
| 37752 |
JovanGerb author:JovanGerb |
chore(Order/CompleteLattice/Lemmas): use `to_dual` |
Use `to_dual` for lemmas about `CompleteLattice`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
27/56 |
Mathlib/Order/CompleteLattice/Lemmas.lean |
1 |
1 |
['github-actions', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
1-72929 1 day ago |
23-24297 23 days ago |
23-23953 23 days |
| 37753 |
JovanGerb author:JovanGerb |
chore(Order/Filter/Basic): use `to_dual` for `≤ᶠ` |
Use `to_dual` on lemmas about `EventuallyLE`.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
19/6 |
Mathlib/Order/Filter/Basic.lean |
1 |
2 |
['github-actions', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
1-72928 1 day ago |
23-24162 23 days ago |
23-23818 23 days |
| 38510 |
robin-carlier author:robin-carlier |
feat(Tactic/Linter): make the longLine linter configurable |
This PR adds an option `linter.style.longLine.maxLineLength`, whose value defaults at 100, and modifies the `longLine` linter so that it uses this value when determining whether a line is too long.
---
Projects downstream of Mathlib may want to have their own style conventions about line length. The currently hardcoded value of 100 does not let them use this linter in the case where they want a different convention.
[](https://gitpod.io/from-referrer/)
|
t-linter |
25/4 |
Mathlib/Tactic/Linter/Style.lean,MathlibTest/LintStyle.lean |
2 |
3 |
['github-actions', 'leanprover-radar', 'robin-carlier'] |
thorimur assignee:thorimur |
1-72922 1 day ago |
5-39145 5 days ago |
5-38815 5 days |
| 38523 |
joelriou author:joelriou |
feat(Topology/Convenient): open/closed subsets that are also `X`-generated |
Let `X : ι → Type*` be a family of topological spaces. If all the opens (resp. closed) subsets of the `X i` are `X`-generated, then any open (resp. closed) subset of an `X`-generated space is `X`-generated.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
94/0 |
Mathlib.lean,Mathlib/Topology/Convenient/OpenClosed.lean |
2 |
1 |
['github-actions'] |
urkud assignee:urkud |
1-72922 1 day ago |
5-32629 5 days ago |
5-32338 5 days |
| 38533 |
CoolRmal author:CoolRmal |
feat(Topology): subspace of a perfectly normal space is perfectly normal |
The mains theorems proved in this PR are
- A topological space is perfectly normal iff every closed set is the zero set of a continuous
function taking values in the unit interval.
- Every subspace of a perfectly normal space is perfectly normal.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
150/2 |
Mathlib.lean,Mathlib/Topology/Constructions.lean,Mathlib/Topology/Maps/Basic.lean,Mathlib/Topology/Separation/GDelta.lean,Mathlib/Topology/Separation/Hausdorff.lean,Mathlib/Topology/Separation/PerfectlyNormal.lean |
6 |
15 |
['CoolRmal', 'github-actions', 'leanprover-radar', 'scholzhannah'] |
j-loreaux assignee:j-loreaux |
1-72920 1 day ago |
4-2965 4 days ago |
4-34072 4 days |
| 38543 |
joelriou author:joelriou |
feat(AlgebraicTopology/DoldKan): morphisms which vanishes on degeneracies |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
maintainer-merge
|
58/3 |
Mathlib/AlgebraicTopology/DoldKan/Degeneracies.lean |
1 |
4 |
['github-actions', 'joelriou', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-72918 1 day ago |
4-45353 4 days ago |
4-45010 4 days |
| 38581 |
kebekus author:kebekus |
feat: integrability of terms in Cartan's formula |
If `f : ℂ → ℂ` is meromorphic, establish the circle integrability of the function `a ↦ log ‖meromorphicTrailingCoeffAt (f · - a) 0‖` and compute values of the circle integral. The circle integral in question is one of the main terms in Cartan's classic formula, describing the characteristic function `characteristic f ⊤ r` as a sum of circle averages.
This is the second section of a four-part PR, establishing Cartan's formula and its most immediate corollaries.
---
[](https://gitpod.io/from-referrer/)
|
t-topology
t-analysis
|
156/0 |
Mathlib.lean,Mathlib/Analysis/Complex/ValueDistribution/Cartan.lean,Mathlib/Topology/DiscreteSubset.lean |
3 |
2 |
['github-actions', 'kebekus'] |
j-loreaux assignee:j-loreaux |
1-72916 1 day ago |
3-20602 3 days ago |
3-20258 3 days |
| 38584 |
TJHeeringa author:TJHeeringa |
feat(Analysis/InnerProductSpace/Reproducing): Add outerKernel, mem_iff |
---
Adds the `outerKernel` definition and the theorem `mem_iff`. These are needed for proving statements involving embeddings of RKHS.
I can split `mem_of_posSemidef` and `mem_iff` off into a different pull request if that is preferred.
The theorems `mem_of_posSemidef` and `posSemidef_of_mem` are the two directions of `mem_iff`. `posSemidef_of_mem` is slightly stronger than the converse direction of `mem_iff` in the sense that it also specifies the constant `c` in the statement. The specified `c` is in fact the smallest possible `c` for which the statement holds.
The statement `mem_of_posSemidef` proves `∃ (g : H), (g : X → V) = f`. We could instead write `f ∈ (coeCLM 𝕜 (H:=H)).range`. Making this change would require the addition of the line `simp only [LinearMap.mem_range, coe_coe, coeCLM_apply]` in the beginning of the proof. The full beginning is then
```
lemma mem_of_posSemidef (f : X → V) {c : ℝ}
(hc : ((c : 𝕜) ^ 2 • kernel H - outerKernel 𝕜 f).PosSemidef) : f ∈ (coeCLM 𝕜 (H:=H)).range := by
simp only [LinearMap.mem_range, coe_coe, coeCLM_apply]
let Laux : ...
```
Making a `MemRKHS` like MemLp and MemSobolev and then writing `MemRKHS H f` is also an option. Happy to change it to whatever is preferred.
The proof of `mem_of_posSemidef` is based on the idea that any function f in the RKHS satisfies `=\sum_{n} ` for `x_n\in X` and `v_n\in V` by the reproducing property. We define the operator L(\sum_n K(\cdot,x_n)v_n) = \sum_{n} . This is bounded by the condition based on the kernels, and thus extends to a bounded linear operator on the RKHS. Its Riesz' representer agrees pointwise with f.
AI:
When asking how to avoid Classical.choose in constructing the operator L, Claude suggested the approach of going through the quotient. I made the proof using Claude as supplementary Loogle. Afterwards, I asked it to help shorted the proofs. Some suggestions for `mem_of_posSemidef` were applied. The other suggestions were not helping or not correct.
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
126/1 |
Mathlib/Analysis/InnerProductSpace/Reproducing.lean |
1 |
2 |
['github-actions'] |
ADedecker assignee:ADedecker |
1-72915 1 day ago |
3-15081 3 days ago |
3-15115 3 days |
| 38598 |
khwilson author:khwilson |
feat(Analysis/Convex/Basic): two useful lemmas on pointwise operations |
In proofs about locally convex spaces, it's common to need that `(1/2) * s + (1/2) * s = s` for convex `s` and that `closure s <= s + s` when `s` is open and contains `0`. We add these lemmas, which will be used ultimately in a proof of Michael's selection theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
15/1 |
Mathlib/Analysis/Convex/Basic.lean,Mathlib/Topology/Algebra/Group/Pointwise.lean |
2 |
1 |
['github-actions'] |
mcdoll assignee:mcdoll |
1-72915 1 day ago |
2-68090 2 days ago |
2-67746 2 days |
| 38599 |
khwilson author:khwilson |
feat(Topology/Algebra/IsUniformGroup): characteriztaion of uniform cauchy sequences in topological groups |
Topological groups had several lemmas about uniform convergence, but were missing a lemma about a sequence being a uniform cauchy sequence. This PR fills that gap.
This is a simplifying lemma on the way to Michael's selection theorem.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
8/0 |
Mathlib/Topology/Algebra/IsUniformGroup/Basic.lean |
1 |
1 |
['github-actions'] |
urkud assignee:urkud |
1-72914 1 day ago |
2-67950 2 days ago |
2-67606 2 days |
| 38600 |
khwilson author:khwilson |
feat(Topology/Semicontinuity): additional definitions for correspondences |
On the way to proving Michael's selection theorem, several extra notions related to hemicontinuity are introduced. Specifically, the notion of a correspondence having lower sections and it having an open graph.
The first construction is what is used in the proof of Michael's theorem to generate approximations to the target selection. The second is used in the iterative step to generate new lower hemicontinuous maps.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
349/0 |
Mathlib/Topology/Semicontinuity/Defs.lean |
1 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
1-72913 1 day ago |
2-67520 2 days ago |
2-67176 2 days |
| 38629 |
joelriou author:joelriou |
feat(CategoryTheory/Localization): quotient categories that are localizations |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
221/1 |
Mathlib.lean,Mathlib/AlgebraicTopology/ModelCategory/PathObject.lean,Mathlib/AlgebraicTopology/ModelCategory/RightHomotopy.lean,Mathlib/CategoryTheory/Localization/OfQuotient.lean,Mathlib/CategoryTheory/Quotient.lean |
5 |
12 |
['github-actions', 'joelriou', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
1-72911 1 day ago |
2-26499 2 days ago |
2-34483 2 days |
| 38693 |
wwylele author:wwylele |
feat(Algebra/Module): simp lemma for composing domRestrict and codRestrict |
---
I am aware that this lemma is true for all function-like classes that has `domRestrict` and `codRestrict`. I didn't add the same for all of them, and only added the one I needed in #37295. Should we manually add this for all function classes? Or there should be some metaprogramming to generate them?
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
6/0 |
Mathlib/Algebra/Module/Submodule/LinearMap.lean |
1 |
1 |
['github-actions'] |
nobody |
1-71176 1 day ago |
1-72886 1 day ago |
1-72542 1 day |
| 38691 |
bryangingechen author:bryangingechen |
chore: lake shake --add-public --keep-implied --keep-prefix --fix |
355 files changed:
- +389 imports added
- -297 imports removed
---
[](https://gitpod.io/from-referrer/)
|
large-import |
390/297 |
Mathlib/Algebra/Algebra/Unitization.lean,Mathlib/Algebra/BigOperators/Finprod.lean,Mathlib/Algebra/BigOperators/Group/List/Basic.lean,Mathlib/Algebra/BigOperators/Intervals.lean,Mathlib/Algebra/Category/MonCat/Colimits.lean,Mathlib/Algebra/Category/MonCat/FilteredColimits.lean,Mathlib/Algebra/Category/Ring/Topology.lean,Mathlib/Algebra/Free.lean,Mathlib/Algebra/Group/Conj.lean,Mathlib/Algebra/Group/Ext.lean,Mathlib/Algebra/Group/Fin/Basic.lean,Mathlib/Algebra/Group/Int/Even.lean,Mathlib/Algebra/Group/Nat/Even.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/Algebra/Group/Subgroup/Ker.lean,Mathlib/Algebra/Group/Submonoid/Support.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/Map.lean,Mathlib/Algebra/Homology/DerivedCategory/Ext/MapBijective.lean,Mathlib/Algebra/Homology/HomologicalComplexAbelian.lean,Mathlib/Algebra/Homology/ModelCategory/Lifting.lean,Mathlib/Algebra/LinearRecurrence.lean,Mathlib/Algebra/Module/Injective.lean,Mathlib/Algebra/Module/SpanRank.lean,Mathlib/Algebra/Module/Submodule/Invariant.lean,Mathlib/Algebra/Module/Submodule/Pointwise.lean,Mathlib/Algebra/MonoidAlgebra/Defs.lean,Mathlib/Algebra/MvPolynomial/Cardinal.lean,Mathlib/Algebra/MvPolynomial/Division.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/MvPolynomial/Funext.lean,Mathlib/Algebra/MvPolynomial/Nilpotent.lean,Mathlib/Algebra/Order/Archimedean/Class.lean,Mathlib/Algebra/Order/Archimedean/Submonoid.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/CauSeq/BigOperators.lean,Mathlib/Algebra/Order/Group/Indicator.lean,Mathlib/Algebra/Order/Ring/Archimedean.lean,Mathlib/Algebra/Order/Ring/Cast.lean,Mathlib/Algebra/Polynomial/Eval/Coeff.lean,Mathlib/Algebra/Regular/Defs.lean,Mathlib/AlgebraicGeometry/Modules/Tilde.lean,Mathlib/AlgebraicGeometry/Morphisms/Finite.lean,Mathlib/AlgebraicGeometry/Morphisms/SchemeTheoreticallyDominant.lean,Mathlib/AlgebraicGeometry/Morphisms/UniversallyClosed.lean,Mathlib/AlgebraicGeometry/Morphisms/WeaklyEtale.lean,Mathlib/AlgebraicGeometry/Noetherian.lean,Mathlib/AlgebraicTopology/SimplicialCategory/Basic.lean,Mathlib/AlgebraicTopology/SimplicialComplex/Basic.lean,Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean,Mathlib/AlgebraicTopology/SimplicialSet/Monoidal.lean,Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplices.lean,Mathlib/AlgebraicTopology/SimplicialSet/NonDegenerateSimplicesSubcomplex.lean,Mathlib/Analysis/Asymptotics/Lemmas.lean,Mathlib/Analysis/Asymptotics/TVS.lean,Mathlib/Analysis/CStarAlgebra/Projection.lean,Mathlib/Analysis/Calculus/DerivativeTest.lean,Mathlib/Analysis/Calculus/FDeriv/Affine.lean,Mathlib/Analysis/Calculus/LogDeriv.lean,Mathlib/Analysis/Complex/CanonicalDecomposition.lean,Mathlib/Analysis/Complex/Harmonic/Liouville.lean,Mathlib/Analysis/Complex/Harmonic/Poisson.lean,Mathlib/Analysis/Complex/JensenFormula.lean,Mathlib/Analysis/Complex/Schwarz.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean,Mathlib/Analysis/Complex/UpperHalfPlane/ProperAction.lean,Mathlib/Analysis/ConstantSpeed.lean,Mathlib/Analysis/Convex/Approximation.lean,Mathlib/Analysis/Convex/FunctionTopology.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/Analysis/Distribution/SchwartzSpace/Basic.lean,Mathlib/Analysis/InnerProductSpace/Positive.lean,Mathlib/Analysis/Normed/Module/Bases.lean,Mathlib/Analysis/Normed/Module/DoubleDual.lean,Mathlib/Analysis/Normed/Module/Dual.lean,Mathlib/Analysis/ODE/DiscreteGronwall.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/Rpow/RingInverseOrder.lean,Mathlib/Analysis/SpecialFunctions/Stirling.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Chebyshev/ChebyshevGauss.lean,Mathlib/CategoryTheory/Abelian/Preradical/Colon.lean,Mathlib/CategoryTheory/Adhesive/Subobject.lean,Mathlib/CategoryTheory/CopyDiscardCategory/Widesubcategory.lean,Mathlib/CategoryTheory/Functor/ReflectsIso/Jointly.lean,Mathlib/CategoryTheory/Limits/Constructions/WidePullbackOfTerminal.lean,Mathlib/CategoryTheory/Limits/FunctorCategory/Shapes/Terminal.lean,Mathlib/CategoryTheory/Limits/Preserves/SigmaConst.lean,Mathlib/CategoryTheory/Limits/Preserves/Yoneda.lean,Mathlib/CategoryTheory/Limits/Yoneda.lean,Mathlib/CategoryTheory/Monad/Types.lean,Mathlib/CategoryTheory/Monoidal/Internal/Limits.lean,Mathlib/CategoryTheory/Monoidal/Widesubcategory.lean,Mathlib/CategoryTheory/MorphismProperty/CommaSites.lean,Mathlib/CategoryTheory/MorphismProperty/OfObjectProperty.lean,Mathlib/CategoryTheory/Shift/Adjunction.lean,Mathlib/CategoryTheory/Sites/Continuous.lean,Mathlib/CategoryTheory/Sites/Descent/Precoverage.lean,Mathlib/CategoryTheory/Sites/Hypercover/One.lean,Mathlib/CategoryTheory/Sites/Hypercover/Saturate.lean,Mathlib/CategoryTheory/Sites/Over.lean,Mathlib/CategoryTheory/Sites/Point/OfIsCofiltered.lean,Mathlib/CategoryTheory/Sites/SheafCohomology/Basic.lean |
356 |
1 |
['github-actions'] |
nobody |
1-70833 1 day ago |
1-70896 1 day ago |
1-74546 1 day |
| 37364 |
kim-em author:kim-em |
feat(Tactic/Linter): add `auxLemma` linter for auto-generated declaration references |
This PR adds a syntax linter that flags explicit references to auto-generated auxiliary declarations such as `_proof_N`, `match_N`, `_match_N`, and `_sizeOf_N`. These names are internal to the Lean elaborator and are not stable across refactors (e.g. reordering fields in a structure can renumber `_proof_` indices).
The linter matches precisely: it requires the suffix after the prefix to be all digits, so `_proof_helper` would not be flagged. It only inspects identifier syntax nodes, so references in comments and docstrings are ignored.
Current hits in Mathlib (suppressed with `set_option linter.style.auxLemma false`):
- `Mathlib/CategoryTheory/Functor/Category.lean` — `hcomp._proof_2`
- `Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean` — `constFormalMultilinearSeries.match_1.eq_2`
- `Mathlib/Data/List/Sigma.lean` — `_sizeOf_1`
Companion PR to track these suppressions in the tech debt report: https://github.com/leanprover-community/mathlib-ci/pull/17
🤖 Prepared with Claude Code |
t-linter |
87/1 |
Mathlib.lean,Mathlib/Analysis/Calculus/FormalMultilinearSeries.lean,Mathlib/CategoryTheory/Functor/Category.lean,Mathlib/Data/List/Sigma.lean,Mathlib/Init.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/AuxLemma.lean,MathlibTest/CompileInductive.lean,MathlibTest/interactiveUnfold.lean,MathlibTest/toAdditive.lean |
10 |
35 |
['github-actions', 'kim-em', 'leanprover-radar', 'mathlib-merge-conflicts', 'thorimur'] |
thorimur assignee:thorimur |
1-70819 1 day ago |
1-70855 1 day ago |
4-54167 4 days |
| 38551 |
TTony2019 author:TTony2019 |
feat(Analysis/Convex/Intrinsic): add `affineSpan_prod_eq` and `intrinsicInterior_prod_eq` |
### Summary
We prove that the affine span of a product set equals the product of the affine spans, and that the intrinsic interior of a product set equals the product of the intrinsic interiors.
- `affineSpan_prod_eq`: for `s : Set P₁` and `t : Set P₂`, `affineSpan k (s ×ˢ t) = (affineSpan k s) ×ˢ (affineSpan k t)` as sets.
- `intrinsicInterior_prod_eq`: for `s : Set P` and `t : Set Q`, `intrinsicInterior 𝕜 (s ×ˢ t) = intrinsicInterior 𝕜 s ×ˢ intrinsicInterior 𝕜 t`.
These two theorems are added to `Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean` and `Mathlib/Analysis/Convex/Intrinsic.lean`.
### Collaboration
Co-authored-by: @imathwy |
new-contributor |
144/0 |
Mathlib/Algebra/AddTorsor/Basic.lean,Mathlib/Algebra/Group/Pointwise/Set/Basic.lean,Mathlib/Analysis/Convex/Intrinsic.lean,Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean,Mathlib/LinearAlgebra/Prod.lean |
5 |
21 |
['TTony2019', 'github-actions', 'wwylele'] |
nobody |
1-68152 1 day ago |
1-68216 1 day ago |
4-11745 4 days |
| 37073 |
kim-em author:kim-em |
feat: add wrap_instance% using core's wrapInstance |
This PR adds a new `wrap_instance%` term elaborator that delegates to Lean core's
`wrapInstance` (from https://github.com/leanprover/lean4/pull/12897), and replaces ~53
`fast_instance%` call sites where the replacement is safe.
`wrap_instance%` is a thin wrapper (~15 lines) around `Lean.Meta.wrapInstance`. Like
`fast_instance%`, it reduces instances to constructor applications and reuses canonical
sub-instances. Unlike `fast_instance%`, it works at `instances` transparency and delegates all
normalization logic to core.
The replaced sites cover:
- Equiv/type-alias transfers (WithAbs, WithConv, WithVal, WithLp, TransferInstance)
- Surjective constructors (Con, RingCon quotients, module congruences)
- DFunLike leaf instances (MultilinearMap, ContinuousMultilinearMap, AlternatingMap, Intertwining)
- Quotient instances (LinearAlgebra/Quotient/Defs)
- inferInstanceAs% sites (StandardPart, Presentation/Core)
- Miscellaneous (InfiniteAdeleRing, ZMod)
This PR *doesn't* attempt to replace all `fast_instance%`; it gets more complicated!
🤖 Prepared with Claude Code |
|
88/59 |
Mathlib/Algebra/Algebra/TransferInstance.lean,Mathlib/Algebra/Module/Congruence/Defs.lean,Mathlib/Algebra/WithConv.lean,Mathlib/Analysis/Normed/Lp/WithLp.lean,Mathlib/Analysis/Normed/Ring/WithAbs.lean,Mathlib/Data/ZMod/Basic.lean,Mathlib/GroupTheory/Congruence/Defs.lean,Mathlib/LinearAlgebra/Alternating/Basic.lean,Mathlib/LinearAlgebra/Multilinear/Basic.lean,Mathlib/LinearAlgebra/Quotient/Defs.lean,Mathlib/RepresentationTheory/Intertwining.lean,Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/Tactic/FastInstance.lean,Mathlib/Topology/Algebra/Module/Alternating/Basic.lean,Mathlib/Topology/Algebra/Module/Multilinear/Basic.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
16 |
7 |
['JovanGerb', 'github-actions', 'kim-em', 'leanprover-radar', 'mathlib-merge-conflicts'] |
nobody |
1-66009 1 day ago |
1-66036 1 day ago |
4-52800 4 days |
| 37354 |
SnirBroshi author:SnirBroshi |
feat(Order/Defs/PartialOrder): `(a < b ↔ b < a) ↔ (a ≤ b ↔ b ≤ a)` in `Preorder`s |
Relate the predicates {`a < b`, `b < a`, `a ≤ b`, `b ≤ a`}.
---
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
12/0 |
Mathlib/Order/Defs/PartialOrder.lean |
1 |
11 |
['Komyyy', 'SnirBroshi', 'github-actions'] |
nobody |
1-65494 1 day ago |
7-81919 7 days ago |
16-3883 16 days |
| 37295 |
wwylele author:wwylele |
feat(Analysis/InnerProductSpace): generalized determinant of a rectangle matrix / linear map |
This is the volume factor of a linear map
---
I have encountered the expression `sqrt(det(T' * T))` a few times in various places but it doesn't look like it has a standard name and entry in mathlib, so this adds it.
Zulip thread [#Is there code for X? > (norm of) "determinant" of map between inner product spaces](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/.28norm.20of.29.20.22determinant.22.20of.20map.20between.20inner.20product.20spaces/with/581776873)
One motivation to define this is to state volume formula under transformations. From *Measure theory and fine properties of functions*:
- Lemma 3.1: for linear map $L : \mathbb{R}^n \to \mathbb{R}^m$, we have $\mathcal{H}^n(L(A)) = [ L ] \mathcal{L}^n(A)$. This is proved in this PR at `euclideanHausdorffMeasure_image_eq_normDet_mul_volume`
- Theorem 3.8, for (not necessarily linear) $f : \mathbb{R}^n \to \mathbb{R}^m$ ($n \le m$) and $\mathcal{L}^n$-measurable set $A \subset \mathbb{R}^n$, we have $\int_A J f dx = \int_{\mathbb{R}^m} \mathcal{H}^0(A \cap f\^{-1}\{y\}) d\mathcal{H}^n(y)$, where $J f$ is the `normDet` of the rectangular Jacobian matrix
AI usage disclosure: AI was used in the following parts
- searching for related literature for an appropriate name
- generate draft proofs for some lemma to verify their correctness, though the final code has been completely rewritten by me.
- [ ] depends on: #37918
[](https://gitpod.io/from-referrer/)
|
t-analysis |
480/0 |
Mathlib.lean,Mathlib/Analysis/InnerProductSpace/NormDet.lean,docs/references.bib |
3 |
15 |
['copilot-pull-request-reviewer', 'github-actions', 'j-loreaux', 'mathlib-dependent-issues', 'wwylele'] |
j-loreaux assignee:j-loreaux |
1-65091 1 day ago |
1-71330 1 day ago |
29-83612 29 days |
| 38698 |
Thmoas-Guan author:Thmoas-Guan |
feat(RingTheory/Regular): freeness of `QuotSMulTop` |
For finitely generated module `M` over Noetherian local ring `(R, m)`, if `x ∈ m` is `M`-regular, `M/xM` is free over `R/(x)` iff `M` is free over `R`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
114/0 |
Mathlib.lean,Mathlib/RingTheory/Regular/Free.lean |
2 |
1 |
['github-actions'] |
nobody |
1-63280 1 day ago |
1-63353 1 day ago |
1-63009 1 day |
| 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
|
631/0 |
Mathlib.lean,Mathlib/Dynamics/SymbolicDynamics/Basic.lean,Mathlib/Tactic/Translate/ToAdditive.lean |
3 |
187 |
['Sfgangloff', 'botbaki-review', 'eric-wieser', 'github-actions', 'kckennylau', 'mathlib4-merge-conflict-bot', 'sgouezel'] |
urkud assignee:urkud |
1-62719 1 day ago |
1-62720 1 day ago |
164-57445 164 days |
| 37779 |
mcdoll author:mcdoll |
feat(Data/FunLike): introduce typeclasses for algebraic properties of `FunLike` |
These typeclasses remove the need for each function space that has, e.g., a linear structure
to define `add_apply`, `smul_apply`, etc. Instead after defining the the `Add` instance one also defines a
`FunLikeAdd` instance (with a proof usually being `rfl`).
This removes some boilerplate as theorems like `sum_apply` are currently proved in various files, but here they
can be proved in an abstract way. Moreover, we can remove all of the instances that provide further structure (such as `Semigroup`` in
the concrete function spaces. This further removes boilerplate and also makes sure that all instances are available in every function space.
The docstrings were generated with AI (and heavily edited afterwards), everything else is handwritten.
---
The previous PR #33477 has gotten quite a few merge conflicts, so I opened a new PR with just the new features. I would like to get the approval of this design before going through the library and change everything. I am open to either do this in this PR or a second one (or multiple for different parts).
- [x] depends on: #38401
- [x] depends on: #38398
[](https://gitpod.io/from-referrer/)
|
t-data |
590/0 |
Mathlib.lean,Mathlib/Data/FunLike/Group.lean,Mathlib/Data/FunLike/IsApply.lean,Mathlib/Data/FunLike/Module.lean,Mathlib/Data/FunLike/Ring.lean |
5 |
10 |
['Vierkantor', 'github-actions', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mcdoll'] |
Vierkantor assignee:Vierkantor |
1-61826 1 day ago |
1-62859 1 day ago |
2-45746 2 days |
| 38279 |
yuanyi-350 author:yuanyi-350 |
refactor(NumberTheory): golf `Mathlib/NumberTheory/NumberField/Basic` |
- refactors `NumberField/Basic` by replacing the hand-written `mapRingHom` structure with `f.toIntAlgHom.mapIntegralClosure.toRingHom`
Extracted from #38144
[](https://gitpod.io/from-referrer/) |
codex
t-number-theory
LLM-generated
|
3/6 |
Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/NumberTheory/NumberField/CMField.lean |
2 |
3 |
['github-actions', 'mbkybky', 'yuanyi-350'] |
MichaelStollBayreuth assignee:MichaelStollBayreuth |
1-58942 1 day ago |
2-25309 2 days ago |
2-25197 2 days |
| 35217 |
kim-em author:kim-em |
feat: auxiliary lemmas for Artin and braid groups |
This PR adds small lemmas to existing files, in preparation for the Artin groups and braid groups PRs.
- `Commute.mul_pow_eq_one`: for commuting elements with `a ^ m = 1` and `b ^ m = 1`
- `Equiv.Perm.swap_conjugate`: braid relation for adjacent transpositions
- `Equiv.Perm.swap_mul_swap_comm_of_disjoint`: disjoint transpositions commute
- `@[grind =]` attributes on `Perm.mul_apply`, `Perm.one_apply`; new `Perm.pow_add_one_apply`
- `Subgroup.normalClosure_singleton_one`
- `FreeGroup.ofList` and associated lemmas
- `FreeGroup.freeGroupUnitMulEquivInt`
- `PresentedGroup.instUniqueOfIsEmpty`
- `CoxeterMatrix.Aₙ_adjacent`, `CoxeterMatrix.Aₙ_far`
🤖 Prepared with Claude Code |
t-group-theory
LLM-generated
|
97/2 |
Mathlib/Algebra/Group/Commute/Defs.lean,Mathlib/Algebra/Group/End.lean,Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Coxeter/Matrix.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Basic.lean,Mathlib/GroupTheory/PresentedGroup.lean |
7 |
15 |
['eric-wieser', 'github-actions', 'kim-em', 'mathlib-merge-conflicts', 'themathqueen'] |
thorimur assignee:thorimur |
1-56731 1 day ago |
1-56731 1 day ago |
7-68611 7 days |
| 38583 |
kim-em author:kim-em |
feat(LinearAlgebra/Matrix/GeneralLinearGroup): polynomial functions on matrices over an infinite field are determined by their values on GL |
This PR adds `MvPolynomial.eq_of_eval_eq_on_gl`: two polynomials in `MvPolynomial (m × m) k` over an infinite field `k` are equal whenever their evaluations agree at every invertible matrix.
The proof multiplies by the generic determinant `det (Matrix.mvPolynomialX m m k)` so that `MvPolynomial.funext` applies (covering both invertible and non-invertible specializations of the variables), then divides by it (it is nonzero by `Matrix.det_mvPolynomialX_ne_zero`) using that the polynomial ring is an integral domain.
The lemma is useful when reasoning about polynomial representations of `GL n k`, where natural identities are easiest to check on `GL n k` itself but the final statement lives at the level of polynomials.
The lemma is placed in a new file `Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/MvPolynomial.lean` because the existing `Mathlib/LinearAlgebra/Matrix/MvPolynomial.lean` is upstream of `Adjugate`, which is itself upstream of `GeneralLinearGroup.Defs` — so we cannot import `GeneralLinearGroup.Defs` from `Matrix.MvPolynomial` without creating a cycle.
🤖 Prepared with Claude Code |
t-algebra label:t-algebra$ |
60/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/GeneralLinearGroup/MvPolynomial.lean |
2 |
4 |
['SnirBroshi', 'github-actions', 'wwylele'] |
nobody |
1-55628 1 day ago |
1-68062 1 day ago |
3-12846 3 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
maintainer-merge
|
45/14 |
Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/VertexColoring.lean,Mathlib/Data/Set/Pairwise/Basic.lean |
3 |
13 |
['SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
1-53092 1 day ago |
7-15211 7 days ago |
28-77292 28 days |
| 38597 |
kim-em author:kim-em |
chore: backport robustness changes from bump/nightly-2026-04-27 |
See [#nightly-testing > nightly#213 adaptations for nightly-2026-04-27 @ 💬](https://leanprover.zulipchat.com/#narrow/channel/428973-nightly-testing/topic/nightly.23213.20adaptations.20for.20nightly-2026-04-27/near/591262169).
|
t-category-theory
maintainer-merge
|
91/26 |
Mathlib/AlgebraicTopology/SimplexCategory/Augmented/Monoidal.lean,Mathlib/CategoryTheory/Bicategory/Coherence.lean,Mathlib/CategoryTheory/Limits/Shapes/ConcreteCategory.lean,Mathlib/CategoryTheory/Limits/Shapes/Equalizers.lean,Mathlib/CategoryTheory/Monoidal/Free/Coherence.lean,Mathlib/CategoryTheory/Sites/DenseSubsite/OneHypercoverDense.lean,Mathlib/CategoryTheory/Sites/Hypercover/One.lean |
7 |
8 |
['github-actions', 'kim-em', 'robin-carlier'] |
nobody |
1-52865 1 day ago |
1-76353 1 day ago |
2-6215 2 days |
| 38432 |
SnirBroshi author:SnirBroshi |
feat(Logic/Relation): `Map r f g ≤ s ↔ r ≤ s.bicompl f g` |
and the dual `s ≤ Relation.Map r f g ↔ s.bicompl f g ≤ r` which requires `f` and `g` to be bijective.
Adds `Galois{Connection/Insertion/Coinsertion}` for the dual.
The theorems are specialized to `onFun` instead of `bicompl` for when `f = g`.
The `≤` theorems are spelled using `Subrelation` since `≤` is not yet available in this file, and `∀` for the `bicompl` theorems since `Subrelation` only supports homogeneous relations.
A `GaloisConnection` for the iff in the title requires `f`/`g` to be bijective, but then we can get an `OrderIso` which is stronger (see #38499).
---
[](https://gitpod.io/from-referrer/)
|
t-logic |
119/28 |
Mathlib/Logic/Relation.lean,Mathlib/Order/GaloisConnection/Basic.lean |
2 |
3 |
['SnirBroshi', 'github-actions', 'plp127'] |
nobody |
1-52756 1 day ago |
5-59969 5 days ago |
6-81047 6 days |
| 38612 |
SnirBroshi author:SnirBroshi |
feat(Order/SuccPred/CompleteLinearOrder): `sSup s < x` iff theorems when we know if `x` is a successor pre-limit or not |
Adds the following theorems (along with their duals and indexed versions):
```lean
sSup_lt_iff_of_not_isSuccPrelimit : ¬IsSuccPrelimit x → sSup s < x ↔ ∀ a ∈ s, a < x
le_sSup_iff_of_not_isSuccPrelimit : ¬IsSuccPrelimit x → x ≤ sSup s ↔ ∃ a ∈ s, x ≤ a
Order.IsSuccPrelimit.sSup_lt_iff : IsSuccPrelimit x → sSup s < x ↔ ∃ a < x, ∀ b ∈ s, b < a
Order.IsSuccPrelimit.le_sSup_iff : IsSuccPrelimit x → x ≤ sSup s ↔ ∀ a < x, ∃ b ∈ s, a ≤ b
```
They are similar to these existing theorems, but not the same:
```lean
sSup_lt_iff : sSup s < x ↔ ∃ a < x, ∀ b ∈ s, b ≤ a
le_sSup_iff_forall_lt : x ≤ sSup s ↔ ∀ a < x, ∃ b ∈ s, a < b
```
---
[](https://gitpod.io/from-referrer/)
|
t-order |
43/0 |
Mathlib/Order/SuccPred/CompleteLinearOrder.lean |
1 |
6 |
['SnirBroshi', 'github-actions', 'vihdzp'] |
nobody |
1-52557 1 day ago |
2-49471 2 days ago |
2-49127 2 days |
| 37477 |
kebekus author:kebekus |
feat: canonical decomposition of complex-meromorphic functions on disks |
Establish the Finite Canonical Decomposition of meromorphic functions, where a complex-meromorphic function `f` on a disk is written as a product of an analytic function without zeros and poles, and canonical factors that take only values of norm one on the boundary of the disk.
A future PR will extend this theorem to handle zeros/poles on the boundary of the disk.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
305/10 |
Mathlib.lean,Mathlib/Analysis/Complex/CanonicalDecomposition.lean,Mathlib/Analysis/Meromorphic/Order.lean,Mathlib/Analysis/Meromorphic/RCLike.lean,Mathlib/Topology/MetricSpace/Pseudo/Defs.lean |
5 |
4 |
['github-actions', 'j-loreaux', 'kebekus'] |
ADedecker assignee:ADedecker |
1-51059 1 day ago |
1-59332 1 day ago |
29-43455 29 days |
| 38228 |
kim-em author:kim-em |
ci: block merging PRs that increase technical debt unless reviewed |
This PR adds a merge gate for technical debt increases.
When the existing technical debt metrics script reports an increase, the `build` job adds an `increases-technical-debt` label. A `check-technical-debt` job then adds `blocked-by-increases-technical-debt`, which blocks bors.
A reviewer can add `allow-increases-technical-debt` to unblock after confirming the increase is acceptable.
### Fail-closed detection
The detection greps for the *safe* patterns (`Decrease in tech debt:` / `No changes to technical debt.`) rather than for `Increase`. If `mathlib-ci` changes the script's output wording, the label is added (fail closed) rather than silently skipped (fail open).
### Labels (three-label pattern, same as #38225)
| Label | Managed by | Purpose |
|---|---|---|
| `increases-technical-debt` | `build` job (tech debt script) | Factual: this PR increases debt |
| `blocked-by-increases-technical-debt` | `check-technical-debt` job | Operational: blocks bors |
| `allow-increases-technical-debt` | Reviewer | Override: reviewer approves the increase |
Bors's `block_labels` has no conditional logic, so we need the derived `blocked-by-increases-technical-debt` label to express the conjunction "increases-technical-debt AND NOT allow-increases-technical-debt".
False positives can be reported on the [mathlib4 Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/increases-technical-debt.20label).
🤖 Prepared with Claude Code |
CI |
76/2 |
.github/workflows/PR_summary.yml,bors.toml |
2 |
4 |
['github-actions', 'jcommelin', 'joneugster', 'kim-em'] |
Vierkantor and jcommelin assignee:Vierkantor assignee:jcommelin |
1-47755 1 day ago |
9-78623 9 days ago |
9-78349 9 days |
| 30109 |
scholzhannah author:scholzhannah |
feat: the subcomplexes of a (relative classical) CW complex form a completely distributive lattice |
In this PR we prove that the space of subcomplexes `Subcomplex C` of a (relative classical) CW complex `C` is a `CompletelyDistribLattice`.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
304/1 |
Mathlib/Topology/CWComplex/Classical/Subcomplex.lean |
1 |
26 |
['ADedecker', 'github-actions', 'j-loreaux', 'scholzhannah'] |
ADedecker assignee:ADedecker |
1-47345 1 day ago |
6-32223 6 days ago |
13-14571 13 days |
| 38538 |
CoolRmal author:CoolRmal |
feat(Topology): some lemmas about topological bases |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
27/4 |
Mathlib/Topology/Bases.lean |
1 |
7 |
['CoolRmal', 'github-actions', 'plp127', 'scholzhannah', 'wwylele'] |
j-loreaux assignee:j-loreaux |
1-47055 1 day ago |
4-2389 4 days ago |
4-9335 4 days |
| 37926 |
e-271828 author:e-271828 |
feat(Analysis/Analytic): add AnalyticAt properties for iterated dslope |
This PR adds three fundamental lemmas in the `AnalyticAt` namespace to establish the analyticity of the (iterated) `dslope` function:
* `AnalyticAt.dslope_of_ne`
* `AnalyticAt.iterate_dslope_of_ne`
* `AnalyticAt.iterate_dslope` (at the singularity, using `has_fpower_series_iterate_dslope_fslope`)
These properties are crucial for factoring out removable singularities iteratively while preserving analyticity.
This PR was assisted by LLMs (Aristotle and Gemini).
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
|
18/0 |
Mathlib/Analysis/Analytic/IsolatedZeros.lean |
1 |
10 |
['e-271828', 'github-actions', 'j-loreaux', 'wwylele'] |
j-loreaux assignee:j-loreaux |
1-47044 1 day ago |
1-47044 1 day ago |
18-74498 18 days |
| 37464 |
martinwintermath author:martinwintermath |
feat(Geometry/Convex/Cone): Minor additions to pointed cones |
Minor additions to pointed cones:
* `PointedCone.ofSubmodule_le_ofSubmodule` and `PointedCone.ofSubmodule_lt_ofSubmodule`. These are not made simp lemmas, instead the underlying `Submodule.restrictScalars_le` and `Submodule.restrictScalars_lt` have been changed into simp lemmas.
* `PointedCone.hull_le_span` as a short form of `Submodule.span_le_restrictScalars R≥0 R s`
In preparation for #36605.
Co-authored by: Artie Khovanov
---
[](https://gitpod.io/from-referrer/)
|
t-convex-geometry |
22/14 |
Mathlib/Algebra/Module/Submodule/RestrictScalars.lean,Mathlib/Geometry/Convex/Cone/Pointed.lean |
2 |
22 |
['artie2000', 'github-actions', 'justus-springer', 'martinwintermath', 'mathlib-merge-conflicts', 'ooovi', 'vihdzp'] |
nobody |
1-44540 1 day ago |
13-9672 13 days ago |
28-63252 28 days |
| 38670 |
tb65536 author:tb65536 |
chore(GroupTheory/SpecificGroups/Alternating): deprecate old proof of simplicity of A_5 |
Now that #36524 has been merged, we can deprecate the old proof of simplicity of A_5.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
37/106 |
Mathlib/Algebra/Group/Subgroup/Basic.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/GroupTheory/SpecificGroups/Alternating.lean,Mathlib/GroupTheory/SpecificGroups/Alternating/Simple.lean |
4 |
2 |
['AntoineChambert-Loir', 'github-actions', 'tb65536'] |
nobody |
1-41401 1 day ago |
1-83755 1 day ago |
1-83412 1 day |
| 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 |
330/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/ErdosStoneSimonovits.lean |
2 |
14 |
['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'mitchell-horner', 'robin-carlier'] |
awainverse and b-mehta assignee:b-mehta assignee:awainverse |
1-38542 1 day ago |
1-38542 1 day ago |
59-42108 59 days |
| 37400 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Acyclic): endpoints of a path have at most one neighbor in the path |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
15/0 |
Mathlib/Combinatorics/SimpleGraph/Acyclic.lean |
1 |
6 |
['Rida-Hamadani', 'Ruben-VandeVelde', 'SnirBroshi', 'bryangingechen', 'github-actions'] |
nobody |
1-38276 1 day ago |
30-67683 30 days ago |
30-67339 30 days |
| 31219 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): lemma about `IsBaseChange` under exact sequence |
In this lemma, we proved cokernel preserve `IsBaseChange S` and kernel preserve `IsBaseChange S` when `S` is flat.
Co-authored-by: Wang Jingting
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
171/0 |
Mathlib.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangeRightExact.lean |
4 |
22 |
['Thmoas-Guan', 'chrisflav', 'erdOne', 'github-actions', 'joelriou', 'mathlib4-merge-conflict-bot', 'urkud'] |
joelriou assignee:joelriou |
1-37958 1 day ago |
16-30796 16 days ago |
48-33848 48 days |
| 31768 |
Thmoas-Guan author:Thmoas-Guan |
feat(Homology): `Ext` under restrict scalars by `RingEquiv` |
In this PR, we proved that `Ext` commute with ulift functor in `ModuleCat`.
Further more, we provided compatibility with (semi-)linear equiv of general universe.
---
- [x] depends on: #31697
- [x] depends on: #31706
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-category-theory
label:t-algebra$ |
142/0 |
Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean,Mathlib/Algebra/Category/ModuleCat/ChangeOfRingsExact.lean,Mathlib/Algebra/Category/ModuleCat/Ext/RingEquiv.lean |
4 |
31 |
['Thmoas-Guan', 'dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
kim-em assignee:kim-em |
1-37044 1 day ago |
6-26660 6 days ago |
13-16338 13 days |
| 38014 |
cduenasnavarro author:cduenasnavarro |
feat(InformationTheory): linear codes over finite fields and minimum distance properties |
Define linear codes over a finite field `F` as finite-dimensional subspaces of `Fin n → F`,
together with their minimum Hamming distance.
Main definitions:
* `LinearCode`
* `minDist`
* `LinearCodeWithDist`
* `hammingSphere`
Main results:
* `minDist_eq_sInf_pairwiseDist`: characterisation of the minimum distance via pairwise distances
* `disjoint_spheres`: Hamming spheres of radius `t` around distinct codewords are disjoint
if `2 * t < d`
Pending:
* Choosing an adequate book reference
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
new-contributor
|
143/0 |
Mathlib.lean,Mathlib/InformationTheory/Coding/LinearCode.lean |
2 |
37 |
['cduenasnavarro', 'github-actions', 'linesthatinterlace', 'rkirov', 'vihdzp', 'wwylele'] |
RemyDegenne assignee:RemyDegenne |
1-36641 1 day ago |
17-5399 17 days ago |
17-5818 17 days |
| 38675 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/Morphisms/QuasiSeparated): remove an erw |
- rewrites the range-identification step to use `Scheme.Opens.range_ι` instead of `erw [Subtype.range_coe]`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebraic-geometry
LLM-generated
|
1/1 |
Mathlib/AlgebraicGeometry/Morphisms/QuasiSeparated.lean |
1 |
2 |
['github-actions', 'jcommelin'] |
nobody |
1-34896 1 day ago |
1-76272 1 day ago |
1-75928 1 day |
| 38707 |
tb65536 author:tb65536 |
feat(Algebra/Polynomial/Lifts): add `natDegree` verison of `exists_natDegree_eq_of_mem_lifts` |
This PR adds a `natDegree` version of `exists_degree_eq_of_mem_lifts`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
4/0 |
Mathlib/Algebra/Polynomial/Lifts.lean |
1 |
1 |
['github-actions'] |
nobody |
1-31382 1 day ago |
1-31382 1 day ago |
1-31039 1 day |
| 38009 |
CBirkbeck author:CBirkbeck |
feat(RingTheory/Valuation): define the valuation spectrum and its topology |
## Summary
Define the valuation spectrum `Spv A` of a commutative ring and equip it with the topology generated by basic open sets, following Wedhorn's *Adic Spaces*. Also define the pullback (`comap`) of a `ValuativeRel` along a ring homomorphism. This is preparation for later defining adic spaces.
Note the code was generated by claude code, but I have cleaned up and pre-reviewed the work.
|
t-ring-theory
LLM-generated
|
362/0 |
Mathlib.lean,Mathlib/RingTheory/Valuation/ValuationSpectrum.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Comap.lean |
3 |
40 |
['CBirkbeck', 'adamtopaz', 'chrisflav', 'dagurtomas', 'faenuccio', 'github-actions', 'jjdishere', 'riccardobrasca'] |
riccardobrasca assignee:riccardobrasca |
1-31320 1 day ago |
16-34216 16 days ago |
16-34025 16 days |
| 34633 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): define the Zarankiewicz function |
Defines the Zarankiewicz function $z(m, n; s, t)$ in terms of bipartite graphs.
---
- [x] depends on: #34632
This comes from splitting up #25841 into smaller PRs.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
186/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Extremal/Zarankiewicz.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean |
3 |
17 |
['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mitchell-horner'] |
YaelDillies assignee:YaelDillies |
1-31147 1 day ago |
1-34294 1 day ago |
37-34412 37 days |
| 38708 |
tb65536 author:tb65536 |
feat(Algebra/Polynomial/Lifts): every polynomial lifts along a surjective ring homomorphism |
This PR adds a lemma stating that every polynomial lifts along a surjective ring homomorphism (this could also be phrased as `lifts_eq_top`, but in practice it's membership in lifts that unlocks all of the API for `lifts`).
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
3/0 |
Mathlib/Algebra/Polynomial/Lifts.lean |
1 |
1 |
['github-actions'] |
nobody |
1-31133 1 day ago |
1-31133 1 day ago |
1-30791 1 day |
| 37389 |
martinwintermath author:martinwintermath |
chore(LinearAlgebra/SesquilinearForm): generalize `orthogonalBilin` in order to simplify definition of `orthogonal` |
- generalize `Submodule.orthogonalBilin` to `CommSemiring` and `AddCommMonoid`, and to general sesquilinear forms with inputs from different modules. This enables subsequent changes.
- redefine `BilinForm.orthogonal` in terms of `orthogonalBilin`.
- reorder arguments of `Submodule.orthogonalBilin` to match other instances of duality across mathlib.
For comparison
Before
```lean4
Submodule.orthogonalBilin.{u_1, u_2, u_5, u_6} {R : Type u_1} {R₁ : Type u_2} {M : Type u_5} {M₁ : Type u_6}
[CommRing R] [CommRing R₁] [AddCommGroup M₁] [Module R₁ M₁] [AddCommGroup M] [Module R M] {I₁ I₂ : R₁ →+* R}
(N : Submodule R₁ M₁) (B : M₁ →ₛₗ[I₁] M₁ →ₛₗ[I₂] M) : Submodule R₁ M₁
```
After
```lean4
Submodule.orthogonalBilin.{u_1, u_2, u_3, u_5, u_6, u_7} {R : Type u_1} {R₁ : Type u_2} {R₂ : Type u_3} {M : Type u_5}
{M₁ : Type u_6} {M₂ : Type u_7} [CommSemiring R] [CommSemiring R₁] [CommSemiring R₂] [AddCommMonoid M] [Module R M]
[AddCommMonoid M₁] [Module R₁ M₁] [AddCommMonoid M₂] [Module R₂ M₂] {I₁ : R₁ →+* R} {I₂ : R₂ →+* R} (B : M₁ →ₛₗ[I₁] M₂ →ₛₗ[I₂] M)
(N : Submodule R₁ M₁) : Submodule R₂ M₂
```
A few fixes in other files have been necessary as well.
This is an extract from #37381.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
28/21 |
Mathlib/Algebra/Lie/InvariantForm.lean,Mathlib/LinearAlgebra/BilinearForm/Orthogonal.lean,Mathlib/LinearAlgebra/QuadraticForm/Basic.lean,Mathlib/LinearAlgebra/RootSystem/Finite/Nondegenerate.lean,Mathlib/LinearAlgebra/SesquilinearForm/Basic.lean |
5 |
8 |
['eric-wieser', 'github-actions', 'martinwintermath', 'themathqueen', 'vihdzp'] |
ocfnash assignee:ocfnash |
1-30817 1 day ago |
1-30725 1 day ago |
30-85590 30 days |
| 38654 |
MichaelStollBayreuth author:MichaelStollBayreuth |
feat(RingTheory.DedekindDomain.Factorization): add API for factorization |
This PR adds
* `simp` lemmas that convert ways of expressing the multiplicity of a prime ideal `p` in the factorization of an ideal `I` into `multiplicity p.asIdeal I` (see [#Is there code for X? > Results on elements of number fields and ideals @ 💬](https://leanprover.zulipchat.com/#narrow/channel/217875-Is-there-code-for-X.3F/topic/Results.20on.20elements.20of.20number.20fields.20and.20ideals/near/574739650)),
* API lemmas on multiplicities, expressed in terms of `multiplicity p.asIdeal I`.
* We also refactor a proof in Mathlib.RingTheory.DedekindDomain.Ideal.Lemmas by extracting a couple of lemmas that we can reuse in one of the new lemmas.
These will be useful in proving the Northcott property of heights on number fields.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
164/23 |
Mathlib/RingTheory/DedekindDomain/Factorization.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/RingTheory/UniqueFactorizationDomain/NormalizedFactors.lean |
3 |
5 |
['MichaelStollBayreuth', 'github-actions', 'xroblot'] |
nobody |
1-29924 1 day ago |
1-29988 1 day ago |
2-21804 2 days |
| 38269 |
b-mehta author:b-mehta |
feat(Combinatorics/Additive): link Freiman homs and Freiman isos tighter |
---
Some work I had lying around in a forgotten branch, recently resurrected.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
maintainer-merge
|
118/76 |
Mathlib/Combinatorics/Additive/AP/Three/Behrend.lean,Mathlib/Combinatorics/Additive/AP/Three/Defs.lean,Mathlib/Combinatorics/Additive/FreimanHom.lean |
3 |
15 |
['YaelDillies', 'b-mehta', 'github-actions', 'mathlib-merge-conflicts'] |
nobody |
1-29914 1 day ago |
1-29914 1 day ago |
2-29888 2 days |
| 38709 |
tb65536 author:tb65536 |
feat(Algebra/Polynomial/Roots): roots of `p(-X)` |
This PR proves that the roots of `p(-X)` are just the negatives of the roots of `p`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
21/0 |
Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/Algebra/Polynomial/Roots.lean |
2 |
1 |
['github-actions'] |
nobody |
1-29814 1 day ago |
1-29814 1 day ago |
1-29471 1 day |
| 38622 |
mariainesdff author:mariainesdff |
feat(RingTheory/PowerSeries/ExponentialModule): add exponential module |
Let `R` be a commutative ring. The exponential module of `R` is the set of all power series
`f : R⟦X⟧` that are of exponential type : `f (X + Y) = f X * f Y` where `X` and `Y` are two
indeterminates. It is an abelian group under multiplication, and an `R`-module under rescaling.
Co-authored by: @AntoineChambert-Loir
---
- [ ] depends on: #38615
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
425/0 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Finsupp/Fin.lean,Mathlib/Data/Nat/Choose/Sum.lean,Mathlib/RingTheory/PowerSeries/ExponentialModule.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
5 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
1-28242 1 day ago |
1-28307 1 day ago |
1-29060 1 day |
| 37886 |
LLaurance author:LLaurance |
chore(Algebra): shorten proofs by removing lemmas used in simp |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
5/7 |
Mathlib/Algebra/Free.lean,Mathlib/Algebra/FreeAlgebra.lean |
2 |
4 |
['LLaurance', 'github-actions', 'mathlib-merge-conflicts', 'themathqueen'] |
joelriou assignee:joelriou |
1-23507 1 day ago |
1-23531 1 day ago |
15-70304 15 days |
| 38718 |
tb65536 author:tb65536 |
feat(GroupTheory/Torsion): add `torsion_eq_top_iff` |
The torsion subgroup is the whole group if and only if the group is torsion.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
4/0 |
Mathlib/GroupTheory/Torsion.lean |
1 |
1 |
['github-actions'] |
nobody |
1-21416 1 day ago |
1-21416 1 day ago |
1-21073 1 day |
| 38037 |
linesthatinterlace author:linesthatinterlace |
feat: extend `LawfulXor` lemmas and add `Equiv.xor` |
This PR extends the work of #37712 by adding additional lemmas and adding `xor-as-a-permutation`.
---
- depends on: #37712
[](https://gitpod.io/from-referrer/)
|
t-data |
270/0 |
Mathlib.lean,Mathlib/Data/Fin/Init.lean,Mathlib/Data/LawfulXor/Basic.lean,Mathlib/Data/LawfulXor/Equiv.lean |
4 |
3 |
['github-actions', 'linesthatinterlace'] |
eric-wieser and linesthatinterlace assignee:eric-wieser assignee:linesthatinterlace |
1-21410 1 day ago |
16-36546 16 days ago |
16-36304 16 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.
(2/5) 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
large-import
|
179/1 |
Mathlib.lean,Mathlib/Order/CompactlyGenerated/Basic.lean,Mathlib/Topology/Order/ScottTopology.lean,Mathlib/Topology/Order/ScottTopologyDCPO.lean,docs/references.bib |
5 |
88 |
['b-mehta', 'edwin1729', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'plp127'] |
b-mehta assignee:b-mehta |
1-19990 1 day ago |
1-44398 1 day ago |
59-42942 59 days |
| 38720 |
tb65536 author:tb65536 |
feat(GroupTheory/Rank): nontrivial groups have positive rank |
This PR proves that nontrivial groups have positive rank.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
18/0 |
Mathlib/GroupTheory/Rank.lean |
1 |
1 |
['github-actions'] |
nobody |
1-19940 1 day ago |
1-19940 1 day ago |
1-19597 1 day |
| 38685 |
yuanyi-350 author:yuanyi-350 |
chore(LinearAlgebra/FreeModule/Int): remove an erw |
- rewrites the Smith normal form coordinate calculation with `rw [LinearEquiv.submoduleMap_apply]`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-algebra
label:t-algebra$ |
1/1 |
Mathlib/LinearAlgebra/FreeModule/Int.lean |
1 |
2 |
['github-actions', 'jcommelin', 'yuanyi-350'] |
nobody |
1-19339 1 day ago |
1-76206 1 day ago |
1-75862 1 day |
| 38684 |
yuanyi-350 author:yuanyi-350 |
chore(LinearAlgebra/CliffordAlgebra/EvenEquiv): remove erws |
- rewrites the `toEven` and `toEven_ι` proofs through `even_toSubmodule`, replacing the `erw` steps with `simp` and `rw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-algebra
label:t-algebra$ |
5/8 |
Mathlib/LinearAlgebra/CliffordAlgebra/EvenEquiv.lean |
1 |
2 |
['github-actions', 'jcommelin', 'yuanyi-350'] |
nobody |
1-19322 1 day ago |
1-76208 1 day ago |
1-75864 1 day |
| 38377 |
xroblot author:xroblot |
feat(RingTheory/Localization, FieldTheory/Galois): refactor fraction field action API and add fixingSubgroup lemmas |
Extracts the components of the proof of `IsGaloisGroup.to_isFractionRing`, adding API for working with "Galois extensions of domains".
Also adds `fixingSubgroup_range_algebraMap` and its ring-domain analogue: if `G` is a Galois group for `L/K` and a subgroup `H` is a Galois group for `L/R`, then the elements of `G` fixing the range of `algebraMap R L` pointwise are exactly the elements of `H`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
139/41 |
Mathlib/FieldTheory/Galois/IsGaloisGroup.lean,Mathlib/NumberTheory/RamificationInertia/Galois.lean,Mathlib/RingTheory/Invariant/Basic.lean,Mathlib/RingTheory/Localization/FractionRing.lean |
4 |
3 |
['github-actions', 'leanprover-radar', 'riccardobrasca', 'tb65536'] |
riccardobrasca assignee:riccardobrasca |
1-19218 1 day ago |
8-19060 8 days ago |
8-18716 8 days |
| 38721 |
tb65536 author:tb65536 |
feat(GroupTheory/Torsion): the torsion subgroup is preserved by isomorphisms |
This PR proves that the torsion subgroup is preserved by isomorphisms.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
10/1 |
Mathlib/GroupTheory/Torsion.lean |
1 |
1 |
['github-actions'] |
nobody |
1-19135 1 day ago |
1-19135 1 day ago |
1-18792 1 day |
| 38508 |
yuanyi-350 author:yuanyi-350 |
chore(Topology/Sheaves/SheafCondition/PairwiseIntersections): remove an erw |
- rewrites `interUnionPullbackConeLift_left` and `interUnionPullbackConeLift_right` by unfolding `interUnionPullbackConeLift` directly in the `rw` chain
- rewrites the two `isLimitPullbackCone` branches by adding `Functor.mapCone_π_app` to the `rw` chain instead of using `erw [← F.1.map_comp]`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-topology
|
5/9 |
Mathlib/Topology/Sheaves/SheafCondition/PairwiseIntersections.lean |
1 |
3 |
['github-actions', 'jcommelin', 'yuanyi-350'] |
j-loreaux assignee:j-loreaux |
1-18425 1 day ago |
1-18467 1 day ago |
5-37256 5 days |
| 38515 |
yuanyi-350 author:yuanyi-350 |
chore(Algebra/Lie/Classical): remove an erw |
- unfolds `so'` before `skewAdjointMatricesLieSubalgebraEquiv_apply`, so the proof closes with a plain `rw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebra
LLM-generated
label:t-algebra$ |
1/1 |
Mathlib/Algebra/Lie/Classical.lean |
1 |
3 |
['github-actions', 'jcommelin', 'yuanyi-350'] |
nobody |
1-17982 1 day ago |
5-34524 5 days ago |
5-34180 5 days |
| 38723 |
xgenereux author:xgenereux |
feat(EuclideanDomain.Basic): RingEquiv.euclideanDomain |
Add `RingEquiv.euclideanDomain` similar to other `RingEquiv` transport lemmas.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
28/1 |
Mathlib/Algebra/EuclideanDomain/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
1-17548 1 day ago |
1-17388 1 day ago |
1-17411 1 day |
| 36704 |
adam84-hub author:adam84-hub |
chore(Function): add surjective_iff |
Adds an explicit discoverable definitional lemma for `Function.Surjective`.
- addresses #31745
- scope is intentionally tiny: one theorem in `Mathlib/Logic/Function/Defs.lean`
AI was used for drafting; I reviewed the final code and understand it well enough to vouch for it.
|
t-logic
new-contributor
|
4/0 |
Mathlib/Logic/Function/Defs.lean |
1 |
13 |
['SnirBroshi', 'adam84-hub', 'github-actions', 'plp127', 'vihdzp'] |
nobody |
1-17324 1 day ago |
1-17324 1 day ago |
1-19104 1 day |
| 38719 |
tb65536 author:tb65536 |
feat(GroupTheory/QuotientGroup/Basic): `(G × H) / (A.prod B) ≃ (G / A) × (H / B)` |
This PR proves the isomorphism `(G × H) ⧸ (A.prod B) ≃* (G ⧸ A) × H ⧸ B` and uses it to golf `Subgroup.index_prod`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
20/3 |
Mathlib/GroupTheory/Index.lean,Mathlib/GroupTheory/QuotientGroup/Basic.lean |
2 |
1 |
['github-actions'] |
nobody |
1-16035 1 day ago |
1-16035 1 day ago |
1-15693 1 day |
| 38729 |
tb65536 author:tb65536 |
feat(GroupTheory/Torsion): torsion subgroup of a product |
This PR proves that the torsion subgroup of a product is the product of the torsion subgroups.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
5/1 |
Mathlib/GroupTheory/Torsion.lean |
1 |
1 |
['github-actions'] |
nobody |
1-14232 1 day ago |
1-14232 1 day ago |
1-13890 1 day |
| 33392 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(LinearAlgebra/Transvection/Generation): non-exceptional case in Dieudonné's theorem |
We prove the theorem of [Dieudonné-1955][J. Dieudonné, “Sur les générateurs
des groupes classiques”].
Let `K` be a division ring and `V` be a `K`-module.
* `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_eq_one`:
If `e.fixedReduce = 1`, then `e` can be written as the product
of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections
and one dilatransvection.
This is the first part of the non-exceptional case in Dieudonné's theorem.
(This statement is not interesting when `e = 1`.)
* `LinearEquiv.mem_transvections_pow_mul_dilatransvections_of_fixedReduce_ne_smul_id`:
If `e.fixedReduce` is not a homothety, then `e` can be written as the product
of `finrank K (V ⧸ e.fixedSubmodule) - 1` transvections and one dilatransvection.
This is the second part of the non-exceptional case in Dieudonné's theorem.
* `LinearEquiv.IsExceptional`:
A linear equivalence `e : V ≃ₗ[K] V` is exceptional if `1 < finrank K (V ⧸ e.fixedSubmodule)`
and if `e.fixedReduce` is a nontrivial homothety.
* `LinearEquiv.mem_dilatransvections_pow_of_notIsExceptional`:
This is the non-exceptional case in Dieudonné's theorem,
as a combination of the two preceding statements.
---
- [x] depends on: #33348
- [x] depends on: #33282
- [x] depends on: #33347
- [ ] depends on: #33387
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
555/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Center.lean,Mathlib/LinearAlgebra/LinearIndependent/Lemmas.lean,Mathlib/LinearAlgebra/Transvection/Basic.lean,Mathlib/LinearAlgebra/Transvection/Generation.lean |
5 |
12 |
['AntoineChambert-Loir', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
joelriou assignee:joelriou |
1-7581 1 day ago |
1-7610 1 day ago |
31-53623 31 days |
| 38724 |
yuanyi-350 author:yuanyi-350 |
chore(Algebra/Category/ModuleCat): remove `erw`s |
- simplifies the `tmul` branches in `HomEquiv.fromExtendScalars` and `Counit.map` to `simp [mul_smul]`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
t-algebra label:t-algebra$ |
2/12 |
Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean |
1 |
1 |
['github-actions'] |
nobody |
1-7530 1 day ago |
1-17275 1 day ago |
1-16931 1 day |
| 38565 |
peabrainiac author:peabrainiac |
feat(Geometry/Manifold): add `ContMDiffSMul` typeclass |
Introduce typeclasses `ContMDiffVAdd` and `ContMDiffSMul` for continuously differentiable actions on manifolds.
As an application, we prove that the general linear group `(V →L[𝕜] V)ˣ` of any Banach space `V` acts smoothly on `V`.
---
- [x] depends on: #38620
See also #38527 that adds an analogous `ContDiffSMul` for actions of normed vector spaces.
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry |
197/30 |
Mathlib.lean,Mathlib/Analysis/Complex/UpperHalfPlane/Manifold.lean,Mathlib/Geometry/Manifold/Algebra/SMul.lean,Mathlib/Geometry/Manifold/Algebra/SmoothFunctions.lean,Mathlib/Geometry/Manifold/BumpFunction.lean,Mathlib/Geometry/Manifold/ContMDiff/NormedSpace.lean,Mathlib/Geometry/Manifold/Instances/UnitsOfNormedAlgebra.lean,Mathlib/Geometry/Manifold/MFDeriv/NormedSpace.lean,Mathlib/Geometry/Manifold/VectorBundle/SmoothSection.lean |
9 |
27 |
['github-actions', 'grunweg', 'mathlib-dependent-issues', 'mathlib-splicebot', 'peabrainiac'] |
grunweg and sgouezel assignee:grunweg assignee:sgouezel |
1-6961 1 day ago |
1-7026 1 day ago |
2-65775 2 days |
| 38740 |
Bergschaf author:Bergschaf |
feat(Order/Sublattice): The range of a LatticeHom is a Sublattice |
---
[](https://gitpod.io/from-referrer/)
|
t-order
easy
|
12/0 |
Mathlib/Order/Sublattice.lean |
1 |
1 |
['github-actions'] |
nobody |
1-1083 1 day ago |
1-1112 1 day ago |
1-826 1 day |
| 27493 |
themathqueen author:themathqueen |
feat(RingTheory/Coalgebra): define Frobenius algebra |
A Frobenius algebra `A` has the structure of both an algebra and a coalgebra such that:
`(mul ⊗ id) ∘ assoc.symm ∘ (id ⊗ comul) = comul ∘ mul = (id ⊗ mul) ∘ assoc ∘ (comul ⊗ id)`.
In diagrams this law looks like:

It suffices to show that
`(mul ⊗ id) ∘ assoc.symm ∘ (id ⊗ comul) = (id ⊗ mul) ∘ assoc ∘ (comul ⊗ id)`.
---
- [x] depends on: #27567
- [x] depends on: #27569
- [x] depends on: #32245
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
112/0 |
Mathlib.lean,Mathlib/RingTheory/FrobeniusAlgebra.lean |
2 |
25 |
['YaelDillies', 'erdOne', 'github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot', 'themathqueen'] |
alreadydone assignee:alreadydone |
0-85556 23 hours ago |
0-85599 23 hours ago |
47-63645 47 days |
| 38743 |
eric-wieser author:eric-wieser |
feat: `Finite` instances for `Sym` |
We already have the `Fintype` instances.
I take the liberty of moving these into namespaces in order to produce nicer auto-generated instance names.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
25/3 |
Mathlib/Data/Fintype/Vector.lean |
1 |
1 |
['github-actions'] |
nobody |
0-85555 23 hours ago |
1-63 23 hours ago |
0-86119 23 hours |
| 38730 |
vihdzp author:vihdzp |
feat: `IsBotOneClass` and `IsBotZeroClass` |
We create typeclasses expressing that `0` or `1` is a bottom element in a type. We use this to unify and generalize various theorems which are currently stated for canonically ordered monoids.
This has provisionally left us with a bunch of unnecessary aliases; these will be deprecated in a follow-up PR.
See [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Typeclass.20for.20IsBot.200/near/586314552).
---
[](https://gitpod.io/from-referrer/)
|
t-order
large-import
|
226/164 |
Mathlib.lean,Mathlib/Algebra/Order/Field/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Range.lean,Mathlib/Algebra/Order/IsBotOne.lean,Mathlib/Algebra/Order/Monoid/Canonical/Defs.lean,Mathlib/Algebra/Order/Monoid/Unbundled/Basic.lean,Mathlib/Algebra/Order/Nonneg/Ring.lean,Mathlib/Algebra/Order/Ring/Nat.lean,Mathlib/NumberTheory/Ostrowski.lean,Mathlib/Order/Interval/Set/Basic.lean,Mathlib/RingTheory/Valuation/Archimedean.lean,Mathlib/RingTheory/Valuation/ValuationRing.lean,Mathlib/RingTheory/Valuation/ValuativeRel/Basic.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Topology/Algebra/ValuativeRel/ValuativeTopology.lean,Mathlib/Topology/UnitInterval.lean |
17 |
1 |
['github-actions'] |
nobody |
0-82878 23 hours ago |
0-82921 22 hours ago |
1-6861 1 day |
| 38426 |
SnirBroshi author:SnirBroshi |
feat(Data/Set/Card): `Fintype.card s = s.ncard` |
We have `↑(Fintype.card s) = s.encard` but we don't yet have a theorem relating `Fintype.card` and `Set.ncard`.
This adds `Fintype.card s = s.ncard` for `Fintype s`, and also `s.ncard = s.encard` for `Finite s`.
---
~~(tagging `simp` is problematic since the aforementioned theorem (`Set.coe_fintypeCard`) is `simp`, and I'm not sure we should untag it)~~
[](https://gitpod.io/from-referrer/)
|
t-data |
8/0 |
Mathlib/Data/Set/Card.lean |
1 |
4 |
['SnirBroshi', 'Vierkantor', 'b-mehta', 'github-actions'] |
Vierkantor assignee:Vierkantor |
0-82838 23 hours ago |
1-65571 1 day ago |
5-58912 5 days |
| 38746 |
eric-wieser author:eric-wieser |
chore: `AffineSubspace.Parallel` is an equivalence relation |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
12/0 |
Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-80629 22 hours ago |
0-80706 22 hours ago |
0-80362 22 hours |
| 36501 |
AntoineChambert-Loir author:AntoineChambert-Loir |
feat(RingTheory/GradedAlgebra/Homogeneous/RingQuot): graded structure on the quotient of a graded ring by a homogeneous ideal |
Define the graded structure on the quotient of a graded ring by a homogeneous ideal
Co-authored with: @mariainesdff
(Possible TODO:
- Maybe define the graded structure on the quotient of a graded module by a homogeneous submodule.
- There is also an issue of working with ring congruences rather than with ideals. )
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
552/19 |
Mathlib.lean,Mathlib/Algebra/BigOperators/Group/Finset/Basic.lean,Mathlib/Algebra/DirectSum/Decomposition.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Basic.lean,Mathlib/AlgebraicGeometry/ProjectiveSpectrum/Scheme.lean,Mathlib/Data/DFinsupp/BigOperators.lean,Mathlib/RingTheory/GradedAlgebra/Basic.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/Ideal.lean,Mathlib/RingTheory/GradedAlgebra/Homogeneous/RingQuot.lean,Mathlib/RingTheory/GradedAlgebra/HomogeneousLocalization.lean,Mathlib/RingTheory/Ideal/Span.lean |
11 |
117 |
['AntoineChambert-Loir', 'chrisflav', 'eric-wieser', 'github-actions', 'robin-carlier'] |
eric-wieser, ocfnash, robin-carlier assignee:eric-wieser assignee:ocfnash assignee:robin-carlier |
0-79958 22 hours ago |
1-7716 1 day ago |
25-4457 25 days |
| 38672 |
drocta author:drocta |
feat(Algebra/Colimit/DirectLimit): add Algebra structure for DirectLimit |
add `Algebra` instance to `DirectLimit`. also add a few lemmas for it for the algebra map, and also define the `of`, `lift`, and the `of_f`, `lift_of` and `hom_ext` lemmas for it.
---
Use of AI:
I again made some use of ChatGPT for some advice while writing this code, as well as the auto-complete in VS Code.
However, I can personally vouch for all of these contributions, and that I understand all of it.
This is the second part of my project towards supporting direct limits of $C^*$-algebras (as I described [on Zulip](https://leanprover.zulipchat.com/#narrow/channel/113489-new-members/topic/Early.20feedback.20on.20approach.20towards.20formalizing.20UHF.20algebras.3F) ).
This PR adds an import of `Mathlib.Algebra.Algebra.Hom` (because it needs `AlgHom` and `AlgHomClass` ) in addition to the import of `Mathlib.Algebra.Star.StarRingHom` added in PR #38308 . In the next PR I intend to make, these two should be replaced with an import of `Mathlib.Algebra.Star.StarAlgHom` .
|
t-algebra
new-contributor
large-import
label:t-algebra$ |
84/0 |
Mathlib/Algebra/Colimit/DirectLimit.lean |
1 |
5 |
['drocta', 'github-actions', 'mathlib-bors'] |
nobody |
0-78482 21 hours ago |
1-73298 1 day ago |
1-73090 1 day |
| 35402 |
samueloettl author:samueloettl |
feat(Dynamics/BirkhoffSum): birkhoffAverage const |
---
I think this is useful and one of these should be a simp lemma.
I'm not really sure if I got the naming of the theorems correct.
When generalizing to the assumption (n : R) ≠ 0 instead of the special case CharZero R with n ≠ 0 I had to use "open Classical in". I'm a bit unfamiliar with that part so please check if this makes sense. See also https://github.com/leanprover-community/mathlib4/pull/35307#discussion_r2823586252
[](https://gitpod.io/from-referrer/)
|
t-dynamics
new-contributor
|
14/0 |
Mathlib/Dynamics/BirkhoffSum/Average.lean |
1 |
25 |
['Maldooor', 'github-actions', 'lua-vr', 'mcdoll', 'samueloettl'] |
mcdoll assignee:mcdoll |
0-76509 21 hours ago |
1-26806 1 day ago |
67-25275 67 days |
| 38365 |
vihdzp author:vihdzp |
feat: `#Ordinal = univ` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
easy
|
6/1 |
Mathlib/SetTheory/Ordinal/Univ.lean |
1 |
2 |
['b-mehta', 'github-actions', 'vihdzp'] |
nobody |
0-74865 20 hours ago |
8-44959 8 days ago |
8-44615 8 days |
| 35210 |
kim-em author:kim-em |
chore: use @[to_dual] in CompleteLattice extras and Set.Lattice |
This PR uses `@[to_dual]` to auto-generate dual theorems in `Order.CompleteLattice.Lemmas`, `Order.CompleteLattice.Finset`, and `Data.Set.Lattice`, deleting hand-written dual versions.
[Diff relative to previous PR](https://github.com/kim-em/mathlib4/compare/kim/to-dual-complete-lattice...kim/to-dual-complete-lattice-extras)
- [ ] depends on: #35209
🤖 Prepared with Claude Code |
LLM-generated |
37/94 |
Mathlib/Data/Set/Lattice.lean,Mathlib/Order/CompleteLattice/Finset.lean,Mathlib/Order/CompleteLattice/Lemmas.lean,Mathlib/Tactic/SetLike.lean |
4 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-74404 20 hours ago |
0-74428 20 hours ago |
0-75002 20 hours |
| 35865 |
vihdzp author:vihdzp |
chore: review `Cardinal.ord` API |
This PR does the following:
- Mark `Cardinal.ord` as no expose.
- Prove the defining property `gciOrdCard` earlier.
- Deprecate the unused `ord.orderEmbedding` (it simply restates that the function is strictly monotonic).
- Rename `ord_nat` → `ord_natCast`.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
39/36 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Ordinal/Arithmetic.lean,Mathlib/SetTheory/Ordinal/Basic.lean |
3 |
6 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-73859 20 hours ago |
21-82964 21 days ago |
57-26902 57 days |
| 36495 |
AlexKontorovich author:AlexKontorovich |
chore(Finset/NatDivisors): refactor `card_divisors_mul` and `sum_divisors_mul` to not rely on `ArithmeticFunction` |
`Nat.Coprime.card_divisors_mul` and `Nat.Coprime.sum_divisors_mul` are moved to not rely on `ArithmeticFunction`. See zulip discussion here: [#mathlib4 > Library design question, e.g.`Nat.Coprime.card_divisors_mul` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Library.20design.20question.2C.20e.2Eg.2E.60Nat.2ECoprime.2Ecard_divisors_mul.60/near/577769899)
Co-authored-by: Ziyan Wei and Aayush Rajasekaran
---
[](https://gitpod.io/from-referrer/)
|
large-import
t-number-theory
t-algebra
label:t-algebra$ |
41/14 |
Mathlib/Algebra/GCDMonoid/Basic.lean,Mathlib/Data/Finset/NatDivisors.lean,Mathlib/NumberTheory/ArithmeticFunction/Misc.lean |
3 |
5 |
['AlexKontorovich', 'arajasek', 'github-actions'] |
nobody |
0-73858 20 hours ago |
22-30197 22 days ago |
45-23912 45 days |
| 36604 |
JovanGerb author:JovanGerb |
feat(Translate): reorder universes |
This PR improves the heuristic for reordering of universes in `to_dual`/`to_additive`. The previous heuristic worked well when the first two universes had to be swapped. For example for translating `a ^ n` to `n • a`, and for dualizing `GaloisConnection`. However, in Category theory we sometimes need to swap more universes because a category instance comes with 2 universes which both need to be swapped. In particular, the comma category, and adjunctions both need this feature.
This PR doesn't add any syntax for specifying the reordering of universes. It is assumed that the universe reordering can always be inferred from the normal reordering and from the type.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
204/91 |
Mathlib/CategoryTheory/Comma/Basic.lean,Mathlib/Tactic/Translate/Core.lean,Mathlib/Tactic/Translate/Reorder.lean,MathlibTest/ToDual.lean |
4 |
8 |
['JovanGerb', 'bryangingechen', 'github-actions', 'mathlib-bors', 'mathlib-merge-conflicts'] |
nobody |
0-73857 20 hours ago |
22-20635 22 days ago |
36-35978 36 days |
| 34271 |
gasparattila author:gasparattila |
feat(Topology/Sets): second-countability of `(Nonempty)Compacts` |
---
- [x] depends on: #34266
- [x] depends on: #34268
[](https://gitpod.io/from-referrer/)
|
t-topology |
17/76 |
Mathlib/Topology/MetricSpace/Closeds.lean,Mathlib/Topology/Sets/VietorisTopology.lean |
2 |
8 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'scholzhannah'] |
nobody |
0-73856 20 hours ago |
22-41246 22 days ago |
29-12947 29 days |
| 31176 |
mcdoll author:mcdoll |
feat(Analysis): Taylor's theorem with the integral remainder |
Prove Taylor's theorem with the integral remainder in higher dimensions.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
145/1 |
Mathlib.lean,Mathlib/Analysis/Calculus/TaylorIntegral.lean,docs/100.yaml,docs/undergrad.yaml |
4 |
8 |
['github-actions', 'j-loreaux', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'mcdoll', 'sgouezel'] |
nobody |
0-73855 20 hours ago |
22-60451 22 days ago |
30-5450 30 days |
| 38349 |
SnirBroshi author:SnirBroshi |
chore(Combinatorics/SimpleGraph/Coloring/VertexColoring): rename to `Vertex.lean` |
After #37525 moved `Coloring.lean` to `Coloring/VertexColoring.lean`, a [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Coloring.20module.20names/with/583281500) poll decided to avoid duplicating the word "Coloring", so this renames `Coloring/VertexColoring.lean` to `Coloring/Vertex.lean`.
---
I planned to make this move in #33313 but it isn't moving along, so I think it's best to split the renaming.
#37546 adds module deprecation
[](https://gitpod.io/from-referrer/)
|
file-removed
t-combinatorics
|
6/6 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Constructions.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Vertex.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Partition.lean,Mathlib/Combinatorics/SimpleGraph/Sum.lean |
7 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-73615 20 hours ago |
0-73641 20 hours ago |
8-73443 8 days |
| 29434 |
ntapiam author:ntapiam |
feat(NonAssoc/LieAdmissible): prove every ring/algebra is LieAdmissible |
-awaiting-author |
t-algebra
new-contributor
label:t-algebra$ |
32/6 |
Mathlib/Algebra/NonAssoc/LieAdmissible/Defs.lean |
1 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
ocfnash assignee:ocfnash |
0-72992 20 hours ago |
15-50594 15 days ago |
15-51344 15 days |
| 36667 |
NoneMore author:NoneMore |
feat(ModelTheory): add `exClosure` definition for first-order formulas |
Prepare for moving realizations between elementarily equivalent structures.
---
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-logic
|
37/0 |
Mathlib/ModelTheory/Semantics.lean,Mathlib/ModelTheory/Syntax.lean |
2 |
2 |
['github-actions'] |
fpvandoorn assignee:fpvandoorn |
0-72990 20 hours ago |
46-58075 46 days ago |
46-57731 46 days |
| 37584 |
kennethgoodman author:kennethgoodman |
feat(Data/Nat/Fib): formalize Lamé's theorem |
## Summary
Formalize [Lamé's theorem](https://en.wikipedia.org/wiki/Lam%C3%A9%27s_theorem) (1844), the founding result of computational complexity theory.
**Lamé's Theorem:** If the Euclidean algorithm on inputs `(a, b)` with `b ≤ a` takes `n + 1` division steps, then `b ≥ fib(n + 1)` and `a ≥ fib(n + 2)`.
### New definitions
- `Nat.euclidSteps`: counts the number of division steps in the Euclidean algorithm on natural number inputs.
### New theorems
- `Nat.fib_le_of_euclidSteps`: the main Lamé bound — Fibonacci lower bound on inputs given a step count.
- `Nat.euclidSteps_le_of_lt_fib`: the contrapositive — step count upper bound given a Fibonacci bound on the smaller input.
- `Nat.add_mod_le`: helper lemma that `b + a % b ≤ a` when `b ≤ a` and `0 < b`.
### Proof strategy
Induction on `n`, tracking both elements of the pair. The key insight is that each Euclidean step replaces `(a, b)` with `(b, a % b)`, and since `a ≥ b + a % b` (because `a / b ≥ 1`), the Fibonacci recurrence `fib(n+3) = fib(n+2) + fib(n+1)` matches the structure of the algorithm.
### References
- Gabriel Lamé, *Note sur la limite du nombre des divisions dans la recherche du plus grand commun diviseur entre deux nombres entiers*, Comptes rendus de l'Académie des sciences, 1844.
---
### AI usage disclosure
Per the [Mathlib AI guidelines](https://leanprover-community.github.io/contribute/index.html#use-of-ai): Claude Code (Claude Opus 4.6) was used to assist with writing the Lean 4 proof code, fixing tactic errors, and drafting this PR description. The mathematical proof (induction on step count, tracking both pair elements through the Fibonacci recurrence) was designed by hand and verified on paper before formalization. I have reviewed and understand every line of the resulting Lean code and can explain all proof steps.
---
- [x] builds cleanly (`lake build Mathlib.Data.Nat.Fib.Lame`)
- [x] no `sorry`
- [x] lines ≤ 100 characters, no trailing whitespace
- [x] `autoImplicit false`
- [x] docstrings on all public declarations |
new-contributor
LLM-generated
t-data
|
121/0 |
Mathlib.lean,Mathlib/Data/Nat/Basic.lean,Mathlib/Data/Nat/Fib/Basic.lean,Mathlib/Data/Nat/Fib/Lame.lean,docs/1000.yaml |
5 |
24 |
['euprunin', 'github-actions', 'kennethgoodman', 'vihdzp', 'wwylele'] |
joneugster assignee:joneugster |
0-72985 20 hours ago |
19-30374 19 days ago |
26-72395 26 days |
| 37682 |
SabrinaJewson author:SabrinaJewson |
refactor(Order/OrdContinuous): redefine left and right order continuity to not require preserving ⊥/⊤ |
`LeftOrdContinuous` currently requires that `f ⊥ = ⊥`, but this means that many functions that are perhaps intuitively left-continuous (like `f x = x + 1` on `ℝ≥0`) are not. In particular, this change means that functions between conditionally complete lattices are `LeftOrdContinuous` iff they are monotone and topologically left continuous (see `MonotoneOn.map_csSup_of_continuousWithinAt` for the reverse direction).
If one wants the concept that existed before, one can either accept the `f ⊥ = ⊥` hypothesis separately or, if the function is between complete lattices, use the left side of a `GaloisConnection` (which is equivalent, although I think this is not yet in Mathlib).
This removes the definitional equality of the type in favour of a structure. Since most of the time users will be working with the `sSup` versions and not with `IsLUB`, I think this is justified. As a consequence, this removes the definitional equality between `LeftOrdContinuous` and `RightOrdContinuous` of the dual – the latter could be redefined to re-add this, but we do have conversion functions.
`LeftOrdContinuous.continuousWithinAt_Iic` is rewritten to accomodate these changes; the superfluous `DenselyOrdered` assumption is also removed.
[Zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/LeftOrdContinuous.20requires.20f.28.E2.8A.A5.29.20.3D.20.E2.8A.A5/near/582932491)
---
- [x] depends on: #37735
- [x] depends on: #37772
[](https://gitpod.io/from-referrer/)
|
new-contributor
t-order
|
52/38 |
Mathlib/Order/OrdContinuous.lean,Mathlib/Order/SemiconjSup.lean,Mathlib/Topology/Order/Basic.lean |
3 |
10 |
['SabrinaJewson', 'astrainfinita', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
0-72984 20 hours ago |
20-81882 20 days ago |
22-78647 22 days |
| 37858 |
tb65536 author:tb65536 |
feat(RingTheory/LocalRing/ResidueField/Fiber): `Ideal.Fiber` is a quotient of a localization |
This PR proves that `Ideal.Fiber` is a quotient of a localization. This is needed for #37130.
---
- [x] depends on: #37380
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
16/0 |
Mathlib/RingTheory/LocalRing/ResidueField/Fiber.lean |
1 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
mariainesdff assignee:mariainesdff |
0-72983 20 hours ago |
20-25658 20 days ago |
20-26054 20 days |
| 37955 |
artie2000 author:artie2000 |
feat(Algebra/Polynomial): lemmas about `modByMonic` |
* Add various small lemmas about `Polynomial.modByMonic`
* Remove unneccesary commutativity assumption on `Polynomial.aeval_eq_zero_of_dvd_aeval_eq_zero` by proving `Polynomial.aeval_dvd`
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
20/6 |
Mathlib/Algebra/Polynomial/AlgebraMap.lean,Mathlib/Algebra/Polynomial/Div.lean,Mathlib/Algebra/Polynomial/RingDivision.lean,Mathlib/FieldTheory/Minpoly/Basic.lean,Mathlib/RingTheory/Polynomial/IsIntegral.lean |
5 |
1 |
['github-actions'] |
ocfnash assignee:ocfnash |
0-72982 20 hours ago |
18-21797 18 days ago |
18-22301 18 days |
| 38428 |
tb65536 author:tb65536 |
refactor(RepresentationTheory/Coinvariants): use `IntertwiningMap` in `Coinvariants.map` |
Currently `Coinvariants.map` has the intertwining condition as as a separatel hypothesis. This PR switches over to the bundled `IntertwiningMap`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
16/20 |
Mathlib/RepresentationTheory/Coinvariants.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/Basic.lean,Mathlib/RepresentationTheory/Homological/GroupHomology/FiniteCyclic.lean,Mathlib/RepresentationTheory/Homological/Resolution.lean,Mathlib/RepresentationTheory/Induced.lean,Mathlib/RepresentationTheory/Rep/Basic.lean |
6 |
1 |
['Whysoserioushah', 'github-actions'] |
riccardobrasca assignee:riccardobrasca |
0-72977 20 hours ago |
7-2931 7 days ago |
7-2589 7 days |
| 38564 |
wwylele author:wwylele |
chore(Algebra/Group): remove `backward.privateInPublic` |
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
tech debt
label:t-algebra$ |
20/32 |
Mathlib/Algebra/Group/Defs.lean,Mathlib/Algebra/Group/Subsemigroup/Operations.lean,Mathlib/Algebra/GroupWithZero/Basic.lean |
3 |
1 |
['github-actions'] |
jcommelin assignee:jcommelin |
0-72976 20 hours ago |
3-66898 3 days ago |
3-66554 3 days |
| 38682 |
yuanyi-350 author:yuanyi-350 |
chore(Geometry/Euclidean/Sphere/Basic): remove an erw |
- rewrites through `Matrix.vecCons` before `Fin.cons_injective_iff`, so the affine-independence proof uses `rw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-euclidean-geometry
|
1/1 |
Mathlib/Geometry/Euclidean/Sphere/Basic.lean |
1 |
3 |
['github-actions', 'jcommelin', 'yuanyi-350'] |
jsm28 assignee:jsm28 |
0-72974 20 hours ago |
1-76235 1 day ago |
1-75891 1 day |
| 38690 |
yuanyi-350 author:yuanyi-350 |
chore(Topology/Homotopy/Product): remove an erw |
- uses `rw [pi_lift]` directly in `pi_proj`, so the quotient induction no longer needs `erw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-topology
LLM-generated
|
1/2 |
Mathlib/Topology/Homotopy/Product.lean |
1 |
2 |
['github-actions', 'jcommelin', 'yuanyi-350'] |
ADedecker assignee:ADedecker |
0-72974 20 hours ago |
1-76172 1 day ago |
1-75828 1 day |
| 38696 |
e-271828 author:e-271828 |
feat(Analysis/Complex): formalize Morera's theorem [LLM-generated] |
## Summary
This PR formalizes Morera's theorem: a continuous complex-valued function with vanishing integrals along all triangles is holomorphic.
## Main Definitions and Theorems
- `eventually_bound_of_tendstoUniformlyOn`: Shows that uniformly converging continuous functions on a compact set are eventually uniformly bounded. This is used as a dominating function for the DCT.
- `segmentIntegral`: Defines the complex integral along a straight line segment.
- `hasDerivAt_complexPrimitive`: Proves that the primitive function defined by segment integrals is complex differentiable with derivative `f`.
- `morera_theorem`: The main result, concluding that `f` is differentiable by leveraging the analyticity of holomorphic functions in Mathlib.
## Implementation Notes
Following the discussion on Zulip, this code has been manually refined to ensure strict adherence to Mathlib's coding standards, including:
- Proper naming conventions and docstrings.
- Elimination of unnecessary dependencies.
- Use of existing library theorems such as `Asymptotics.isLittleO_iff` and `AnalyticAt.deriv`.
The proof structure focuses on the connection between measure-theoretic interval integrals and complex differentiability, providing a robust foundation for further complex analysis formalizations.
As per the previous advice from @j-loreaux and Mathlib's policy, the initial structure of this PR was assisted by an LLM (Gemini), though strictly manually refined. Could a maintainer please attach the LLM-generated label to this PR?
---
[](https://gitpod.io/from-referrer/)
|
t-analysis
new-contributor
LLM-generated
|
256/0 |
Mathlib/Analysis/Complex/CauchyIntegral.lean |
1 |
3 |
['e-271828', 'github-actions'] |
j-loreaux assignee:j-loreaux |
0-72973 20 hours ago |
1-66838 1 day ago |
1-66494 1 day |
| 38701 |
loefflerd author:loefflerd |
feat(Mathlib/Topology): functional-analytic prereqs for PR 37984 |
Various miscellaneous constructions around spaces of continuous functions and continuous linear maps, needed for the theory of nonarchimedean measures being developed in PR 37984. The main new result is a criterion for the map
`C(X, R) ⊗[R] C(Y, R) → C(X × Y, R)` to have dense image.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
88/0 |
Mathlib/Topology/Algebra/Module/LinearMap.lean,Mathlib/Topology/ContinuousMap/Algebra.lean,Mathlib/Topology/UniformSpace/ProdApproximation.lean |
3 |
1 |
['github-actions'] |
j-loreaux assignee:j-loreaux |
0-72971 20 hours ago |
1-54399 1 day ago |
1-54055 1 day |
| 38710 |
FLDutchmann author:FLDutchmann |
fix(Tactic/Algebra): compatibility with module system |
`algebra` does not work in any files using the module system because the lemmas used are not imported pulically. This issue was not caught because the test file did not use the module system.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
4/2 |
Mathlib/Tactic/Algebra/Basic.lean,MathlibTest/Algebra.lean |
2 |
1 |
['github-actions'] |
JovanGerb assignee:JovanGerb |
0-72970 20 hours ago |
1-31776 1 day ago |
1-31432 1 day |
| 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 |
58/0 |
Mathlib/Order/Bounds/Basic.lean,Mathlib/Order/ConditionallyCompleteLattice/Finset.lean,Mathlib/Order/ConditionallyCompleteLattice/Indexed.lean |
3 |
11 |
['SnirBroshi', 'Vierkantor', 'github-actions', 'vihdzp'] |
Vierkantor assignee:Vierkantor |
0-70871 19 hours ago |
0-73934 20 hours ago |
22-26448 22 days |
| 38748 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Basic): `G.edgeSet ⊆ s.sym2 ↔ G.support ⊆ s` |
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
19/4 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean |
2 |
1 |
['github-actions'] |
nobody |
0-68019 18 hours ago |
0-68091 18 hours ago |
0-67747 18 hours |
| 38739 |
CoolRmal author:CoolRmal |
feat: Analytic Hahn Banach theorem for locally convex spaces |
Closes #38419
This PR proves Hahn-Banach theorem for locally convex spaces, which allow us to
generalize both [ContinuousLinearMap.exist_extension_of_finiteDimensional_range](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Normed/Module/HahnBanach.html#ContinuousLinearMap.exist_extension_of_finiteDimensional_range) and [Submodule.ClosedComplemented.of_finiteDimensional](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Analysis/Normed/Module/HahnBanach.html#Submodule.ClosedComplemented.of_finiteDimensional) (I also moved these two lemmas to the new file I created). Some helper lemmas about continuity of seminorms/linear functions are added.
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
118/40 |
Mathlib.lean,Mathlib/Analysis/LocallyConvex/HahnBanach.lean,Mathlib/Analysis/LocallyConvex/WithSeminorms.lean,Mathlib/Analysis/Normed/Module/HahnBanach.lean,Mathlib/Analysis/Seminorm.lean |
5 |
2 |
['CoolRmal', 'github-actions'] |
nobody |
0-67339 18 hours ago |
0-67399 18 hours ago |
0-68044 18 hours |
| 38097 |
NoahW314 author:NoahW314 |
feat: add `IndiscreteTopology` instances |
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
24/0 |
Mathlib/Topology/Homotopy/Contractible.lean,Mathlib/Topology/Inseparable.lean,Mathlib/Topology/NoetherianSpace.lean,Mathlib/Topology/Separation/Connected.lean |
4 |
5 |
['NoahW314', 'github-actions', 'scholzhannah', 'vihdzp'] |
PatrickMassot assignee:PatrickMassot |
0-65728 18 hours ago |
14-30334 14 days ago |
14-49029 14 days |
| 37076 |
ertwro author:ertwro |
feat(Combinatorics/SimpleGraph/Hasse): Hasse diagram is triangle-free |
Add `SimpleGraph.hasse_cliqueFree_three`: the Hasse diagram of a preorder is triangle-free (`CliqueFree 3`).
This is the graph-theoretic formulation of `not_covBy_of_lt_of_lt`: if `a ⋖ b` and `b ⋖ c`, then `¬ a ⋖ c`, so no three elements can be pairwise adjacent in the Hasse diagram.
The proof extracts three vertices from a hypothetical 3-clique, case-splits on the covering directions (8 cases), and closes each by `not_covBy_of_lt_of_lt` (6 transitive cases) or `lt_asymm` (2 cyclic cases).
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
11/0 |
Mathlib/Combinatorics/SimpleGraph/Hasse.lean |
1 |
21 |
['Rida-Hamadani', 'SnirBroshi', 'ertwro', 'github-actions', 'vlad902'] |
nobody |
0-64918 18 hours ago |
11-62403 11 days ago |
19-71839 19 days |
| 38392 |
ldct author:ldct |
feat: (anti-)periodicity of complex sinh,cosh,tanh |
Add antiperiodicity and periodicity theorems for complex sinh/cosh/tanh
from AlexKontorovich/PrimeNumberTheoremAnd
---
[](https://gitpod.io/from-referrer/)
|
t-analysis |
41/0 |
Mathlib/Analysis/SpecialFunctions/Trigonometric/Basic.lean |
1 |
3 |
['SnirBroshi', 'github-actions', 'j-loreaux', 'ldct'] |
j-loreaux assignee:j-loreaux |
0-63702 17 hours ago |
0-63737 17 hours ago |
0-63393 17 hours |
| 38092 |
SnirBroshi author:SnirBroshi |
chore(Order/Defs/Unbundled): deprecate `def Symmetric` in favor of `class Std.Symm` |
---
[Mathlib's `def Symmetric`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Defs/Unbundled.html#Symmetric)
[Core's `class Std.Symm`](https://leanprover-community.github.io/mathlib4_docs/Init/Core.html#Std.Symm)
[Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Relation.20properties.20duplication/near/544638270)
[](https://gitpod.io/from-referrer/)
|
t-order |
468/412 |
Archive/Wiedijk100Theorems/FriendshipGraphs.lean,Archive/Wiedijk100Theorems/Konigsberg.lean,Counterexamples/HeawoodUnitDistance.lean,Mathlib/Algebra/BigOperators/Group/List/Lemmas.lean,Mathlib/Algebra/Divisibility/Units.lean,Mathlib/Algebra/Group/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Basic.lean,Mathlib/Analysis/BoxIntegral/Partition/Split.lean,Mathlib/Analysis/InnerProductSpace/Orthogonal.lean,Mathlib/Analysis/Normed/Operator/Compact/FredholmAlternative.lean,Mathlib/CategoryTheory/Abelian/Pseudoelements.lean,Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Final.lean,Mathlib/CategoryTheory/Limits/IsConnected.lean,Mathlib/Combinatorics/Additive/ErdosGinzburgZiv.lean,Mathlib/Combinatorics/Digraph/Orientation.lean,Mathlib/Combinatorics/Graph/Basic.lean,Mathlib/Combinatorics/Graph/Delete.lean,Mathlib/Combinatorics/Graph/Lattice.lean,Mathlib/Combinatorics/Graph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/AdjMatrix.lean,Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Bipartite.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Clique.lean,Mathlib/Combinatorics/SimpleGraph/CompleteMultipartite.lean,Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean,Mathlib/Combinatorics/SimpleGraph/Dart.lean,Mathlib/Combinatorics/SimpleGraph/Density.lean,Mathlib/Combinatorics/SimpleGraph/Hall.lean,Mathlib/Combinatorics/SimpleGraph/Hasse.lean,Mathlib/Combinatorics/SimpleGraph/LineGraph.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Matching.lean,Mathlib/Combinatorics/SimpleGraph/Operations.lean,Mathlib/Combinatorics/SimpleGraph/Prod.lean,Mathlib/Combinatorics/SimpleGraph/Regularity/Uniform.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean,Mathlib/Combinatorics/SimpleGraph/Sum.lean,Mathlib/Combinatorics/SimpleGraph/Triangle/Tripartite.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Data/Finset/Pairwise.lean,Mathlib/Data/Finsupp/BigOperators.lean,Mathlib/Data/List/Pairwise.lean,Mathlib/Data/List/Sigma.lean,Mathlib/Data/Multiset/Bind.lean,Mathlib/Data/Multiset/Defs.lean,Mathlib/Data/Multiset/Pairwise.lean,Mathlib/Data/Multiset/Replicate.lean,Mathlib/Data/Nat/GCD/Basic.lean,Mathlib/Data/Rel/Separated.lean,Mathlib/Data/Seq/Computation.lean,Mathlib/Data/Set/Pairwise/Basic.lean,Mathlib/Data/Set/Pairwise/List.lean,Mathlib/Data/Sym/Sym2.lean,Mathlib/Data/WSeq/Relation.lean,Mathlib/GroupTheory/Perm/Cycle/Factors.lean,Mathlib/GroupTheory/Perm/Cycle/Type.lean,Mathlib/GroupTheory/Perm/Support.lean,Mathlib/Logic/Function/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/MeasureTheory/Measure/AEDisjoint.lean,Mathlib/MeasureTheory/Measure/NullMeasurable.lean,Mathlib/ModelTheory/Graph.lean,Mathlib/ModelTheory/Semantics.lean,Mathlib/NumberTheory/ArithmeticFunction/Defs.lean,Mathlib/Order/Antichain.lean,Mathlib/Order/Defs/Unbundled.lean,Mathlib/Order/Disjoint.lean,Mathlib/Order/Lattice.lean,Mathlib/Order/Preorder/Chain.lean,Mathlib/Order/PropInstances.lean,Mathlib/RingTheory/Coprime/Ideal.lean,Mathlib/RingTheory/Radical/Basic.lean,Mathlib/Topology/CWComplex/Classical/Graph.lean,Mathlib/Topology/CompactOpen.lean,Mathlib/Topology/Connected/Clopen.lean,Mathlib/Topology/MetricSpace/MetricSeparated.lean,Mathlib/Topology/Separation/Basic.lean,Mathlib/Topology/Separation/GDelta.lean |
81 |
4 |
['SnirBroshi', 'github-actions', 'leanprover-radar', 'mathlib-merge-conflicts'] |
nobody |
0-62241 17 hours ago |
0-62306 17 hours ago |
13-61097 13 days |
| 37084 |
SnirBroshi author:SnirBroshi |
feat(Order/PropInstances): relations and `Subsingleton` |
`r = ⊤ ↔ Refl r` and `r = ⊥ ↔ Irrefl r` given `Subsingleton`
---
[](https://gitpod.io/from-referrer/)
|
t-order |
8/1 |
Mathlib/Order/PropInstances.lean |
1 |
2 |
['github-actions', 'robin-carlier'] |
nobody |
0-58968 16 hours ago |
0-59028 16 hours ago |
34-67041 34 days |
| 37930 |
vlad902 author:vlad902 |
chore(SimpleGraph): move `cycleGraph` to its own file |
PR #34797 re-defined `cycleGraph` independent of `circulantGraph`. Now move the definition of `cycleGraph` to its own file so that the definition can be used without importing the algebra hierarchy.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
173/148 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Circulant.lean,Mathlib/Combinatorics/SimpleGraph/Cycle.lean |
3 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-56526 15 hours ago |
0-56549 15 hours ago |
0-56592 15 hours |
| 36442 |
SnirBroshi author:SnirBroshi |
feat(Data/Sym/Sym2/Card): cardinality theorems about `Sym2 α` |
---
[](https://gitpod.io/from-referrer/)
|
t-data
maintainer-merge
|
100/0 |
Mathlib.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/Sym/Sym2/Card.lean |
3 |
20 |
['SnirBroshi', 'eric-wieser', 'github-actions', 'joneugster', 'themathqueen'] |
joneugster assignee:joneugster |
0-55403 15 hours ago |
5-85007 5 days ago |
37-54855 37 days |
| 38744 |
eric-wieser author:eric-wieser |
feat: add `Nat.Coprime.divisors_mul` |
The main result here is that products of divisors taken from coprime naturals are unique.
A similar statement could be
```
theorem Nat.Coprime.divisors_mul' {m n : ℕ} (hmn : m.Coprime n) :
divisors (m * n) =
(divisors m).attach.disjiUnion (fun i => (divisors n).map ⟨(i.1 * ·), mul_right_injective₀ sorry⟩) sorry := sorry
```
but this seems even uglier.
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-data
|
23/1 |
Mathlib/Data/Finset/NatDivisors.lean |
1 |
1 |
['github-actions'] |
nobody |
0-52884 14 hours ago |
0-82976 22 hours ago |
0-82632 22 hours |
| 38582 |
dennj author:dennj |
feat(LinearAlgebra/Matrix): add Hadamard matrices |
Introduce `Matrix.IsHadamard` over a general `Ring R`, with the basic theory:
- `IsHadamard` and `IsComplexHadamard` predicates (Definitions 2.3.1 and 2.7.1
of de Launey–Flannery, *Algebraic Design Theory*).
- `IsHadamard.det_sq`: the Hadamard determinant identity `(det A)² = n^n`.
- `IsHadamard.det_ne_zero`: over an integral domain of characteristic zero.
- `IsHadamard.transpose`: `Aᵀ` is Hadamard whenever `A` is (Theorem 2.3.6),
proved over `[CommRing R] [IsDomain R] [CharZero R]` via the adjugate.
- `IsHadamard.card_eq_sq_of_const_row_sum`: a Hadamard matrix with constant
row sum `s` has order `s²` (slightly stronger than Theorem 2.3.7: the
constant-column-sum hypothesis is implied by orthogonality).
- `IsHadamard.kronecker`: the Sylvester (Kronecker product) construction.
- `IsHadamard.four_dvd_card`: order of a Hadamard matrix of order > 2 is
divisible by 4.
`Matrix.mul_eq_smul_one_symm`: if `M * N = c • 1` and `det M ≠ 0` over an
integral domain, then `N * M = c • 1`. Used here for the transpose proof, but
generally useful, analogous to how `mul_eq_one_comm` works over stably finite
rings, but covers the integral-domain case (e.g. `ℤ`, `ℤ[X]`) where matrix
inverses don't exist.
## References
Adds the de Launey–Flannery bibliography entry, cited from the new file.
Human-made PR with LLM used for proof golfing and documentation |
t-algebra
new-contributor
label:t-algebra$ |
152/0 |
Mathlib.lean,Mathlib/LinearAlgebra/Matrix/Adjugate.lean,Mathlib/LinearAlgebra/Matrix/HadamardMatrix.lean,docs/references.bib |
4 |
10 |
['JJYYY-JJY', 'dennj', 'eric-wieser', 'github-actions', 'themathqueen'] |
nobody |
0-52441 14 hours ago |
3-22940 3 days ago |
3-22596 3 days |
| 35652 |
dennj author:dennj |
feat(LinearAlgebra/Matrix): add `Matrix.mul_eq_smul_one_symm` |
Adds three lemmas:
- IsLeftRegular.mul_eq_of_comm (Algebra/Group/Defs.lean): if a is left-regular, a * b = c, and c commutes with a, then b * a = c. Generalises IsLeftRegular.mul_eq_one_symm from the c = 1 case.
- IsRightRegular.mul_eq_of_comm: symmetric version.
- mul_eq_smul_one_symm (Algebra/Group/Action/Defs.lean): scalar variant of mul_eq_one_symm. For a monoid β with a compatible scalar action by α, if a * b = c • 1 and a is left-regular, then b * a = c • 1. Proven in one line via IsLeftRegular.mul_eq_of_comm, since c • 1 is central thanks to IsScalarTower α β β and SMulCommClass α β β.
The additive analogues are produced by to_additive.
The general mul_eq_of_comm helpers capture the underlying pattern: "a left/right-regular element can be cancelled when the conclusion commutes with it" and are reusable beyond this PR's specialisation.
Human made PR |
t-algebra
new-contributor
LLM-generated
label:t-algebra$ |
19/0 |
Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Group/Defs.lean |
2 |
7 |
['dagurtomas', 'dennj', 'eric-wieser', 'github-actions', 'grunweg'] |
ocfnash assignee:ocfnash |
0-52166 14 hours ago |
3-71177 3 days ago |
21-57547 21 days |
| 38750 |
openendings author:openendings |
feat(Data/Nat): add padicValNat_add_eq_min |
Add lemmas for `padicValNat` mirroring the [e]multiplicity API, including
- padicValNat_eq_of_dvd_of_not_dvd
- padicValNat_add_of_gt
- padicValNat_add_eq_min
---
[](https://gitpod.io/from-referrer/)
|
t-data
new-contributor
CI
|
37/0 |
Mathlib/Data/Nat/MaxPowDiv.lean |
1 |
2 |
['github-actions'] |
nobody |
0-49634 13 hours ago |
0-50005 13 hours ago |
0-51086 14 hours |
| 38449 |
WenrongZou author:WenrongZou |
feat(MvPowerSeries): some lemmas about `subst` of infinite sum |
In this PR, I add some lemmas about substituion of a infinite sum equal to infinite sum of substitution.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
34/0 |
Mathlib/RingTheory/MvPowerSeries/Substitution.lean,Mathlib/RingTheory/PowerSeries/Substitution.lean |
2 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-49581 13 hours ago |
0-49603 13 hours ago |
6-17671 6 days |
| 37492 |
xgenereux author:xgenereux |
feat(Torsion/PrimaryComponent): restricted surjective map on primaryComponent is surjective |
Given a surjective linear map between modules ` φ : M₁ →ₗ[A] M₂`, its restriction to primary components
```
primaryComponent.map P.asIdeal φ : ↥(primaryComponent M₁ P.asIdeal) →ₗ[A] ↥(primaryComponent M₂ P.asIdeal)
```
is also surjective when `P` is a non zero prime ideal in a Dedekind domain `A` and `M₁` and `M₂` are torsion.
Co-authored-by: María Inés de Frutos Fernández <[mariaines.dff@gmail.com](mailto:mariaines.dff@gmail.com)>
---
- [ ] depends on: #37466
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
42/0 |
Mathlib/Algebra/Module/Torsion/PrimaryComponent.lean |
1 |
3 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
nobody |
0-49238 13 hours ago |
0-49080 13 hours ago |
0-55399 15 hours |
| 38660 |
sharky564 author:sharky564 |
feat(Topology/Homeomorph): add Equiv.IsHomeomorph_iff and LinearEquiv.IsHomeomorph_iff |
This PR adds two characterisations of `IsHomeomorph` for bundled equivalences. For a plain `Equiv` between topological spaces, `Equiv.isHomeomorph_iff` states that the equivalence is a homeomorphism if and only if it is continuous in both directions. The corresponding statement for a `LinearEquiv` between topological modules is added as `LinearEquiv.isHomeomorph_iff`, derived from the `Equiv` version.
---
The motivation comes from work on topological complements of submodules in PR #38547, where one wants to upgrade a `LinearEquiv` to a `ContinuousLinearEquiv` and the cleanest characterisation is in terms of continuity in both directions. The existing API offers `isHomeomorph_iff_exists_inverse`, but for equivalences this requires manually identifying the existential inverse with `e.symm`, which is unnecessarily indirect.
|
t-topology
new-contributor
|
17/0 |
Mathlib/Topology/Algebra/Module/Equiv.lean,Mathlib/Topology/Homeomorph/Lemmas.lean |
2 |
7 |
['ADedecker', 'github-actions', 'scholzhannah', 'sharky564'] |
mcdoll assignee:mcdoll |
0-48937 13 hours ago |
1-30713 1 day ago |
2-9380 2 days |
| 38731 |
martinwintermath author:martinwintermath |
feat(LinearAlgebra/AffineSpace/AffineSubspace): using `AffineSubspace.direction` to reinterpret `AffineSubspace` as `Submodule` |
* add `AffineSubspace.vsub_self_of_zero_mem` that states `s -ᵥ s = s ` if `0 ∈ s`
* add `AffineSubspace.direction_eq_self_of_zero_mem` that states that if `0 ∈ s`, then the directions coerce back to the affine subspace.
* add corresponding `CanLift` instance.
* modify doc-string of `AffineSubspace.direction` to state that this can be used for reinterpretation of an affine subspace as a submodule.
* add `Coe` instance based on `Submodule.toAffineSubspace` and adds corresponding @[coe] attribute.
The PR also performs a slight cleanup of the file: statements about `SetLike` or `Submodule.toAffineSubspace` have been moved closer to their respective definitions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
56/26 |
Mathlib/LinearAlgebra/AffineSpace/AffineSubspace/Defs.lean |
1 |
3 |
['github-actions', 'wwylele'] |
nobody |
0-48740 13 hours ago |
1-11375 1 day ago |
1-12182 1 day |
| 28613 |
espottesmith author:espottesmith |
feat(Combinatorics): define undirected hypergraphs |
This PR defines undirected hypergraphs:
```
@[ext]
structure Hypergraph (α : Type*) where
/-- The vertex set -/
vertexSet : Set α
/-- The hyperedge set -/
hyperedgeSet : Set (Set α)
/-- All hyperedges must be subsets of the vertex set -/
hyperedge_isSubset_vertexSet : ∀ ⦃e⦄, e ∈ hyperedgeSet → e ⊆ vertexSet
```
In addition to the main definition, some additional definitions and related lemmas are provided:
- vertex adjacency
- hyperedge adjacency
- vertex "stars"
- special cases (loops, empty hypergraphs, trivial hypergraphs, complete hypergraphs, simple hypergraphs, k-uniform hypergraphs, and d-regular hypergraphs)
- (some) hypergraph cardinality
- subhypergraphs, induced subhypergraphs, and partial hypergraphs
This implementation is certainly bare-bones. I'm submitting this PR at this point, rather than when my developments are more fleshed out, because there has been some interest in others contributing to hypergraph formalization in mathlib.
In the near future, goals include:
- defining incidence matrices (i.e., conversion from `Hypergraph α` to `Matrix α (Set α) β`
- coersion/generalization of graph as 2-uniform hypergraph
- conversion of a hypergraph into its associated clique graph/two-section graph
- constructing the dual of a hypergraph (note: on first blush, this appears somewhat challenging, given that we define hyperedges as `Set α` rather than some other type `β`)
- rank and co-rank
- walks, paths, cycles, etc. on hypergraphs
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
378/2 |
Mathlib.lean,Mathlib/Combinatorics/Hypergraph/Basic.lean,lake-manifest.json |
3 |
57 |
['b-mehta', 'espottesmith', 'github-actions', 'jt496', 'lauramonk', 'mathlib4-merge-conflict-bot', 'tb65536'] |
b-mehta assignee:b-mehta |
0-46575 12 hours ago |
4-53771 4 days ago |
81-26149 81 days |
| 29744 |
espottesmith author:espottesmith |
feat(Combinatorics): define directed hypergraphs |
This PR defines directed hypergraphs:
```
@[ext]
structure DiHypergraph (α : Type*) where
/-- The vertex set -/
vertexSet : Set α
/-- The edge set -/
edgeSet : Set ((Set α) × (Set α))
/-- Each edge is a pair (s, d), where s ⊆ vertexSet and d ⊆ vertexSet -/
edge_src_dst_isSubset_vertexSet' : ∀ ⦃e⦄, e ∈ edgeSet → e.1 ⊆ vertexSet ∧ e.2 ⊆ vertexSet
```
Additional definitions:
- tail/head stars and negative/positive stars
- some special cases (B-Graph, F-Graph, BF-Graph, and what I'm calling a "non-endless" dihypergraph, where neither the source/tail nor the destination/head are empty)
- Vertex and (hyper)edge adjacency
- isolated vertices
- empty and nonempty dihypergraphs
The design employed here is based off of #28613, but this PR does not depend on that one.
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
395/0 |
Mathlib.lean,Mathlib/Combinatorics/DiHypergraph/Basic.lean |
2 |
2 |
['github-actions', 'mathlib4-merge-conflict-bot'] |
YaelDillies assignee:YaelDillies |
0-46523 12 hours ago |
27-43242 27 days ago |
85-26365 85 days |
| 38062 |
tb65536 author:tb65536 |
feat(RingTheory/RamificationInertia): alternate definitions of ramification index and inertia degree |
This PR adds alternate definitions of ramification index and inertia degree, following the discussion here: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Improving.20the.20definition.20of.20ramification.20index.3F
---
- [x] depends on: #38081
- [x] depends on: #38082
- [x] depends on: #38083
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-ring-theory
t-number-theory
label:t-algebra$ |
215/0 |
Mathlib.lean,Mathlib/RingTheory/RamificationInertia/Inertia.lean,Mathlib/RingTheory/RamificationInertia/Ramification.lean |
3 |
19 |
['github-actions', 'mathlib-dependent-issues', 'riccardobrasca', 'tb65536', 'xroblot'] |
riccardobrasca assignee:riccardobrasca |
0-46288 12 hours ago |
2-45075 2 days ago |
2-44732 2 days |
| 36963 |
seewoo5 author:seewoo5 |
feat(ModularForms): SL2 action and Serre derivative |
---
[](https://gitpod.io/from-referrer/)
Equivariance of Serre derivative under SL2 action. More precisely, $$\partial_k (F|_k \gamma) = (\partial_{k} F)|_{k+2} \gamma$$. From [Sphere Packing Project](https://github.com/thefundamentaltheor3m/Sphere-Packing-Lean). |
t-number-theory
large-import
|
164/1 |
Mathlib/Analysis/Complex/UpperHalfPlane/MoebiusAction.lean,Mathlib/NumberTheory/ModularForms/Derivative.lean |
2 |
9 |
['github-actions', 'loefflerd', 'seewoo5', 'tb65536', 'wwylele'] |
tb65536 assignee:tb65536 |
0-46271 12 hours ago |
14-3227 14 days ago |
15-42850 15 days |
| 38556 |
JovanGerb author:JovanGerb |
feat(GCongr): `applyRflOrId` |
This PR defines `MVarId.applyRflOrId`, which is a version of the `rfl` tactic (`MVarId.applyRfl`) that also closes goals of the form `p → p`. My original intent was to include this feature in `rfl` itself, but this proposal was rejected by core.
As a result of this change, the operators `→`, `∧` and `∨` now only need to have a single `gcongr` lemma each. This is beneficial for the new `grw` implementation. I've also removed the `gcongr` attribute from `List.Sublist.append_left`, `List.Sublist.append_right`, `List.Perm.append_left` and `List.Perm.append_right` since they are similarly redundant.
---
[](https://gitpod.io/from-referrer/)
|
t-meta |
76/18 |
Mathlib/Tactic/GCongr/Core.lean,Mathlib/Tactic/GCongr/CoreAttrs.lean,MathlibTest/GCongr/Core.lean,MathlibTest/GCongr/implications.lean |
4 |
7 |
['JovanGerb', 'Vierkantor', 'github-actions'] |
Vierkantor assignee:Vierkantor |
0-44003 12 hours ago |
1-31470 1 day ago |
4-831 4 days |
| 38757 |
xgenereux author:xgenereux |
feat(IsDedekindDomain.HeightOneSpectrum): simp lemma ofPrime_prime |
simp lemma for the composition of `ofPrime` and `prime`.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
easy
|
3/0 |
Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean |
1 |
1 |
['github-actions'] |
nobody |
0-43929 12 hours ago |
0-44026 12 hours ago |
0-43682 12 hours |
| 38753 |
tb65536 author:tb65536 |
chore(GroupTheory/Nilpotent): to_additivize file |
This PR to_additivizes `Nilpotent.lean`.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-group-theory
label:t-algebra$ |
201/35 |
Mathlib/GroupTheory/Commutator/Finite.lean,Mathlib/GroupTheory/Nilpotent.lean,Mathlib/GroupTheory/Subgroup/Center.lean |
3 |
1 |
['github-actions'] |
nobody |
0-42312 11 hours ago |
0-42312 11 hours ago |
0-41969 11 hours |
| 38319 |
Zetetic-Dhruv author:Zetetic-Dhruv |
feat(Combinatorics/SetFamily): Assouad's dual VC bound |
Adds the Finset-level form of Assouad's 1983 dual VC bound: if a family
`𝒜 : Finset (Finset α)` has VC dimension at most `d`, then for any
ground set `X : Finset α` the dual family
`{𝒜.filter (· ∋ x) : x ∈ X}` has VC dimension at most `2 ^ (d + 1) - 1`.
New declarations (in `Finset` namespace):
- `dualFamily 𝒜 X`: for each `x ∈ X`, the subfamily `{A ∈ 𝒜 | x ∈ A}`
- `mem_dualFamily` (`@[simp]`): membership characterisation
- `exists_shatters_of_dualFamily_shatters`: Assouad's bitstring-coding lemma
- `vcDim_dualFamily_le`: the headline VC bound
Proof by Assouad's classical bitstring-coding argument. Sits on top of `Finset.shatterer` / `Finset.vcDim` from
`Mathlib.Combinatorics.SetFamily.Shatter`.
References:
- P. Assouad, Densite et dimension, Ann. Inst. Fourier 33(3) (1983), Thm 2.13
- J. Matousek, Lectures on Discrete Geometry, GTM 212, Springer, 2002, Section 10.3 Lemma 10.3.3
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics
new-contributor
|
200/0 |
Mathlib.lean,Mathlib/Combinatorics/SetFamily/DualVC.lean,docs/references.bib |
3 |
26 |
['Shreyas4991', 'Zetetic-Dhruv', 'github-actions'] |
nobody |
0-41045 11 hours ago |
8-48107 8 days ago |
9-77374 9 days |
| 38756 |
kim-em author:kim-em |
fix: make Countable deriver work under the module system |
This PR removes `private` from the helper lemmas (`cons_eq_imp_init`, `cons_eq_imp`, `pair_encode_step`) and definitions (`encode`, `encode_injective`) in `Mathlib.Tactic.DeriveCountable` that the deriving handler emits into user-facing code. Under the module system, `private` declarations are mangled to `_private..0.` and absent from the importer's environment without `import all`, so `deriving Countable` on a downstream `module` file failed with `Unknown constant '_private.…cons_eq_imp_init'`. These helpers form part of the deriver's public surface and so were always semantically wrong to mark `private`; the previous looser `private` semantics happened to mask the mistake.
Reported by Niklas Halonen on Zulip: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Unknown.20constant.20when.20deriving.20Countable.20with.20module.20system
Adds `MathlibTest/deriving_countable_module.lean` as a regression test in `module` mode covering both the original MWE and a recursive case (which exercises `cons_eq_imp` and `pair_encode_step`).
🤖 Prepared with Claude Code |
t-meta |
44/5 |
Mathlib/Tactic/DeriveCountable.lean,MathlibTest/deriving_countable_module.lean |
2 |
1 |
['github-actions'] |
nobody |
0-39441 10 hours ago |
0-39508 10 hours ago |
0-39626 11 hours |
| 38760 |
ocfnash author:ocfnash |
feat: use Cartan's criterion for semisimplicty to drop redundant hypotheses |
Thanks to @jano-wol 's work culminating in #38749 we can drop two redundant hypotheses about non-degeneracy of Killing forms.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
21/11 |
Mathlib/Algebra/Lie/Weights/IsSimple.lean,Mathlib/LinearAlgebra/RootSystem/GeckConstruction/Basis.lean |
2 |
2 |
['github-actions', 'ocfnash'] |
nobody |
0-37976 10 hours ago |
0-38166 10 hours ago |
0-37822 10 hours |
| 38763 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/GammaSpecAdjunction): remove an erw |
- rewrites `toStalk_stalkMap_toΓSpec` by folding the old `erw` into the surrounding `simp only`/`rw` chain
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebraic-geometry
LLM-generated
|
4/4 |
Mathlib/AlgebraicGeometry/GammaSpecAdjunction.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36432 10 hours ago |
0-36505 10 hours ago |
0-36161 10 hours |
| 38761 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/EllipticCurve/Jacobian/Point): remove erws |
- rewrites `neg_of_Z_ne_zero` with a `simp only` chain in place of the former `erw`
- rewrites `addXYZ_neg` by splitting the vector equality into coordinate goals handled by `rw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebraic-geometry
LLM-generated
|
7/4 |
Mathlib/AlgebraicGeometry/EllipticCurve/Jacobian/Point.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36431 10 hours ago |
0-36509 10 hours ago |
0-36165 10 hours |
| 38764 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/Modules/Tilde): remove an erw |
- rewrites the naturality proof in `fromTildeΓNatTrans` by making the `FullSubcategory.comp_hom` and `NatTrans.comp_app` steps explicit in the `rw` chain
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebraic-geometry
LLM-generated
|
3/1 |
Mathlib/AlgebraicGeometry/Modules/Tilde.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36423 10 hours ago |
0-36503 10 hours ago |
0-36159 10 hours |
| 38765 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/Restrict): remove erws |
- replaces the `erw`-based argument in `isPullback_morphismRestrict` with `IsOpenImmersion.isPullback`
- shortens `morphismRestrictRestrictBasicOpen` to a direct rewrite with `Scheme.Opens.ι_image_basicOpen` and `Scheme.basicOpen_res_eq`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebraic-geometry
LLM-generated
|
4/17 |
Mathlib/AlgebraicGeometry/Restrict.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36422 10 hours ago |
0-36500 10 hours ago |
0-36156 10 hours |
| 38767 |
yuanyi-350 author:yuanyi-350 |
chore(Analysis/Fourier/FourierTransformDeriv): remove an erw |
- rewrites `hasDerivAt_fourier` to use `fourierIntegral_continuousLinearMap_apply'`, `VectorFourier.fourierIntegral`, and `fourier_real_eq` in place of the former `erw`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
|
4/7 |
Mathlib/Analysis/Fourier/FourierTransformDeriv.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36419 10 hours ago |
0-36496 10 hours ago |
0-36152 10 hours |
| 38762 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicGeometry/EllipticCurve/Projective/Point): remove erws |
- rewrites `neg_of_Z_ne_zero` by splitting the `Fin 3` equality and closing the coordinates with `rw`
- rewrites `addXYZ_neg` with `rw` followed by `simp`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebraic-geometry
LLM-generated
|
7/3 |
Mathlib/AlgebraicGeometry/EllipticCurve/Projective/Point.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36416 10 hours ago |
0-36507 10 hours ago |
0-36163 10 hours |
| 38771 |
yuanyi-350 author:yuanyi-350 |
chore(LinearAlgebra/Eigenspace/Basic): remove an erw |
- rewrites `genEigenspace_restrict` by replacing the induction with a single `simp only` chain using the restriction and kernel lemmas
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebra
LLM-generated
label:t-algebra$ |
4/8 |
Mathlib/LinearAlgebra/Eigenspace/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36359 10 hours ago |
0-36466 10 hours ago |
0-36122 10 hours |
| 38769 |
yuanyi-350 author:yuanyi-350 |
chore(GroupTheory/FreeGroup/NielsenSchreier): remove an erw |
- rewrites the `mapEnd` step in `endIsFree` with `simp only [Functor.mapEnd, DFunLike.coe, this, hF']`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-group-theory
|
1/3 |
Mathlib/GroupTheory/FreeGroup/NielsenSchreier.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36355 10 hours ago |
0-36470 10 hours ago |
0-36126 10 hours |
| 38773 |
yuanyi-350 author:yuanyi-350 |
chore(MeasureTheory/Measure/Haar/Quotient): remove erws |
- rewrites the two quotient-measure lemmas to use `rw` directly on `projection_respects_measure_apply`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
2/4 |
Mathlib/MeasureTheory/Measure/Haar/Quotient.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36349 10 hours ago |
0-36462 10 hours ago |
0-36118 10 hours |
| 38774 |
yuanyi-350 author:yuanyi-350 |
chore(NumberTheory/Padics/Complex): remove an erw |
- rewrites `norm_eq_norm'` to expand `Valuation.restrict_def`, `embedding_restrict₀`, and `PadicAlgCl.valuation_coe` inside `simp only`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-number-theory
LLM-generated
|
2/3 |
Mathlib/NumberTheory/Padics/Complex.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36317 10 hours ago |
0-36460 10 hours ago |
0-36116 10 hours |
| 38754 |
EtienneC30 author:EtienneC30 |
feat: generalize multiplication of independent random variables to scalar multiplication |
If `X` and `Y` are independent then `∫ ω, X ω * Y ω ∂μ = ∫ ω, X ω ∂μ * ∫ ω, Y ω ∂μ`.
We generalize this to the case of scalar multiplication.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
84/33 |
Mathlib/Probability/Independence/Integration.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36104 10 hours ago |
0-45474 12 hours ago |
0-45130 12 hours |
| 38775 |
Raph-DG author:Raph-DG |
feat(Topology): Skyscraper sheaves are flasque |
In this PR we show that skyscraper sheaves are flasque. In particular, we show that a skyscraper sheaf valued in an object A whose map to the terminal object is an epimorphism is a flasque sheaf. We also show the useful corollary that in particular, any skyscraper sheaf is flasque if the sheaf takes values in a category with a zero object
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
34/0 |
Mathlib/Topology/Sheaves/Flasque.lean |
1 |
1 |
['github-actions'] |
nobody |
0-36003 10 hours ago |
0-36080 9 hours ago |
0-35736 9 hours |
| 38736 |
yuanyi-350 author:yuanyi-350 |
chore(GroupTheory/PushoutI): remove an erw |
- rewrites the `h₁` simplification in `eq_one_of_smul_normalized` into a single `simp only` chain, replacing the `rw` and `erw` steps around `equiv_one` and `mul_one`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-group-theory
maintainer-merge
|
2/3 |
Mathlib/GroupTheory/PushoutI.lean |
1 |
3 |
['github-actions', 'tb65536'] |
tb65536 assignee:tb65536 |
0-35214 9 hours ago |
0-37506 10 hours ago |
0-85685 23 hours |
| 38735 |
yuanyi-350 author:yuanyi-350 |
chore(GroupTheory/HNNExtension): remove an erw |
- rewrites the two `unitsSMul_neg` branches to use `rw` and `simp` directly with `IsComplement.equiv_mul_left`, instead of `conv_lhs => erw [...]`
- replaces `erw [dif_neg this]` with `rw [dif_neg this]` in `exists_normalWord_prod_eq`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-group-theory
maintainer-merge
|
3/16 |
Mathlib/GroupTheory/HNNExtension.lean |
1 |
7 |
['github-actions', 'tb65536', 'yuanyi-350'] |
tb65536 assignee:tb65536 |
0-33254 9 hours ago |
0-34685 9 hours ago |
0-85179 23 hours |
| 38758 |
TBUGTB author:TBUGTB |
feat(LinearAlgebra/ConvexSpace): StdSimplex bind operation |
Define the monadic bind operation for StdSimplex and add basic API lemmas. This operation is needed for formalising the Komlós lemma used in the construction of Stochastic Integrals (cf. [this PR](https://github.com/RemyDegenne/brownian-motion/pull/399) in the brownian-motion project). |
t-algebra
new-contributor
brownian
label:t-algebra$ |
47/0 |
Mathlib/LinearAlgebra/ConvexSpace.lean |
1 |
2 |
['github-actions'] |
nobody |
0-32495 9 hours ago |
0-41096 11 hours ago |
0-41187 11 hours |
| 35510 |
chrisflav author:chrisflav |
feat(RingTheory): weakly étale algebras |
From Proetale.
---
- [x] depends on: #35455
- [x] depends on: #35590
- [x] depends on: #37998
[](https://gitpod.io/from-referrer/)
|
t-ring-theory |
132/0 |
Mathlib.lean,Mathlib/RingTheory/Etale/Basic.lean,Mathlib/RingTheory/Etale/Weakly.lean,Mathlib/RingTheory/RingHom/Flat.lean |
4 |
2 |
['github-actions', 'mathlib-dependent-issues'] |
nobody |
0-31670 8 hours ago |
0-31744 8 hours ago |
0-33346 9 hours |
| 36783 |
wwylele author:wwylele |
feat(RingTheory/Localization): R ⧸ pⁿ ≃ₐ[R] Rₚ ⧸ (maximalIdeal Rₚ)ⁿ |
This extends the existing `def equivQuotMaximalIdeal : R ⧸ p ≃+* Rₚ ⧸ maximalIdeal Rₚ` to powers of maximal ideals.
---
Disclosure of AI usage: I chat with AI for a sketch of the proof. The code is entirely written by me.
I didn't state the simp lemma for the symm direction because I am not sure how to state it. Following the analog of equivQuotMaximalIdeal_symm_apply_mk, this should be
```
theorem equivQuotMaximalIdealPow_symm_apply_mk (x : R) (s : p.primeCompl) :
(equivQuotMaximalIdealPow p Rₚ n).symm (Ideal.Quotient.mk _ (IsLocalization.mk' Rₚ x s)) =
(Ideal.Quotient.mk (p ^ n) x) * (Ideal.Quotient.mk (p ^ n) s)⁻¹ := by
```
But `(Ideal.Quotient.mk (p ^ n) s)⁻¹` is taking inverse in a non-field ring. Here the inverse always exists because s is not in p. What is the mathlib way to say this?
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
large-import
|
58/0 |
Mathlib/Algebra/Ring/Subring/Basic.lean,Mathlib/RingTheory/Ideal/Quotient/Nilpotent.lean,Mathlib/RingTheory/Localization/AtPrime/Basic.lean |
3 |
7 |
['chrisflav', 'github-actions', 'wwylele'] |
chrisflav and mattrobball assignee:mattrobball assignee:chrisflav |
0-26857 7 hours ago |
0-27273 7 hours ago |
43-27920 43 days |
| 36951 |
mbkybky author:mbkybky |
feat(Algebra/Module): define stably free modules |
We define stably free modules: a module `M` over a commutative ring `R` is called stably free if there exists a finite free module `N` over `R` such that `M ⊕ N` is free.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
81/0 |
Mathlib.lean,Mathlib/Algebra/Module/StablyFree/Basic.lean |
2 |
9 |
['dagurtomas', 'github-actions', 'mbkybky', 'robin-carlier'] |
themathqueen assignee:themathqueen |
0-26694 7 hours ago |
20-36121 20 days ago |
39-6877 39 days |
| 38715 |
smmercuri author:smmercuri |
refactor(Algebra): replace `AlgHomClass` coercions with structure-specific coercions |
This PR removes the coercion from `F` to `AlgHom` via `AlgHomClass F R A B` in favour of type-specific projections
---
See also #37827
[](https://gitpod.io/from-referrer/)
|
|
135/102 |
Mathlib/Algebra/Algebra/Equiv.lean,Mathlib/Algebra/Algebra/Hom.lean,Mathlib/Algebra/Algebra/Subalgebra/Centralizer.lean,Mathlib/Algebra/Category/BialgCat/Basic.lean,Mathlib/Algebra/Category/CommBialgCat.lean,Mathlib/Algebra/MvPolynomial/Equiv.lean,Mathlib/Algebra/Star/StarAlgHom.lean,Mathlib/Algebra/Star/Subalgebra.lean,Mathlib/AlgebraicGeometry/AffineSpace.lean,Mathlib/AlgebraicGeometry/OpenImmersion.lean,Mathlib/Analysis/CStarAlgebra/GelfandDuality.lean,Mathlib/FieldTheory/Extension.lean,Mathlib/FieldTheory/Galois/Basic.lean,Mathlib/FieldTheory/KummerExtension.lean,Mathlib/FieldTheory/LinearDisjoint.lean,Mathlib/FieldTheory/Normal/Defs.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean,Mathlib/NumberTheory/Cyclotomic/Gal.lean,Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/RingTheory/Algebraic/MvPolynomial.lean,Mathlib/RingTheory/Bialgebra/Equiv.lean,Mathlib/RingTheory/Bialgebra/Hom.lean,Mathlib/RingTheory/Etale/QuasiFinite.lean,Mathlib/RingTheory/Extension/Presentation/Basic.lean,Mathlib/RingTheory/Extension/Presentation/Core.lean,Mathlib/RingTheory/FinitePresentation.lean,Mathlib/RingTheory/GradedAlgebra/AlgHom.lean,Mathlib/RingTheory/Ideal/Over.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean,Mathlib/RingTheory/NoetherNormalization.lean,Mathlib/RingTheory/Polynomial/Basic.lean,Mathlib/RingTheory/Polynomial/Cyclotomic/Factorization.lean,Mathlib/RingTheory/Smooth/Basic.lean,Mathlib/RingTheory/Smooth/Pi.lean,Mathlib/RingTheory/Spectrum/Prime/Homeomorph.lean,Mathlib/RingTheory/TensorProduct/MvPolynomial.lean,Mathlib/RingTheory/ZariskisMainTheorem.lean,Mathlib/Topology/Algebra/Algebra.lean,Mathlib/Topology/ContinuousMap/StoneWeierstrass.lean |
40 |
3 |
['github-actions', 'leanprover-radar', 'smmercuri'] |
nobody |
0-25926 7 hours ago |
0-25926 7 hours ago |
0-25990 7 hours |
| 38198 |
JovanGerb author:JovanGerb |
chore(Data/Real/Basic): `no_expose` the private operations |
This PR puts `no_expose` on all of the operations on `Real` that are defined in terms of quotients. This is a step in the direction of not exposing the definiton of `Real`.
Note that I leave the `irreducible_def`s as is. This is because the `simpNF` linter does not participate in the module system, and it would time out otherwise.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
11/32 |
Mathlib/Analysis/SpecialFunctions/Gaussian/GaussianIntegral.lean,Mathlib/Data/Real/Basic.lean,Mathlib/Topology/Algebra/Valued/NormedValued.lean |
3 |
8 |
['JovanGerb', 'eric-wieser', 'github-actions', 'leanprover-radar'] |
nobody |
0-22982 6 hours ago |
12-44445 12 days ago |
12-45042 12 days |
| 34045 |
smmercuri author:smmercuri |
feat: `algebraMap K L` is uniform continuous with respect to adic topologies, when the ideal `w` of `L` lies above `v` |
- `A` is a Dedekind domain with field of fractions `K`.
- `B` is a Dedekind domain with field of fractions `L`.
- `L` is a field extension of `K`.
- `v` is a height one prime ideal of `A`.
- `w` is a height one prime ideal of `B` lying over `v`.
Then respective valuations are related via the ramification index, and `algebraMap (WithVal (v.valuation K)) (WithVal (w.valuation L))` is uniform continuous.
---
- [x] depends on: #34049
- [x] depends on: #35972
- [x] depends on: #36144
- [x] depends on: #36310
[](https://gitpod.io/from-referrer/)
|
FLT
t-algebra
label:t-algebra$ |
159/12 |
Mathlib.lean,Mathlib/Algebra/Order/Hom/Units.lean,Mathlib/NumberTheory/RamificationInertia/Valuation.lean,Mathlib/RingTheory/DedekindDomain/AdicValuation.lean,Mathlib/RingTheory/Valuation/Discrete/RankOne.lean,Mathlib/Topology/Algebra/Valued/WithVal.lean |
6 |
10 |
['dagurtomas', 'github-actions', 'jjdishere', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'smmercuri'] |
nobody |
0-22263 6 hours ago |
3-27406 3 days ago |
21-29296 21 days |
| 38734 |
yuanyi-350 author:yuanyi-350 |
chore(AlgebraicTopology/SimplicialObject/Basic): remove an erw |
- rewrites the `toArrow` and `whiskeringObj` naturality proofs for augmented simplicial and cosimplicial objects by extending the `rw` chains with `Functor.id_map`, `Functor.const_map_app`, and `NatTrans.comp_app`, instead of using `erw` on `η.w`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
t-algebraic-topology
codex
LLM-generated
maintainer-merge
|
15/19 |
Mathlib/AlgebraicTopology/SimplicialObject/Basic.lean |
1 |
5 |
['dagurtomas', 'github-actions', 'joelriou', 'yuanyi-350'] |
dagurtomas assignee:dagurtomas |
0-21907 6 hours ago |
0-37741 10 hours ago |
0-85155 23 hours |
| 38768 |
yuanyi-350 author:yuanyi-350 |
chore(Condensed/Light/Epi): remove an erw |
Removes an `erw` that is now handled by `simp`.
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-condensed
LLM-generated
maintainer-merge
|
2/8 |
Mathlib/Condensed/Light/Epi.lean |
1 |
3 |
['dagurtomas', 'github-actions'] |
nobody |
0-21419 5 hours ago |
0-21520 5 hours ago |
0-36115 10 hours |
| 37832 |
YaelDillies author:YaelDillies |
chore(Algebra/Order/GroupWithZero): flatten `Unbundled` folder |
The algebraic order classes are unbundled now.
---
More thought is needed to do the same for `Algebra.Order.Monoid` since filenames conflict.
[](https://gitpod.io/from-referrer/)
|
file-removed
t-algebra
t-order
label:t-algebra$ |
20/20 |
Mathlib.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/BigOperators/GroupWithZero/List.lean,Mathlib/Algebra/Order/Field/Basic.lean,Mathlib/Algebra/Order/Field/Pointwise.lean,Mathlib/Algebra/Order/GroupWithZero/Basic.lean,Mathlib/Algebra/Order/GroupWithZero/Bounds.lean,Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Defs.lean,Mathlib/Algebra/Order/GroupWithZero/Finset.lean,Mathlib/Algebra/Order/GroupWithZero/OrderIso.lean,Mathlib/Algebra/Order/GroupWithZero/Submonoid.lean,Mathlib/Algebra/Order/GroupWithZero/WithZero.lean,Mathlib/Algebra/Order/Nonneg/Basic.lean,Mathlib/Algebra/Order/Ring/Defs.lean,Mathlib/Algebra/Order/Ring/Unbundled/Basic.lean,Mathlib/Order/Filter/IsBounded.lean,Mathlib/RingTheory/DedekindDomain/Ideal/Lemmas.lean,Mathlib/Tactic/FieldSimp/Lemmas.lean |
19 |
3 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-21411 5 hours ago |
0-21437 5 hours ago |
19-26210 19 days |
| 38026 |
mrdouglasny author:mrdouglasny |
feat(Analysis/Calculus): define absolutely monotone functions |
## Summary
- Define `AbsolutelyMonotoneOn f s` for functions `f : ℝ → ℝ` that are smooth on `s` with all iterated derivatives within `s` nonneg
- Prove closure under `add`, `smul`, `mul`
- Show `exp`, `cosh`, constants, and powers are absolutely monotone on appropriate domains
This is the first part of a split of #37879. Follow-up PRs will add:
- Bernstein backward direction (nonneg coefficients → absolutely monotone)
- Bernstein forward direction (absolutely monotone → analytic at 0)
- Matrix applications (Schur product theorem for power series, entrywise exp)
## Test plan
- [ ] CI passes (build + lint)
- [ ] Verify `AbsolutelyMonotoneOn` structure and examples type-check
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.6 (1M context) |
t-analysis
new-contributor
LLM-generated
|
123/0 |
Mathlib.lean,Mathlib/Analysis/Calculus/AbsolutelyMonotone.lean,docs/references.bib |
3 |
28 |
['ADedecker', 'github-actions', 'j-loreaux', 'mrdouglasny', 'sgouezel', 'vihdzp', 'wwylele'] |
sgouezel assignee:sgouezel |
0-21156 5 hours ago |
0-21200 5 hours ago |
8-41992 8 days |
| 38631 |
FordUniver author:FordUniver |
feat(Combinatorics/SimpleGraph/Copy): add indLabeledCopyCount and indCopyCount |
Adds `indLabeledCopyCount` and `indCopyCount` to `SimpleGraph`, along with API mirroring the non-induced variants `labelledCopyCount` and `copyCount`. `indLabeledCopyCount_le_labelledCopyCount` and `indCopyCount_le_copyCount` relate the two families. The main auxiliary addition is `Embedding.ofIsInduced`, the canonical embedding of an induced subgraph into the ambient graph.
---
This has been on my list for a while and addresses and resolves an explicit TODO in `Mathlib/Combinatorics/SimpleGraph/Copy.lean`. I am trying to push formalized flag algebras in Lean and need it for that. There are some additional things either building on this or orthogonal to this that I intentionally deferred and would do PRs for soon-ish:
- A lot of uses of `Classical` seem like they should be replaced by `Fintype` or `Decidable{Rel,Eq}` assumptions?
- Based on the first point, a lot of this could easily be made computational (another TODO in the file).
- One can easily relate labelled and unlabelled count (induced and not-necessarily induced) through the number of automorphisms
- One can express the induced counts through (a sum of) non-induced counts and vice-versa.
- For all of this fractional density values and real limit values could be defined.
**Standard disclosure.** *This PR was developed with assistance from LLM code tools, used for Mathlib style alignment and proof compactness. The mathematical content and proof strategy originate from myself; I have reviewed and vouch for the final code.* |
t-combinatorics
new-contributor
|
128/5 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/Subgraph.lean |
3 |
31 |
['FordUniver', 'SnirBroshi', 'YaelDillies', 'github-actions', 'plp127'] |
nobody |
0-20131 5 hours ago |
1-9733 1 day ago |
2-12706 2 days |
| 36621 |
quantumsnow author:quantumsnow |
feat: add the category of topological pairs |
This is needed for the Eilenberg-Steenrod axioms for a homology theory.
---
- [x] depends on: #37540
[](https://gitpod.io/from-referrer/)
|
t-topology
new-contributor
maintainer-merge
|
264/9 |
Mathlib.lean,Mathlib/Topology/Category/TopCat/Basic.lean,Mathlib/Topology/Category/TopCat/Limits/Basic.lean,Mathlib/Topology/Category/TopPair.lean,Mathlib/Topology/Homotopy/TopCat/Basic.lean |
5 |
109 |
['chrisflav', 'dagurtomas', 'erdOne', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'quantumsnow', 'vlad902'] |
j-loreaux assignee:j-loreaux |
0-19817 5 hours ago |
0-19817 5 hours ago |
16-34558 16 days |
| 28499 |
yoh-tanimoto author:yoh-tanimoto |
feat(MeasureTheory/VectorMeasure): add integral of a vector-valued function against a vector measure |
add `VectorMeasureWithPairing.integral` for normed vector spaces `E`, `F`, a Banach space `G` , a continuous linear pairing `B : E →L[ℝ] F →L[ℝ] → G` and an `F`-valued vector measure `μ`, which should be informally written as `∫ B (f x) ∂μ x`.
motivation: there are natural vector measures such as signed measures and complex measures, and their integrals appear naturally e.g. in a proof of the spectral theorem for general bounded normal operators on a Hilbert space.
- [x] depends on: #26160 for the definition and lemmas about the total variation of a vector measure. |
t-measure-probability |
222/5 |
Mathlib.lean,Mathlib/MeasureTheory/VectorMeasure/Integral.lean,Mathlib/MeasureTheory/VectorMeasure/Variation/Basic.lean |
3 |
93 |
['EtienneC30', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'yoh-tanimoto'] |
EtienneC30 assignee:EtienneC30 |
0-19782 5 hours ago |
8-42278 8 days ago |
14-12682 14 days |
| 36743 |
Jun2M author:Jun2M |
feat(Combinatorics/GraphLike): introduce `GraphLike` typeclass |
Per discussion at ([#graph theory > HasAdj](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/HasAdj/with/575843445)), This PR introduces the `GraphLike` typeclass to capture the notions like `dart` and `walk` across various graph objects, such as `SimpleGraph`, `Graph`, and `Digraph`.
The goal is that by abstracting these core components into a typeclass, we can prove these results once for all graph-like structures rather than duplicating them across different graph types.
This PR generalises #35776 to also unify `Graph`.
### Main definitions
* `GraphLike V D E Gr`: A typeclass parameterized by a vertex type `V`, dart type `D` and a graph type `Gr` (with `V`, `D` & `E` as an `outParam`).
* `GraphLike.verts : Set V`: The set of vertices of the graph.
* `GraphLike.darts : Set D`: The set of darts of the graph.
* `GraphLike.edges : Set E`: The set of edges of the graph.
* `GraphLike.Adj : V → V → Prop`: The adjacency relation, defined by default as `∃ d ∈ darts, fst d = u ∧ snd d = v`.
* Instance of `GraphLike V (Digraph V)` with `darts G := { (u, v) | G.Adj u v }`
* Instance of `GraphLike V (SimpleGraph V)` with `darts G := { (u, v) | G.Adj u v }`
* Instance of `GraphLike V (Graph V E)` with `darts G := {d : Dart α β | G.IsLink (edge d) (src d) (tgt d)}`
---
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
407/0 |
Mathlib.lean,Mathlib/Combinatorics/Digraph/GraphLike.lean,Mathlib/Combinatorics/Graph/GraphLike.lean,Mathlib/Combinatorics/GraphLike/Basic.lean,Mathlib/Combinatorics/SimpleGraph/GraphLike.lean |
5 |
46 |
['IvanRenison', 'Jun2M', 'SnirBroshi', 'github-actions', 'lauramonk', 'mathlib-merge-conflicts'] |
YaelDillies assignee:YaelDillies |
0-19624 5 hours ago |
2-82277 2 days ago |
43-43118 43 days |
| 38147 |
vihdzp author:vihdzp |
chore: deprecate `Cardinal.zero_le` |
This is a duplicate of `zero_le` in the root namespace.
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
9/10 |
Mathlib/SetTheory/Cardinal/Basic.lean,Mathlib/SetTheory/Cardinal/Order.lean |
2 |
5 |
['github-actions', 'mathlib-merge-conflicts', 'vihdzp'] |
nobody |
0-19231 5 hours ago |
0-19295 5 hours ago |
12-82970 12 days |
| 34015 |
erdOne author:erdOne |
feat(AlgebraicGeometry): category of schemes affine over a base |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-geometry |
522/11 |
Mathlib.lean,Mathlib/AlgebraicGeometry/AffineOver.lean,Mathlib/AlgebraicGeometry/Limits.lean,Mathlib/AlgebraicGeometry/Morphisms/Affine.lean,Mathlib/AlgebraicGeometry/OpenImmersion.lean,Mathlib/AlgebraicGeometry/RelativeGluing.lean,Mathlib/AlgebraicGeometry/Sites/SmallAffineZariski.lean,Mathlib/CategoryTheory/Sites/Hypercover/Subcanonical.lean |
8 |
42 |
['chrisflav', 'dagurtomas', 'erdOne', 'github-actions', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot'] |
chrisflav assignee:chrisflav |
0-19054 5 hours ago |
0-19054 5 hours ago |
30-81275 30 days |
| 38223 |
Deicyde author:Deicyde |
feat(Geometry/Manifold): add `MfldCat`, the category of `C^n` manifolds |
We define `MfldCat 𝕜 n`: the category of `C^n` manifolds over a field `𝕜`, following the pattern of `TopCat` in
`Mathlib.Topology.Category.TopCat.Basic`. We also implement `HasForget₂ (MfldCat 𝕜 n) TopCat`—the forgetful functor into the category of topological spaces. For more discussion see the Zulip thread: [#PR reviews > #38223 The Category of C^n Manifolds](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2338223.20The.20Category.20of.20C.5En.20Manifolds/with/587038032)
Also added: `ContMDiffMap.id_apply`, `.coe_id` and `.coe_comp` which are comparable to `ContinuousMap` API.
### Future work
- ✅ Define a Monoidal structure via product manifolds, analogous to `Manifold.Topology.Category.TopCat.Monoidal` #38560
- ✅ Define the tangent functor: `M ↦ TM`, `F ↦ F.tangentMap` from `MfldCat (n+1) 𝕜` to `MfldCat n 𝕜` #38270
- Functor `FGModuleCat 𝕜 ⥤ MfldCat 𝕜 n` sending a finite-dimensional `𝕜`-vector space to the manifold modeled on itself. Left as `TODO`.
- Define `FGModuleCat 𝕜` as an enriched category over `MfldCat n 𝕜`. Then _smooth functors_ can be realized as endofunctors on the enriched category. This is the main motivation for this construction.
---
[](https://gitpod.io/from-referrer/)
|
t-differential-geometry
new-contributor
t-category-theory
|
225/0 |
Mathlib.lean,Mathlib/Geometry/Manifold/Category/MfldCat/Basic.lean,Mathlib/Geometry/Manifold/ContMDiffMap.lean |
3 |
52 |
['Deicyde', 'chrisflav', 'dagurtomas', 'github-actions', 'idontgetoutmuch', 'peabrainiac'] |
kim-em assignee:kim-em |
0-18763 5 hours ago |
5-73561 5 days ago |
6-72177 6 days |
| 38662 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet): faces of the boundary |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
maintainer-merge
|
67/0 |
Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean |
1 |
3 |
['dagurtomas', 'github-actions'] |
dagurtomas assignee:dagurtomas |
0-18653 5 hours ago |
0-18720 5 hours ago |
2-11721 2 days |
| 38772 |
yuanyi-350 author:yuanyi-350 |
chore(LinearAlgebra/TensorProduct/Subalgebra): remove erws |
- rewrites `lTensorBot` and `rTensorBot` by folding the former `erw` steps into the surrounding `rw` chains
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebra
LLM-generated
maintainer-merge
label:t-algebra$ |
6/10 |
Mathlib/LinearAlgebra/TensorProduct/Subalgebra.lean |
1 |
4 |
['github-actions', 'themathqueen'] |
nobody |
0-18475 5 hours ago |
0-36464 10 hours ago |
0-36120 10 hours |
| 38770 |
yuanyi-350 author:yuanyi-350 |
chore(LinearAlgebra/AffineSpace/Combination): remove an erw |
- replaces the `erw` in `affineSpan_eq_affineSpan_lineMap_units` with `rw` on both the hypothesis and the goal
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebra
LLM-generated
easy
maintainer-merge
label:t-algebra$ |
1/1 |
Mathlib/LinearAlgebra/AffineSpace/Combination.lean |
1 |
3 |
['github-actions', 'themathqueen'] |
nobody |
0-18396 5 hours ago |
0-36468 10 hours ago |
0-36124 10 hours |
| 38737 |
yuanyi-350 author:yuanyi-350 |
chore(LinearAlgebra/Dimension/ErdosKaplansky): remove an erw |
- replaces `erw [nat_lt_lift_iff, one_lt_iff_nontrivial]` with `rw [Cardinal.one_lt_lift_iff, Cardinal.one_lt_iff_nontrivial]` in `lift_rank_lt_rank_dual'`
Extracted from #38415
[](https://gitpod.io/from-referrer/) |
codex
t-algebra
LLM-generated
maintainer-merge
label:t-algebra$ |
1/1 |
Mathlib/LinearAlgebra/Dimension/ErdosKaplansky.lean |
1 |
3 |
['github-actions', 'themathqueen'] |
nobody |
0-18287 5 hours ago |
1-6275 1 day ago |
1-5931 1 day |
| 37311 |
CoolRmal author:CoolRmal |
feat: lemmas about liminf multiplied by a constant |
Add some analogues of [ENNReal.limsup_const_mul_of_ne_top](https://leanprover-community.github.io/mathlib4_docs/Mathlib/Order/Filter/ENNReal.html#ENNReal.limsup_const_mul_of_ne_top) for liminf.
---
[](https://gitpod.io/from-referrer/)
|
t-order
maintainer-merge
|
34/5 |
Mathlib/Order/Filter/ENNReal.lean |
1 |
3 |
['YaelDillies', 'github-actions'] |
nobody |
0-18261 5 hours ago |
0-18220 4 hours ago |
33-33568 33 days |
| 38741 |
eric-wieser author:eric-wieser |
feat: Nat.card lemmas for Sym and Sym2 |
These are just translations of the `Fintype` counterparts.
---
[](https://gitpod.io/from-referrer/)
|
t-data |
90/0 |
Mathlib.lean,Mathlib/Data/Sym/NatCard.lean |
2 |
8 |
['SnirBroshi', 'eric-wieser', 'github-actions'] |
nobody |
0-17801 4 hours ago |
0-57158 15 hours ago |
0-57606 16 hours |
| 38441 |
yuanyi-350 author:yuanyi-350 |
doc(CategoryTheory): fix category docstrings |
- fixes the docstring for discrete sums to refer to sums rather than products
- fixes the conical pullback docstring to name `HasConicalPullback`
- fixes the `AsType` equivalence docstring to refer to `AsType α`
Extracted from #38413
[](https://gitpod.io/from-referrer/) |
codex
documentation
LLM-generated
t-category-theory
easy
maintainer-merge
|
3/3 |
Mathlib/CategoryTheory/Discrete/SumsProducts.lean,Mathlib/CategoryTheory/Enriched/Limits/HasConicalPullbacks.lean,Mathlib/CategoryTheory/FinCategory/AsType.lean |
3 |
3 |
['dagurtomas', 'github-actions'] |
joelriou assignee:joelriou |
0-17024 4 hours ago |
6-71198 6 days ago |
6-70854 6 days |
| 37592 |
erdOne author:erdOne |
feat: set up API for `ConvexSpace` |
We introduce `sConvexCombo` and the indexed version `iConvexCombo` as the main API for `ConvexSpace` and prove lemmas around the new definitions.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
large-import
label:t-algebra$ |
467/157 |
Mathlib/Analysis/Convex/MetricSpace.lean,Mathlib/LinearAlgebra/ConvexSpace.lean,Mathlib/LinearAlgebra/ConvexSpace/AffineSpace.lean |
3 |
78 |
['ADedecker', 'YaelDillies', 'b-mehta', 'bryangingechen', 'erdOne', 'faenuccio', 'github-actions', 'grunweg', 'kbuzzard', 'mathlib-bors', 'ocfnash'] |
nobody |
0-16560 4 hours ago |
0-16624 4 hours ago |
5-64307 5 days |
| 38235 |
vihdzp author:vihdzp |
refactor: `not_isSuccLimit_iff` → `not_isSuccLimit_iff_succ_eq` |
A lemma with such a simple name as `not_isSuccLimit_iff` shouldn't require a partial successor order! The new `not_isSuccLimit_iff` is a straightforward unfolding of the definitions and requires only a preorder.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
36/20 |
Mathlib/MeasureTheory/Measure/MeasureSpace.lean,Mathlib/Order/SuccPred/Limit.lean,Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean,Mathlib/SetTheory/Ordinal/Basic.lean,Mathlib/Topology/Order/SuccPred.lean |
6 |
1 |
['github-actions'] |
nobody |
0-16511 4 hours ago |
11-43386 11 days ago |
11-43078 11 days |
| 37677 |
vihdzp author:vihdzp |
feat: club sets |
In set theory, a club set is a subset of an ordinal of uncountable cofinality, which is closed in the order topology, and unbounded within the ordinal.
We generalize this notion to that of a club set in a well-order `α`: this is a set which is cofinal and closed under suprema. We recover the more standard notion by setting `α = Iio o`, whenever `ℵ₀ < o.cof`.
We prove that club sets are closed under intersections of size less than the cofinality of `α`, and that the fixed points of a normal function are a club set.
---
The idea is to eventually rework [`Ordinal.deriv`](https://leanprover-community.github.io/mathlib4_docs/Mathlib/SetTheory/Ordinal/FixedPoint.html#Ordinal.deriv). This is simply the enumerator function for the fixed points of `f`, and enumerator functions for club sets are always normal.
- [x] depends on: #37670
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
|
158/0 |
Mathlib.lean,Mathlib/Order/IsNormal.lean,Mathlib/SetTheory/Cardinal/Club.lean,Mathlib/SetTheory/Cardinal/Cofinality.lean |
4 |
7 |
['github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'staroperator', 'vihdzp'] |
nobody |
0-16416 4 hours ago |
6-49005 6 days ago |
8-64787 8 days |
| 33313 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Coloring/Edge): create a basic edge-coloring API |
Module name decided on [Zulip](https://leanprover.zulipchat.com/#narrow/channel/252551-graph-theory/topic/Coloring.20module.20names/with/583281500).
---
Future work (which I'm working on):
- Relating degrees to edge-colorability (`G.maxDegree ≤ G.chromaticIndex`, `G.EdgeColorable 1 ↔ G.maxDegree ≤ 1`, `G.chromaticIndex = 1 ↔ G.maxDegree = 1`, `G.EdgeColorable 2 ↔ G.maxDegree ≤ 2`, `G.chromaticIndex = 2 ↔ G.maxDegree = 2`)
- [Vizing's theorem](https://en.wikipedia.org/wiki/Vizing%27s_theorem) (`G.chromaticIndex ≤ G.maxDegree + 1`)
- `chromaticIndex ⊤ = (if Even #V then #V - 1 else #V)`
- `[Infinite α] → chromaticIndex ⊤ = ⊤`
- [x] depends on: #33292
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
300/0 |
Mathlib.lean,Mathlib/Combinatorics/SimpleGraph/Coloring/Edge.lean |
2 |
27 |
['SnirBroshi', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'ooovi'] |
YaelDillies assignee:YaelDillies |
0-16322 4 hours ago |
0-16381 4 hours ago |
37-52308 37 days |
| 37973 |
vihdzp author:vihdzp |
chore(Order/Interval/Set/InitialSeg): clean up file |
We do various small golfs, remove unneeded namespaces, and deprecate some confusing names.
---
[](https://gitpod.io/from-referrer/)
|
t-order |
28/37 |
Mathlib/Order/Interval/Set/InitialSeg.lean |
1 |
1 |
['github-actions'] |
nobody |
0-16167 4 hours ago |
17-61137 17 days ago |
17-60793 17 days |
| 38363 |
vihdzp author:vihdzp |
chore: split `SetTheory.Cardinal.Cofinality` |
We split this file into a `Basic` file with only the basic results on `Order.cof`, and an `Ordinal` file for the interactions with ordinals. This avoids an import cycle in a subsequent PR.
The module docstrings were rewritten, but no theorems were changed.
---
This is necessary for #38362, as otherwise I'd get the cycle `Cardinal.Cofinality` → `Ordinal.Enum` → `Cardinal.Aleph` → `Cardinal.Arithmetic` → `Cardinal.Cofinality`.
[](https://gitpod.io/from-referrer/)
|
file-removed |
219/198 |
Mathlib.lean,Mathlib/CategoryTheory/Presentable/IsCardinalFiltered.lean,Mathlib/LinearAlgebra/Dimension/Finite.lean,Mathlib/Order/Filter/Cocardinal.lean,Mathlib/SetTheory/Cardinal/Cofinality/Basic.lean,Mathlib/SetTheory/Cardinal/Cofinality/Ordinal.lean,Mathlib/SetTheory/Cardinal/Regular.lean,Mathlib/SetTheory/Ordinal/FundamentalSequence.lean |
8 |
2 |
['github-actions', 'mathlib-merge-conflicts'] |
nobody |
0-16162 4 hours ago |
0-16189 4 hours ago |
7-74517 7 days |
| 37545 |
vihdzp author:vihdzp |
feat: ℵ_ univ = univ |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory |
74/4 |
Mathlib/SetTheory/Cardinal/Aleph.lean,Mathlib/SetTheory/Cardinal/Regular.lean |
2 |
7 |
['github-actions', 'mathlib-merge-conflicts', 'mattdiamond', 'plp127', 'vihdzp'] |
alreadydone assignee:alreadydone |
0-16089 4 hours ago |
16-71742 16 days ago |
28-20859 28 days |
| 37675 |
vihdzp author:vihdzp |
feat: `Order.cof Ordinal = univ` |
---
[](https://gitpod.io/from-referrer/)
|
t-set-theory
t-order
|
11/0 |
Mathlib/SetTheory/Cardinal/Cofinality.lean |
1 |
1 |
['github-actions'] |
nobody |
0-16034 4 hours ago |
25-3139 25 days ago |
25-2795 25 days |
| 38005 |
robin-carlier author:robin-carlier |
chore(Algebra): remove simps projections for structures of bundled objects |
I noticed that currently, adding a `@[simps]` tag to a `ModuleCat`-valued definition will generate projections for the `isModule` fields. These projections are removed. Same in `BialgCat` and `HopfAlgCat`.
---
I did not look very hard for all cases of this, but those three should be a starter.
Renaming `carrier` to `coe` will break a few things, so I opted for keeping it like this for now, feel free to disagree, but this will make the diff bigger.
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
4/0 |
Mathlib/Algebra/Category/BialgCat/Basic.lean,Mathlib/Algebra/Category/HopfAlgCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Basic.lean,Mathlib/Algebra/Category/ModuleCat/Semi.lean |
4 |
1 |
['github-actions'] |
nobody |
0-15748 4 hours ago |
17-16696 17 days ago |
17-19497 17 days |
| 38782 |
tb65536 author:tb65536 |
chore(RingTheory/IntegralClosure/IsIntegralClosure/Basic): clean up variables |
`RingTheory/IntegralClosure/IsIntegralClosure/Basic` has some redundant variables.
---
[](https://gitpod.io/from-referrer/)
|
t-ring-theory
t-algebra
label:t-algebra$ |
1/3 |
Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean |
1 |
1 |
['github-actions'] |
nobody |
0-15725 4 hours ago |
0-15725 4 hours ago |
0-15382 4 hours |
| 37304 |
vihdzp author:vihdzp |
feat: if `s ∪ t` is directed then one of `s` or `t` is |
Co-authored-by: Kamille Bidan <25210160030@m.fudan.edu.cn>
---
[](https://gitpod.io/from-referrer/)
|
t-order |
58/0 |
Mathlib/Order/Bounds/Basic.lean |
1 |
16 |
['NoneMore', 'YaelDillies', 'b-mehta', 'fpvandoorn', 'github-actions', 'mathlib-bors', 'plp127', 'vihdzp'] |
bryangingechen assignee:bryangingechen |
0-15627 4 hours ago |
0-15675 4 hours ago |
18-76555 18 days |
| 38256 |
sgouezel author:sgouezel |
chore: fix implicit-reducible diamond in languages |
---
The diff is misleading, I'm mostly moving `withConstantsStructure` up to be able to use it in `withConstantsSelfStructure` (which is a particular case of it) through `inferInstance`, instead of having two separate definitions hidden behind two different opaque functions.
[](https://gitpod.io/from-referrer/)
|
t-logic
maintainer-merge
|
9/10 |
Mathlib/ModelTheory/LanguageMap.lean |
1 |
3 |
['JovanGerb', 'github-actions'] |
nobody |
0-14912 4 hours ago |
11-21217 11 days ago |
11-20873 11 days |
| 38666 |
nipzu author:nipzu |
feat(MeasureTheory/Constructions/Polish): Measurability of `tprod`s/`tsum`s of measurable functions |
This PR adds theorems `[AE]Measurable.tprod` and their additive versions for products/sums of (ae)measurable functions to Borel spaces with Polish topology. These new theorems are marked with `fun_prop`.
There are already theorems `[AE]Measurable.[e]nnreal_tsum` that are special cases of these new theorems. I don't know what the conventions are for whether those special cases should be kept or deprecated/removed.
Edit:
- Added also theorems `[AE]StronglyMeasurable.tprod` and `[AE][Strongly]Measurable.tprod'` that apply to `∑' i, f i` instead of `fun x => ∑' i, f i x` with weaker assumptions. Some LLM assistance was used in golfing the `tprod'` proofs.
- Replaced usage of `[AE]Measurable.[e]nnreal_tsum` in mathlib with the new theorems.
- Deprecated `[AE]Measurable.[e]nnreal_tsum` and `Measurable.ennreal_tsum'`.
---
- [x] depends on: #38697
[](https://gitpod.io/from-referrer/)
|
t-measure-probability
large-import
new-contributor
|
181/23 |
Mathlib/MeasureTheory/Constructions/BorelSpace/Real.lean,Mathlib/MeasureTheory/Constructions/Polish/Basic.lean,Mathlib/MeasureTheory/Constructions/Polish/StronglyMeasurable.lean,Mathlib/MeasureTheory/Function/LpSpace/Complete.lean,Mathlib/MeasureTheory/Integral/DominatedConvergence.lean,Mathlib/MeasureTheory/Measure/GiryMonad.lean,Mathlib/MeasureTheory/Measure/Prod.lean,Mathlib/Probability/Kernel/Defs.lean,Mathlib/Probability/Kernel/IonescuTulcea/Traj.lean,Mathlib/Probability/Kernel/MeasurableLIntegral.lean |
10 |
13 |
['CoolRmal', 'github-actions', 'mathlib-dependent-issues', 'nipzu', 'sgouezel'] |
EtienneC30 assignee:EtienneC30 |
0-14813 4 hours ago |
0-15670 4 hours ago |
1-36877 1 day |
| 37252 |
artie2000 author:artie2000 |
feat(Algebra/Group/Submonoid/Support): properties of submonoid support |
* Prove how the support of a submonoid interacts with various operations
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
50/1 |
Mathlib/Algebra/Group/Submonoid/Support.lean |
1 |
9 |
['eric-wieser', 'github-actions', 'themathqueen'] |
themathqueen assignee:themathqueen |
0-14484 4 hours ago |
34-73962 34 days ago |
34-73618 34 days |
| 38127 |
riccardobrasca author:riccardobrasca |
feat: add ClassGroup.extendedHom |
---
[](https://gitpod.io/from-referrer/)
|
file-removed
t-algebra
t-ring-theory
label:t-algebra$ |
110/6 |
Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Affine/Point.lean,Mathlib/NumberTheory/ClassNumber/Finite.lean,Mathlib/NumberTheory/NumberField/CanonicalEmbedding/FundamentalCone.lean,Mathlib/RingTheory/ClassGroup/Basic.lean,Mathlib/RingTheory/ClassGroup/ExtendedHom.lean,Mathlib/RingTheory/FractionalIdeal/Extended.lean,Mathlib/RingTheory/PicardGroup.lean,Mathlib/RingTheory/UniqueFactorizationDomain/ClassGroup.lean |
9 |
9 |
['faenuccio', 'github-actions', 'mathlib-merge-conflicts', 'riccardobrasca'] |
mattrobball assignee:mattrobball |
0-13933 3 hours ago |
0-43413 11 hours ago |
13-63423 13 days |
| 38126 |
JovanGerb author:JovanGerb |
feat: overlapping instances linter |
This is a new attempt at the overlapping instances linter, with better performance.
One question is where to put the yellow squiggle of the warning message. It is now at the start of the definition value, i.e. the `by` token for typical proofs. This is slightly annoying, because the yellow squiggle is overridden by the red squiggle from "unsolved goals".
Another annoyance is the need for `withSetBoolOptionIn`. This is a private declaration in the `unusedInstancesInType` linter, with a link to an unsolved issue. I've marked it public, but maybe it should go to a separate file, depending on how fast we think the issue will be resolved.
See #35095 and #34955 for previous iterations of this linter.
See #14731 for an old attempt at a weaker form of this linter.
Co-authored-by: @thorimur
---
- [ ] depends on: #38151
- [ ] depends on: #38150
[](https://gitpod.io/from-referrer/)
|
t-linter |
564/3 |
Mathlib.lean,Mathlib/Algebra/Module/Equiv/Defs.lean,Mathlib/Algebra/Order/Antidiag/Prod.lean,Mathlib/CategoryTheory/Localization/Predicate.lean,Mathlib/CategoryTheory/Monoidal/Closed/Cartesian.lean,Mathlib/Control/Applicative.lean,Mathlib/Control/Functor.lean,Mathlib/GroupTheory/OreLocalization/Basic.lean,Mathlib/Init.lean,Mathlib/Lean/Elab/InfoTree.lean,Mathlib/Logic/Basic.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/DirectoryDependency.lean,Mathlib/Tactic/Linter/OverlappingInstances.lean,Mathlib/Tactic/Linter/UnusedInstancesInType.lean,Mathlib/Topology/Algebra/MulAction.lean,Mathlib/Topology/Connected/PathConnected.lean,MathlibTest/OverlappingInstances.lean,MathlibTest/Subsingleton.lean,MathlibTest/Variable.lean,MathlibTest/WhitespaceLinter.lean,MathlibTest/congr.lean |
22 |
67 |
['JovanGerb', 'github-actions', 'leanprover-radar', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'thorimur'] |
thorimur assignee:thorimur |
0-13740 3 hours ago |
0-13844 3 hours ago |
8-26625 8 days |
| 38314 |
pedroscortes author:pedroscortes |
feat(CategoryTheory/Monoidal): tensorμ_braid_swap and tensor-product IsCommComonObj |
## Summary
Two symmetric-monoidal coherence results:
1. `MonoidalCategory.tensorμ_braid_swap` (in `Monoidal/Braided/Basic.lean`) —
canonical rearrangement `tensorμ A A Y Y` intertwines the braiding on `A ⊗ Y`
with the pair of braidings on `A` and `Y`. Sibling of
`CategoryTheory.MonObj.mul_braiding`.
2. Tensor-product instance for `IsCommComonObj` (in `Monoidal/CommComon_.lean`):
if `A, B` carry commutative comonoid structures in a symmetric monoidal
category, so does `A ⊗ B`. Fills a gap alongside the existing
`instCommComonObjUnit` and `instIsCommComonObjOfCartesian`.
## Downstream consumer
The `IsCommComonObj` tensor-product instance is load-bearing for an external
library (markovcat, formalising Fritz–Klingler Markov categories). |
t-category-theory
new-contributor
maintainer-merge
|
15/0 |
Mathlib/CategoryTheory/Monoidal/Braided/Basic.lean,Mathlib/CategoryTheory/Monoidal/CommComon_.lean |
2 |
19 |
['dagurtomas', 'github-actions', 'joelriou', 'pedroscortes', 'robin-carlier'] |
riccardobrasca assignee:riccardobrasca |
0-13065 3 hours ago |
0-22051 6 hours ago |
8-64765 8 days |
| 38650 |
joelriou author:joelriou |
feat(CategoryTheory): the opposite of a triangulated subcategory |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
81/0 |
Mathlib.lean,Mathlib/CategoryTheory/Triangulated/Opposite/Subcategory.lean |
2 |
3 |
['dagurtomas', 'github-actions'] |
nobody |
0-13065 3 hours ago |
2-25203 2 days ago |
2-24859 2 days |
| 38659 |
ldct author:ldct |
chore(Counterexamples/MapFloor): remove `respectTransparency` |
It seemed better to make this an `abbrev` since we want to copy most of the instances over.
---
[](https://gitpod.io/from-referrer/)
|
|
7/13 |
Counterexamples/MapFloor.lean |
1 |
4 |
['github-actions', 'grunweg'] |
nobody |
0-12881 3 hours ago |
1-78468 1 day ago |
1-78124 1 day |
| 30666 |
erdOne author:erdOne |
feat(NumberTheory): every number field has a ramified prime |
---
[](https://gitpod.io/from-referrer/)
|
t-number-theory
t-algebra
maintainer-merge
label:t-algebra$ |
260/10 |
Mathlib.lean,Mathlib/Algebra/Ring/Int/Field.lean,Mathlib/LinearAlgebra/Dimension/FreeAndStrongRankCondition.lean,Mathlib/NumberTheory/NumberField/Basic.lean,Mathlib/NumberTheory/NumberField/Discriminant/Different.lean,Mathlib/NumberTheory/NumberField/ExistsRamified.lean,Mathlib/NumberTheory/RamificationInertia/Inertia.lean,Mathlib/RingTheory/DedekindDomain/Basic.lean,Mathlib/RingTheory/Ideal/Maximal.lean,Mathlib/RingTheory/Ideal/Norm/AbsNorm.lean,Mathlib/RingTheory/IntegralClosure/IsIntegralClosure/Basic.lean,Mathlib/RingTheory/KrullDimension/Basic.lean |
12 |
42 |
['MichaelStollBayreuth', 'erdOne', 'github-actions', 'jcommelin', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'riccardobrasca', 'tb65536', 'xroblot'] |
jcommelin assignee:jcommelin |
0-12003 3 hours ago |
0-18076 4 hours ago |
14-11294 14 days |
| 38785 |
scholzhannah author:scholzhannah |
feat: use `alias_in` attribute for CW complexes |
Using the `alias_in` attribute for classical CW complexes to get rid of the `export` sections.
---
[](https://gitpod.io/from-referrer/)
|
t-topology |
90/58 |
Mathlib/Topology/CWComplex/Classical/Basic.lean,Mathlib/Topology/CWComplex/Classical/Finite.lean,Mathlib/Topology/CWComplex/Classical/Subcomplex.lean |
3 |
1 |
['github-actions'] |
nobody |
0-11292 3 hours ago |
0-11368 3 hours ago |
0-11024 3 hours |
| 38722 |
chrisflav author:chrisflav |
chore(CategoryTheory/Monoidal): additivize `ModObj` |
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory
maintainer-merge
|
124/21 |
Mathlib/CategoryTheory/Monoidal/Mod.lean,Mathlib/Tactic/Translate/ToAdditive.lean |
2 |
2 |
['dagurtomas', 'github-actions'] |
nobody |
0-11144 3 hours ago |
1-17377 1 day ago |
1-17162 1 day |
| 38777 |
JJYYY-JJY author:JJYYY-JJY |
feat(Algebra/Module/RingHom): add Module.compHom_smul_def |
This PR adds `Module.compHom_smul_def`, a rewrite for the scalar action induced by `Module.compHom`.
The theorem says that after pulling a module structure back along `f : S →+* R`, the action of `s : S` is the original action of `f s : R`.
This makes it possible to write `rw [Module.compHom_smul_def]` instead of manually unfolding `Module.compHom`.
It is analogous to 'compHom_smul_def' in `Mathlib/Algebra/Algebra/Defs.lean` and `Mathlib/Algebra/Group/Action/Hom`.
This will only add the public rewrite lemma; the existing TODO about the internal proof is intentionally left in place.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
5/0 |
Mathlib/Algebra/Module/RingHom.lean |
1 |
4 |
['JJYYY-JJY', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions'] |
nobody |
0-8721 2 hours ago |
0-34464 9 hours ago |
0-34120 9 hours |
| 38704 |
kbuzzard author:kbuzzard |
perf: raise prio of various Mul->SMul instances |
The instances `instSMulOfMul` /`instVAddOfAdd`, `MulZeroClass.toSMulWithZero`, `Monoid.toMulAction` / `AddMonoid.toAddAction`, `MonoidWithZero.toMulActionWithZero` and `Semiring.toModule` are all of the form `F X -> G X X` (so rarely apply) and are essentially always the right choice when they do apply (I know of no counterexample, in fact). They are also all at lowered priority on master, a decision which came from mathlib3 (which had a very different algorithm for typeclass inference). I have raised them to higher priority than default (in fact to 1100) and this causes a speedup of around 20% in several of the slowest files in mathlib (`Mathlib.RingTheory.Etale.QuasiFinite`, `Mathlib.RingTheory.DedekindDomain.Different`, `Mathlib.RingTheory.ZariskisMainTheorem`,...) and a general speedup in far more files.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra label:t-algebra$ |
82/15 |
Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/GroupWithZero/Action/Defs.lean,Mathlib/Algebra/Module/Defs.lean,Mathlib/Analysis/Normed/Module/Basic.lean,Mathlib/RingTheory/AdicCompletion/AsTensorProduct.lean,Mathlib/RingTheory/AdicCompletion/Functoriality.lean |
6 |
29 |
['JovanGerb', 'Whysoserioushah', 'github-actions', 'jcommelin', 'kbuzzard', 'leanprover-radar'] |
nobody |
0-8215 2 hours ago |
1-11697 1 day ago |
1-11355 1 day |
| 37997 |
emlis42 author:emlis42 |
feat(Algebra/ContinuedFractions): generalize determinant formula to GenContFract |
Let $g$ be a `GenContFract K`.
In this PR I generalize the determinant formula for continued fractions from the simple continued fraction case
$$A_n B_{n+1} - B_n A_{n+1} = (-1)^n$$
to the generalized continued fraction product formula
$$A_n B_{n+1} - B_n A_{n+1} = (-a_0) (-a_1) \dots (-a_n)$$
- The `SimpContFract` version is still available unchanged, so this should avoid breaking existing users of the old API.
- The use of `0` as the default partial numerator in `(g.partNums.get? i).getD 0` allows product formulation that remains valid when the fraction is terminated. |
t-algebra
new-contributor
large-import
label:t-algebra$ |
53/28 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Determinant.lean |
2 |
13 |
['emlis42', 'github-actions', 'themathqueen', 'vihdzp'] |
ocfnash assignee:ocfnash |
0-6983 1 hour ago |
3-21004 3 days ago |
17-32877 17 days |
| 38170 |
maddycrim author:maddycrim |
feat(Algebra/Module/FinitePresentation): Finitely Presented Module Lemma |
From FLT Project
Main Definitions:
`Module.FinitePresentation.exists_fin_exact` : A finitely presented module M admits an exact sequence F' -> F -> M -> 0 where F' and F are finite free modules.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
9/0 |
Mathlib/Algebra/Module/FinitePresentation.lean |
1 |
16 |
['github-actions', 'maddycrim', 'themathqueen', 'vlad902'] |
nobody |
0-5929 1 hour ago |
9-69111 9 days ago |
13-5011 13 days |
| 37577 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Walk): upgrade subset theorems to sublist/prefix/suffix |
Upgrades theorems about `p.support ⊆ q.support` / `p.darts ⊆ q.darts` / `p.edges ⊆ q.edges`
to `List.IsInfix`/`List.IsSuffix`/`List.Sublist`, which imply the subset versions.
---
I did not add such theorems where there was no subset theorem to begin with (e.g. `(p.take n).darts <+: p.darts`), as they are usually not worth stating since they're trivial and simp proves them.
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
84/44 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean |
4 |
1 |
['github-actions'] |
nobody |
0-4986 1 hour ago |
27-83756 27 days ago |
27-83412 27 days |
| 38745 |
FordUniver author:FordUniver |
chore(Combinatorics/SimpleGraph/Copy): rename labelledCopyCount |
Renames `labelledCopyCount` to `labeledCopyCount` (American spelling per the [naming conventions](https://leanprover-community.github.io/contribute/naming.html#spelling)). Deprecated aliases are provided for all renamed declarations.
---
Should probably be a prerequisite for #38631. |
t-combinatorics
new-contributor
|
31/19 |
Mathlib/Combinatorics/SimpleGraph/Copy.lean |
1 |
12 |
['FordUniver', 'SnirBroshi', 'YaelDillies', 'github-actions'] |
nobody |
0-3690 1 hour ago |
0-18699 5 hours ago |
0-56802 15 hours |
| 37714 |
mortarsanjaya author:mortarsanjaya |
feat(Algebra/Order/Floor/Defs): `Nat.cast` is strictly monotone in `FloorSemiring` and `FloorRing` |
As title says, and without the `IsOrderedRing` assumption.
Other than that, I removed the `IsOrderedRing` assumption from pretty much all the lemmas in `Algebra/Order/Floor/Defs` that could possibly have this assumption removed, and reduced some `IsStrictOrderedRing` assumptions to `IsOrderedRing` + `Nontrivial`.
Due to strict monotonicity, we can also provide `CharZero` instance on `FloorSemiring` and `FloorRing`. Thus we can remove the `NeZero` and `Nontrivial` instances on them.
The changes on `/Ring` and `/Semiring` are trivial changes due to some lemmas not requiring an `IsOrderedRing` instance anymore.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
new-contributor
label:t-algebra$ |
99/36 |
Mathlib/Algebra/ContinuedFractions/Computation/Approximations.lean,Mathlib/Algebra/ContinuedFractions/Computation/TerminatesIffRat.lean,Mathlib/Algebra/Order/Floor/Defs.lean,Mathlib/Algebra/Order/Floor/Ring.lean,Mathlib/Algebra/Order/Floor/Semiring.lean |
5 |
18 |
['dagurtomas', 'github-actions', 'mathlib-bors', 'mortarsanjaya'] |
dagurtomas assignee:dagurtomas |
0-2580 43 minutes ago |
0-2580 37 minutes ago |
23-57371 23 days |
| 38705 |
justus-springer author:justus-springer |
refactor(Algebra/Category/ModuleCat/ChangeOfRings): golf `restrictScalarsEquivalenceOfRingEquiv` |
Also add simps attribute.
---
[](https://gitpod.io/from-referrer/)
|
t-algebra
t-algebraic-geometry
maintainer-merge
label:t-algebra$ |
5/12 |
Mathlib/Algebra/Category/ModuleCat/ChangeOfRings.lean |
1 |
3 |
['dagurtomas', 'github-actions'] |
nobody |
0-2483 41 minutes ago |
1-34383 1 day ago |
1-34741 1 day |
| 37869 |
mckoen author:mckoen |
feat(AlgebraicTopology/Quasicategory): inner fibrations and inner anodyne morphisms |
Defines inner fibrations, inner anodyne morphisms, and immediate results.
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology |
220/0 |
Mathlib.lean,Mathlib/AlgebraicTopology/Quasicategory/Basic.lean,Mathlib/AlgebraicTopology/Quasicategory/InnerFibration.lean,Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/Inner/Basic.lean |
4 |
9 |
['github-actions', 'joelriou', 'mckoen', 'robin-carlier'] |
nobody |
0-2452 40 minutes ago |
0-2452 35 minutes ago |
0-66798 18 hours |
| 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 |
119/1 |
Mathlib/Combinatorics/SimpleGraph/Paths.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Decomp.lean,Mathlib/Combinatorics/SimpleGraph/Walk/Operations.lean,Mathlib/Data/List/Basic.lean,Mathlib/Data/List/Nodup.lean |
5 |
26 |
['Rida-Hamadani', 'YaelDillies', 'github-actions', 'mathlib-dependent-issues', 'mathlib-merge-conflicts', 'mathlib4-merge-conflict-bot', 'vlad902'] |
nobody |
0-2416 40 minutes ago |
0-2479 35 minutes ago |
13-64502 13 days |
| 38665 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet): characterization of Kan complexes |
---
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
maintainer-merge
|
92/2 |
Mathlib/AlgebraicTopology/SimplicialSet/CategoryWithFibrations.lean,Mathlib/AlgebraicTopology/SimplicialSet/KanComplex.lean |
2 |
4 |
['dagurtomas', 'github-actions', 'joelriou'] |
nobody |
0-1544 25 minutes ago |
2-9348 2 days ago |
2-9097 2 days |
| 38211 |
gaetanserre author:gaetanserre |
feat(Probability/Kernel): define `IsDeterministic` |
Defines the `IsDeterministic` typeclass which state that a kernel is deterministic in a categorical sense, i.e., it "commutes" with `Kernel.copy`.
For some additional context, please see #37851.
---
[](https://gitpod.io/from-referrer/)
|
t-measure-probability |
333/10 |
Mathlib.lean,Mathlib/Probability/Kernel/Composition/Comp.lean,Mathlib/Probability/Kernel/Composition/KernelLemmas.lean,Mathlib/Probability/Kernel/Deterministic.lean,Mathlib/Probability/Kernel/Posterior.lean,docs/references.bib |
6 |
22 |
['RemyDegenne', 'eric-wieser', 'gaetanserre', 'github-actions'] |
RemyDegenne assignee:RemyDegenne |
0-1200 20 minutes ago |
3-45911 3 days ago |
9-26510 9 days |
| 38530 |
joelriou author:joelriou |
feat(AlgebraicTopology/SimplicialSet): the relative cell complex of a monomorphism |
In this PR, we show that any monomorphism of simplicial sets is a relative cell complex with basic cells given by boundary inclusions.
---
Note: I think we can ignore the `large-import` label here, because this is a leaf file, and the relative cell complex that is constructed here is a basic fact about the skeleton filtration.
[](https://gitpod.io/from-referrer/)
|
t-algebraic-topology
large-import
|
297/11 |
Mathlib/AlgebraicTopology/SimplicialSet/AnodyneExtensions/RelativeCellComplex.lean,Mathlib/AlgebraicTopology/SimplicialSet/Boundary.lean,Mathlib/AlgebraicTopology/SimplicialSet/Degenerate.lean,Mathlib/AlgebraicTopology/SimplicialSet/Skeleton.lean,Mathlib/CategoryTheory/Limits/Shapes/Preorder/TransfiniteCompositionOfShape.lean,Mathlib/CategoryTheory/MorphismProperty/Limits.lean |
6 |
14 |
['dagurtomas', 'github-actions', 'joelriou', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
0-1152 19 minutes ago |
0-5274 1 hour ago |
4-56990 4 days |
| 38639 |
yuanyi-350 author:yuanyi-350 |
refactor(MeasureTheory): golf `Mathlib/MeasureTheory/Constructions/Polish/Basic` |
- rewrites `MeasurableSet.image_of_measurable_injOn` to transport measurability with `borel_anti` and `eq_borel_upgradeStandardBorel` instead of building the auxiliary measurable-set proof by hand
- installs the induced `MeasurableSpace` and `BorelSpace` instances on the refined Polish topology and closes with `hs'.image_of_continuousOn_injOn`
Extracted from #38104
[](https://gitpod.io/from-referrer/) |
codex
LLM-generated
t-measure-probability
|
4/8 |
Mathlib/MeasureTheory/Constructions/Polish/Basic.lean |
1 |
4 |
['github-actions', 'leanprover-radar', 'yuanyi-350'] |
nobody |
0-1113 18 minutes ago |
2-28803 2 days ago |
2-28459 2 days |
| 38534 |
AlexeyMilovanov author:AlexeyMilovanov |
refactor(Computability): bundle PFun into a structure with FunLike instance |
This PR refactors PFun from def PFun α β := α → Part β to a structure with a FunLike instance.
[Discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Fix.20for.20fun_prop.20on.20PFun.20.28context.3A.20Computability.20Theory.29)
**Core Architectural Changes**
* **Structure Transition:** `PFun` is now a structure with a single field `toFun : α → Part β`. Raw lambdas are now explicitly packed using `PFun.mk` or `PFun.lift`.
* **API Alignment:** Added the `FunLike (α →. β) α (Part β)` instance and `initialize_simps_projections`. Replaced direct `funext` usage with `DFunLike.ext`. Added comprehensive `@[simp]` lemmas for the structure (`mk_apply`, `coe_mk`, `toFun_eq_coe`, `lift_apply`).
* **New Helpers:** Introduced `PFun.const` and `PFun.empty` to reduce boilerplate.
**API & Breaking Changes**
* **Loss of Defeq:** `PFun` is no longer definitionally equal to a raw function. Basic lemmas (like `PFun.res_univ`) now require explicit extensionality (`ext x y; rfl`).
* **`prodLift_fst_comp_snd_comp`:** Rewrote the LHS using explicit `PFun.mk` wrappers. This Breaking API Change resolves a `simpNF` linter failure caused by the new `comp_lift` simp lemma.
* **simpNF Compliance:** Removed `@[simp]` from `coe_val` and changed `mem_lift_iff` to `@[simp↓]` to prevent overlapping rewrite rules with `lift_apply`.
**Downstream Impact**
The refactor heavily impacts Computability Theory and Category Theory (`Category/PartialFun.lean`). The strict structure boundary breaks definitional equality, meaning tactics like `simp` and `grind` can no longer "see through" the function automatically.
As a result, several proofs (e.g., `fix_aux`, `ppred`, `mem_eval`, and `unitIso`) grew in size, requiring explicit `ext` + `simp` breakdowns.
**Affected Files:**
* **Core:** `Mathlib/Data/PFun.lean`
* **Computability:** `Partrec`, `PartrecBasis`, `PartrecCode`, `RE`, `RecursiveIn`, `Ackermann`, `Halting`, `StateTransition`, `TuringDegree`, `TuringMachine/Config`
* **Category Theory:** `Category/PartialFun.lean` *(Successfully removed the `respectTransparency false` hack here!)*
* **Other:** `Data/Finset/PImage.lean`, `NumberTheory/Dioph.lean` |
new-contributor
t-computability
|
1224/802 |
Mathlib/CategoryTheory/Category/PartialFun.lean,Mathlib/Computability/Ackermann.lean,Mathlib/Computability/Halting.lean,Mathlib/Computability/Partrec.lean,Mathlib/Computability/PartrecBasis.lean,Mathlib/Computability/PartrecCode.lean,Mathlib/Computability/RE.lean,Mathlib/Computability/RecursiveIn.lean,Mathlib/Computability/StateTransition.lean,Mathlib/Computability/TuringDegree.lean,Mathlib/Computability/TuringMachine/Config.lean,Mathlib/Data/Finset/PImage.lean,Mathlib/Data/PFun.lean,Mathlib/NumberTheory/Dioph.lean |
14 |
3 |
['github-actions', 'mathlib-bors'] |
nobody |
0-637 10 minutes ago |
0-33550 9 hours ago |
1-27559 1 day |