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-41708 29 days ago |
36-8239 36 days ago |
36-7983 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 |
29-3066 29 days ago |
29-3091 29 days ago |
30-12727 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-50876 28 days ago |
28-50912 28 days ago |
28-79177 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-75869 27 days ago |
27-75927 27 days ago |
41-85999 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-34073 27 days ago |
34-84006 34 days ago |
35-3047 35 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-32923 27 days ago |
27-34074 27 days ago |
28-65831 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-14500 27 days ago |
30-72011 30 days ago |
30-71899 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-85770 26 days ago |
26-85844 26 days ago |
26-85588 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 |
25-5883 25 days ago |
25-5964 25 days ago |
25-5708 25 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-6573 24 days ago |
24-6573 24 days ago |
24-18283 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-54035 23 days ago |
24-52660 24 days ago |
24-52404 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-24025 23 days ago |
23-24088 23 days ago |
23-25075 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-17994 23 days ago |
23-18054 23 days ago |
25-34435 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-75335 22 days ago |
22-75410 22 days ago |
22-75154 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 |
22-2911 22 days ago |
22-5945 22 days ago |
22-6015 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-79736 21 days ago |
45-44140 45 days ago |
45-43885 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-79733 21 days ago |
25-33345 25 days ago |
36-83848 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-79727 21 days ago |
25-22716 25 days ago |
26-45995 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-6162 21 days ago |
24-30607 24 days ago |
24-30351 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-86118 20 days ago |
20-86176 20 days ago |
31-5867 31 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-31725 20 days ago |
20-31725 20 days ago |
20-31470 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-20012 20 days ago |
20-20012 20 days ago |
20-19757 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-79637 19 days ago |
20-70648 20 days ago |
20-73629 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-56853 19 days ago |
19-56913 19 days ago |
44-28436 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-54493 19 days ago |
19-54554 19 days ago |
37-51882 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-54457 19 days ago |
46-10625 46 days ago |
46-10369 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-13406 19 days ago |
19-13464 19 days ago |
24-25525 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 |
19-442 19 days ago |
19-45793 19 days ago |
19-45537 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-79327 18 days ago |
29-6423 29 days ago |
29-6167 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-64015 18 days ago |
18-64073 18 days ago |
30-53607 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-13746 18 days ago |
18-13804 18 days ago |
23-67399 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-12938 18 days ago |
18-12989 18 days ago |
33-69932 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-38776 17 days ago |
17-38570 17 days ago |
55-46772 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-31385 17 days ago |
18-54865 18 days ago |
18-54610 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 |
17-2632 17 days ago |
17-2698 17 days ago |
17-2442 17 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-79244 16 days ago |
29-3057 29 days ago |
30-55733 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-39157 16 days ago |
16-46501 16 days ago |
21-49458 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-34739 16 days ago |
16-34767 16 days ago |
35-75948 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-8707 16 days ago |
17-5238 17 days ago |
17-6599 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-79279 15 days ago |
28-46542 28 days ago |
28-46286 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-79278 15 days ago |
23-82657 23 days ago |
23-82894 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-68063 15 days ago |
15-68127 15 days ago |
15-69032 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-21421 15 days ago |
15-21479 15 days ago |
19-25434 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-14223 15 days ago |
15-14254 15 days ago |
15-14014 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-11222 15 days ago |
15-28879 15 days ago |
15-29061 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-79178 14 days ago |
83-83252 83 days ago |
87-10022 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-64624 14 days ago |
14-69498 14 days ago |
14-69242 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-40791 14 days ago |
14-40755 14 days ago |
29-61062 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-34956 14 days ago |
14-35016 14 days ago |
32-48422 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-13073 14 days ago |
25-43644 25 days ago |
44-33916 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-13062 14 days ago |
44-21588 44 days ago |
44-21332 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-6618 14 days ago |
14-10706 14 days ago |
25-39666 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-78698 13 days ago |
14-69093 14 days ago |
14-71367 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-76571 13 days ago |
13-76638 13 days ago |
13-76382 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-51917 13 days ago |
13-51941 13 days ago |
30-20001 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-37017 13 days ago |
13-37075 13 days ago |
16-32500 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-36884 13 days ago |
18-32864 18 days ago |
18-39842 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-32598 13 days ago |
13-33224 13 days ago |
38-42552 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-30797 13 days ago |
13-30797 13 days ago |
20-53694 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-21813 13 days ago |
13-21813 13 days ago |
28-36714 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-21621 13 days ago |
21-73369 21 days ago |
21-76931 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-21342 13 days ago |
13-29016 13 days ago |
14-41637 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-16322 13 days ago |
13-16322 13 days ago |
17-39218 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-12009 13 days ago |
16-21985 16 days ago |
16-21729 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-7885 13 days ago |
15-22178 15 days ago |
23-68399 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-7557 13 days ago |
13-7629 13 days ago |
13-7373 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-6398 13 days ago |
13-6398 13 days ago |
13-6144 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-86065 12 days ago |
12-86088 12 days ago |
19-72716 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-79564 12 days ago |
37-22721 37 days ago |
37-23715 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-79561 12 days ago |
24-62142 24 days ago |
31-10927 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-79559 12 days ago |
32-19935 32 days ago |
32-20234 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-79549 12 days ago |
13-15895 13 days ago |
13-16600 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-61363 12 days ago |
12-61419 12 days ago |
27-65286 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-50601 12 days ago |
12-52028 12 days ago |
12-51772 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-45034 12 days ago |
12-45091 12 days ago |
12-47669 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-32597 12 days ago |
13-23996 13 days ago |
13-23742 13 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-7850 12 days ago |
25-83995 25 days ago |
25-83739 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-86160 11 days ago |
12-52701 12 days ago |
12-52544 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-81755 11 days ago |
11-81825 11 days ago |
11-81569 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-79747 11 days ago |
34-17287 34 days ago |
34-17791 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-79746 11 days ago |
34-17301 34 days ago |
34-17835 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-79189 11 days ago |
13-29478 13 days ago |
113-10811 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-79188 11 days ago |
34-5401 34 days ago |
66-2706 66 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-79187 11 days ago |
36-49514 36 days ago |
55-43078 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-79186 11 days ago |
36-33374 36 days ago |
40-69194 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-79185 11 days ago |
25-67637 25 days ago |
26-82869 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-79183 11 days ago |
17-29771 17 days ago |
17-30237 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-64506 11 days ago |
12-35881 12 days ago |
12-36840 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-64351 11 days ago |
11-64430 11 days ago |
11-64174 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-25343 11 days ago |
11-39593 11 days ago |
11-44061 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-79747 10 days ago |
32-40347 32 days ago |
64-81431 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-79746 10 days ago |
34-17298 34 days ago |
34-17778 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-79745 10 days ago |
64-19200 64 days ago |
66-53230 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-79231 10 days ago |
27-22765 27 days ago |
27-24606 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-79230 10 days ago |
12-34905 12 days ago |
27-50421 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-79229 10 days ago |
28-3463 28 days ago |
28-3207 28 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-79041 10 days ago |
10-79065 10 days ago |
11-13386 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-67175 10 days ago |
10-72494 10 days ago |
16-60550 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-49087 10 days ago |
10-49372 10 days ago |
10-49116 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-36962 10 days ago |
10-85595 10 days ago |
11-1333 11 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-17169 10 days ago |
10-18507 10 days ago |
10-18349 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-12136 10 days ago |
10-12215 10 days ago |
10-11959 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 |
10-2081 10 days ago |
10-2152 10 days ago |
10-1896 10 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-79259 9 days ago |
23-75105 23 days ago |
23-74849 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-72203 9 days ago |
9-72276 9 days ago |
9-72020 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-70539 9 days ago |
9-72857 9 days ago |
9-72601 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-66602 9 days ago |
9-66660 9 days ago |
35-63598 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-49872 9 days ago |
9-49936 9 days ago |
55-34200 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-32949 9 days ago |
9-33841 9 days ago |
9-33875 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-6804 9 days ago |
12-84533 12 days ago |
13-542 13 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 |
9-5697 9 days ago |
9-30470 9 days ago |
9-30214 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 |
9-4146 9 days ago |
9-16257 9 days ago |
9-17092 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 |
9-1162 9 days ago |
9-16030 9 days ago |
9-15774 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-79449 8 days ago |
15-52250 15 days ago |
15-55316 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-76815 8 days ago |
8-76890 8 days ago |
8-76634 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-53857 8 days ago |
9-11504 9 days ago |
9-11671 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-13220 8 days ago |
8-13243 8 days ago |
16-74613 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-10263 8 days ago |
9-80218 9 days ago |
9-80488 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 |
8-5467 8 days ago |
8-26198 8 days ago |
11-25641 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-83813 7 days ago |
8-6243 8 days ago |
9-62330 9 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-79143 7 days ago |
32-70439 32 days ago |
32-70183 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-79142 7 days ago |
30-35576 30 days ago |
52-30589 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-79141 7 days ago |
17-1224 17 days ago |
23-47451 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-79138 7 days ago |
30-27794 30 days ago |
30-80952 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-79137 7 days ago |
23-21218 23 days ago |
23-21258 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-79132 7 days ago |
9-32635 9 days ago |
11-15380 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-71507 7 days ago |
7-71565 7 days ago |
7-72861 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-48576 7 days ago |
8-28284 8 days ago |
8-28028 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-47306 7 days ago |
7-82189 7 days ago |
8-49982 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-45364 7 days ago |
7-45435 7 days ago |
7-45179 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-34561 7 days ago |
7-34618 7 days ago |
8-22803 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-32118 7 days ago |
7-41185 7 days ago |
7-40929 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-23657 7 days ago |
7-23714 7 days ago |
29-16072 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-22325 7 days ago |
7-22381 7 days ago |
26-24904 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-19861 7 days ago |
7-19861 7 days ago |
7-23357 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-19371 7 days ago |
7-19431 7 days ago |
7-21084 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-16770 7 days ago |
7-21771 7 days ago |
35-59465 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-82072 6 days ago |
6-82126 6 days ago |
9-64576 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-79136 6 days ago |
18-20303 18 days ago |
18-21848 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-79135 6 days ago |
14-50324 14 days ago |
14-50462 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-79135 6 days ago |
9-6665 9 days ago |
9-22190 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-79132 6 days ago |
8-85171 8 days ago |
12-2056 12 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-74104 6 days ago |
7-22881 7 days ago |
7-22682 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-70541 6 days ago |
17-28247 17 days ago |
18-3885 18 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-55904 6 days ago |
12-46775 12 days ago |
13-62041 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-53669 6 days ago |
21-22053 21 days ago |
35-83071 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-53432 6 days ago |
9-33225 9 days ago |
38-17360 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-49545 6 days ago |
6-49605 6 days ago |
6-51993 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-49287 6 days ago |
6-49375 6 days ago |
40-59157 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-30600 6 days ago |
8-53519 8 days ago |
8-53310 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-30589 6 days ago |
8-9857 8 days ago |
8-9601 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-30508 6 days ago |
6-32369 6 days ago |
6-32113 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-20686 6 days ago |
6-34239 6 days ago |
6-34207 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-12564 6 days ago |
6-12580 6 days ago |
13-74446 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-10890 6 days ago |
7-19004 7 days ago |
7-19186 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 |
6-3437 6 days ago |
6-3499 6 days ago |
6-5199 6 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-80148 5 days ago |
12-6948 12 days ago |
12-6692 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-79443 5 days ago |
6-52696 6 days ago |
6-54624 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-79441 5 days ago |
21-28573 21 days ago |
21-28317 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-77630 5 days ago |
6-47235 6 days ago |
6-46979 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-70737 5 days ago |
6-82056 6 days ago |
68-66607 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-70456 5 days ago |
6-75316 6 days ago |
6-75060 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-67633 5 days ago |
5-81374 5 days ago |
5-82345 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-67567 5 days ago |
32-60511 32 days ago |
62-53016 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-67457 5 days ago |
5-67532 5 days ago |
5-67276 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-59005 5 days ago |
5-83713 5 days ago |
5-83457 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-57839 5 days ago |
29-8468 29 days ago |
29-8212 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-47158 5 days ago |
5-47158 5 days ago |
42-73947 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-43412 5 days ago |
5-43466 5 days ago |
21-42269 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-43380 5 days ago |
9-10924 9 days ago |
9-11054 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-42740 5 days ago |
5-42803 5 days ago |
5-43461 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-37059 5 days ago |
5-59789 5 days ago |
44-34779 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-36172 5 days ago |
5-36250 5 days ago |
5-35994 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-27146 5 days ago |
5-27205 5 days ago |
5-28510 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-27002 5 days ago |
12-1915 12 days ago |
12-1659 12 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-25906 5 days ago |
5-25976 5 days ago |
5-25720 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-9740 5 days ago |
46-30786 46 days ago |
46-30530 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-8679 5 days ago |
5-8703 5 days ago |
44-34097 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 |
5-1574 5 days ago |
5-17212 5 days ago |
6-22682 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-79060 4 days ago |
28-35104 28 days ago |
28-34848 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-79054 4 days ago |
5-76843 5 days ago |
5-78699 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-79051 4 days ago |
5-26268 5 days ago |
5-26043 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-59272 4 days ago |
5-58147 5 days ago |
5-57891 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-54576 4 days ago |
4-78238 4 days ago |
4-77982 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-34564 4 days ago |
5-8644 5 days ago |
5-8388 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-32481 4 days ago |
4-32550 4 days ago |
4-32294 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-32424 4 days ago |
5-23141 5 days ago |
5-22885 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-31932 4 days ago |
4-31932 4 days ago |
4-31676 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-24360 4 days ago |
4-24385 4 days ago |
19-19263 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-16074 4 days ago |
4-16098 4 days ago |
8-65588 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-15644 4 days ago |
10-5010 10 days ago |
14-54349 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 |
4-1407 4 days ago |
4-1465 4 days ago |
38-55962 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 |
4-264 4 days ago |
4-264 4 days ago |
14-33021 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-79238 3 days ago |
3-80374 3 days ago |
3-82949 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-79035 3 days ago |
107-10452 107 days ago |
107-10196 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-79034 3 days ago |
27-22105 27 days ago |
70-6666 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-79030 3 days ago |
27-49150 27 days ago |
41-32722 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-79026 3 days ago |
21-81465 21 days ago |
23-67971 23 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-65732 3 days ago |
3-65802 3 days ago |
3-65546 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-65698 3 days ago |
3-65698 3 days ago |
13-24803 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-64264 3 days ago |
17-46925 17 days ago |
17-58463 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-59333 3 days ago |
8-44958 8 days ago |
21-2711 21 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-53920 3 days ago |
4-12200 4 days ago |
5-19668 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-50098 3 days ago |
26-26796 26 days ago |
39-6976 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-49582 3 days ago |
3-49607 3 days ago |
6-39354 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-41351 3 days ago |
6-49220 6 days ago |
7-23073 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-39628 3 days ago |
7-39719 7 days ago |
36-41789 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-38184 3 days ago |
8-29300 8 days ago |
8-78785 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-32232 3 days ago |
5-47397 5 days ago |
16-3901 16 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-23257 3 days ago |
3-80700 3 days ago |
75-48485 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-12980 3 days ago |
3-45321 3 days ago |
3-47134 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-78883 2 days ago |
28-36014 28 days ago |
28-36090 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-78882 2 days ago |
28-18286 28 days ago |
28-18030 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-78878 2 days ago |
4-63216 4 days ago |
5-57663 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-72664 2 days ago |
2-72666 2 days ago |
4-1319 4 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-71373 2 days ago |
14-71319 14 days ago |
16-69328 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-70316 2 days ago |
2-70387 2 days ago |
2-70131 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-65025 2 days ago |
2-65263 2 days ago |
2-65007 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-63730 2 days ago |
2-72297 2 days ago |
2-72041 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-58258 2 days ago |
3-10157 3 days ago |
3-9901 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-55194 2 days ago |
9-25677 9 days ago |
30-29822 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-54698 2 days ago |
4-5420 4 days ago |
4-6643 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-53079 2 days ago |
2-53155 2 days ago |
2-52899 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-50917 2 days ago |
2-50994 2 days ago |
2-50738 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-49836 2 days ago |
2-49921 2 days ago |
2-49665 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-48852 2 days ago |
8-17734 8 days ago |
8-34681 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-48063 2 days ago |
3-33868 3 days ago |
7-48032 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-44138 2 days ago |
2-44183 2 days ago |
19-42138 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-43119 2 days ago |
2-43184 2 days ago |
2-42928 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-41201 2 days ago |
2-41201 2 days ago |
24-67528 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-35597 2 days ago |
10-22152 10 days ago |
10-28460 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-35361 2 days ago |
2-35433 2 days ago |
2-65024 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-31943 2 days ago |
2-32022 2 days ago |
2-31766 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-31145 2 days ago |
2-34619 2 days ago |
2-34363 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-31006 2 days ago |
2-31221 2 days ago |
2-30965 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-28979 2 days ago |
2-28801 2 days ago |
78-1031 78 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-28661 2 days ago |
2-82997 2 days ago |
2-82741 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-26673 2 days ago |
2-28247 2 days ago |
2-27991 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-25772 2 days ago |
6-26667 6 days ago |
15-67279 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-25659 2 days ago |
6-53322 6 days ago |
37-33850 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-25406 2 days ago |
3-43535 3 days ago |
4-16133 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-24996 2 days ago |
2-25662 2 days ago |
25-66529 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-24271 2 days ago |
2-38821 2 days ago |
2-38565 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-22632 2 days ago |
7-47535 7 days ago |
7-47530 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-13287 2 days ago |
2-29173 2 days ago |
37-66226 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-11423 2 days ago |
17-85144 17 days ago |
31-25975 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-10702 2 days ago |
2-10704 2 days ago |
2-10448 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-8549 2 days ago |
2-8575 2 days ago |
2-9266 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 |
2-2854 2 days ago |
2-2914 2 days ago |
2-6432 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 |
2-1236 2 days ago |
7-77756 7 days ago |
8-52326 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-83751 1 day ago |
1-83505 1 day ago |
2-28259 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-81108 1 day ago |
9-84495 9 days ago |
9-84857 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-79746 1 day ago |
29-68508 29 days ago |
30-75954 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-78829 1 day ago |
13-30014 13 days ago |
161-8003 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-78828 1 day ago |
2-59254 2 days ago |
2-59670 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-78825 1 day ago |
11-32894 11 days ago |
56-40091 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-78824 1 day ago |
40-10293 40 days ago |
60-51449 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-78822 1 day ago |
43-31078 43 days ago |
43-30830 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-78819 1 day ago |
12-55969 12 days ago |
20-47570 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-78818 1 day ago |
23-31509 23 days ago |
23-31253 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-78817 1 day ago |
23-30185 23 days ago |
23-29929 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-78816 1 day ago |
23-30050 23 days ago |
23-29794 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-78810 1 day ago |
5-45033 5 days ago |
5-44791 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-78810 1 day ago |
5-38517 5 days ago |
5-38314 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-78808 1 day ago |
4-8853 4 days ago |
4-40048 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-78806 1 day ago |
4-51241 4 days ago |
4-50986 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-78804 1 day ago |
3-26490 3 days ago |
3-26234 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-78803 1 day ago |
3-20969 3 days ago |
3-21091 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-78803 1 day ago |
2-73978 2 days ago |
2-73722 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-78802 1 day ago |
2-73838 2 days ago |
2-73582 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-78801 1 day ago |
2-73408 2 days ago |
2-73152 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-78799 1 day ago |
2-32387 2 days ago |
2-40459 2 days |
| 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-76721 1 day ago |
1-76784 1 day ago |
1-80522 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-76707 1 day ago |
1-76743 1 day ago |
4-60143 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-74040 1 day ago |
1-74104 1 day ago |
4-17721 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-71897 1 day ago |
1-71924 1 day ago |
4-58776 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-71382 1 day ago |
8-1407 8 days ago |
16-9859 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-70979 1 day ago |
1-77218 1 day ago |
30-3188 30 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-69168 1 day ago |
1-69241 1 day ago |
1-68985 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-68607 1 day ago |
1-68608 1 day ago |
164-63421 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-67714 1 day ago |
1-68747 1 day ago |
2-51722 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-64830 1 day ago |
2-31197 2 days ago |
2-31173 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-62619 1 day ago |
1-62619 1 day ago |
7-74587 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-61516 1 day ago |
1-73950 1 day ago |
3-18822 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-58980 1 day ago |
7-21099 7 days ago |
28-83268 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-58753 1 day ago |
1-82241 1 day ago |
2-12191 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-58644 1 day ago |
5-65857 5 days ago |
7-623 7 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-58445 1 day ago |
2-55359 2 days ago |
2-55103 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-56947 1 day ago |
1-65220 1 day ago |
29-49431 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-53643 1 day ago |
9-84511 9 days ago |
9-84325 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-53233 1 day ago |
6-38111 6 days ago |
13-20547 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-52943 1 day ago |
4-8277 4 days ago |
4-15311 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-52932 1 day ago |
1-52932 1 day ago |
18-80474 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-50428 1 day ago |
13-15560 13 days ago |
28-69228 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-47289 1 day ago |
2-3243 2 days ago |
2-2988 2 days |
| 28685 |
mitchell-horner author:mitchell-horner |
feat(Combinatorics/SimpleGraph): prove the minimal-degree version of the Erdős-Stone theorem |
Proves the minimal degree-version of the Erdős-Stone theorem:
If `G` has a minimal degree of at least `(1 - 1 / r + o(1)) * card V`, then `G` contains a copy of a `completeEquipartiteGraph` in `r + 1` parts each of size `t`.
The double-counting construction from the proof is available in `namespace ErdosStone`.
---
- [x] depends on: #25843
- [x] depends on: #27597
- [x] depends on: #27599
- [x] depends on: #28443
- [x] depends on: #28445
- [x] depends on: #28446
- [x] depends on: #28447
This is the first of several pull requests towards the full Erdős-Stone(-Simonovits) theorem, hence the name of the file.
[](https://gitpod.io/from-referrer/) |
t-combinatorics |
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-44430 1 day ago |
1-44430 1 day ago |
59-48084 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-44164 1 day ago |
30-73571 30 days ago |
30-73315 30 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-42932 1 day ago |
6-32548 6 days ago |
13-22314 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-42529 1 day ago |
17-11287 17 days ago |
17-11794 17 days |
| 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-37270 1 day ago |
1-37270 1 day ago |
1-37015 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-37208 1 day ago |
16-40104 16 days ago |
16-40001 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-37035 1 day ago |
1-40182 1 day ago |
37-40388 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-37021 1 day ago |
1-37021 1 day ago |
1-36767 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-36705 1 day ago |
1-36613 1 day ago |
31-5166 31 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-35812 1 day ago |
1-35876 1 day ago |
2-27780 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-35802 1 day ago |
1-35802 1 day ago |
2-35864 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-35702 1 day ago |
1-35702 1 day ago |
1-35447 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-34130 1 day ago |
1-34195 1 day ago |
1-35036 1 day |
| 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-27304 1 day ago |
1-27304 1 day ago |
1-27049 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-27298 1 day ago |
16-42434 16 days ago |
16-42280 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-25878 1 day ago |
1-50286 1 day ago |
59-48918 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-25828 1 day ago |
1-25828 1 day ago |
1-25573 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-25227 1 day ago |
1-82094 1 day ago |
1-81838 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-25210 1 day ago |
1-82096 1 day ago |
1-81840 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-25106 1 day ago |
8-24948 8 days ago |
8-24692 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-25023 1 day ago |
1-25023 1 day ago |
1-24768 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-24313 1 day ago |
1-24355 1 day ago |
5-43232 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-23870 1 day ago |
5-40412 5 days ago |
5-40156 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-23436 1 day ago |
1-23276 1 day ago |
1-23387 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-23212 1 day ago |
1-23212 1 day ago |
1-25080 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-21923 1 day ago |
1-21923 1 day ago |
1-21669 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-20120 1 day ago |
1-20120 1 day ago |
1-19866 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-13469 1 day ago |
1-13498 1 day ago |
31-59599 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-13418 1 day ago |
1-23163 1 day ago |
1-22907 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-12849 1 day ago |
1-12914 1 day ago |
2-71751 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-6971 1 day ago |
1-7000 1 day ago |
1-6802 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 |
1-5044 1 day ago |
1-5087 1 day ago |
47-69621 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 |
1-5043 1 day ago |
1-5951 1 day ago |
1-5695 1 day |
| 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 |
1-2366 1 day ago |
1-2409 1 day ago |
1-12837 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 |
1-2326 1 day ago |
1-71459 1 day ago |
5-64888 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 |
1-117 1 day ago |
1-194 23 hours ago |
0-86338 23 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-85846 23 hours ago |
1-13604 1 day ago |
25-10433 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-84370 23 hours ago |
1-79186 1 day ago |
1-79066 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-82397 22 hours ago |
1-32694 1 day ago |
67-31251 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-80753 22 hours ago |
8-50847 8 days ago |
8-50591 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-80292 22 hours ago |
0-80316 22 hours ago |
0-80978 22 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-79747 22 hours ago |
22-2452 22 days ago |
57-32878 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-79746 22 hours ago |
22-36085 22 days ago |
45-29888 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-79745 22 hours ago |
22-26523 22 days ago |
36-41954 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-79744 22 hours ago |
22-47134 22 days ago |
29-18923 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-79743 22 hours ago |
22-66339 22 days ago |
30-11426 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-79503 22 hours ago |
0-79529 22 hours ago |
8-79419 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-78880 21 hours ago |
15-56482 15 days ago |
15-57320 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-78878 21 hours ago |
46-63963 46 days ago |
46-63707 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-78873 21 hours ago |
19-36262 19 days ago |
26-78371 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-78872 21 hours ago |
21-1370 21 days ago |
22-84623 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-78871 21 hours ago |
20-31546 20 days ago |
20-32030 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-78870 21 hours ago |
18-27685 18 days ago |
18-28277 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-78865 21 hours ago |
7-8819 7 days ago |
7-8565 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-78864 21 hours ago |
3-72786 3 days ago |
3-72530 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-78862 21 hours ago |
1-82123 1 day ago |
1-81867 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-78862 21 hours ago |
1-82060 1 day ago |
1-81804 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-78861 21 hours ago |
1-72726 1 day ago |
1-72470 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-78859 21 hours ago |
1-60287 1 day ago |
1-60031 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-78858 21 hours ago |
1-37664 1 day ago |
1-37408 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-76759 21 hours ago |
0-79822 22 hours ago |
22-32424 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-73907 20 hours ago |
0-73979 20 hours ago |
0-73723 20 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-71616 19 hours ago |
14-36222 14 days ago |
14-55005 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-70806 19 hours ago |
11-68291 11 days ago |
19-77815 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-69590 19 hours ago |
0-69625 19 hours ago |
0-69369 19 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-68129 18 hours ago |
0-68194 18 hours ago |
13-67073 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-64856 18 hours ago |
0-64916 17 hours ago |
34-73017 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-62414 17 hours ago |
0-62437 17 hours ago |
0-62568 17 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-61291 17 hours ago |
6-4495 6 days ago |
37-60831 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-58772 16 hours ago |
1-2464 1 day ago |
1-2208 1 day |
| 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-58329 16 hours ago |
3-28828 3 days ago |
3-28572 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-58054 16 hours ago |
3-77065 3 days ago |
21-63523 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-55522 15 hours ago |
0-55893 15 hours ago |
0-57062 15 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-55469 15 hours ago |
0-55491 15 hours ago |
6-23647 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-55126 15 hours ago |
0-54968 15 hours ago |
0-61375 17 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-54825 15 hours ago |
1-36601 1 day ago |
2-15356 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-54628 15 hours ago |
1-17263 1 day ago |
1-18158 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-52463 14 hours ago |
4-59659 4 days ago |
81-32125 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-52411 14 hours ago |
27-49130 27 days ago |
85-32341 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-52176 14 hours ago |
2-50963 2 days ago |
2-50708 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-52159 14 hours ago |
14-9115 14 days ago |
15-48826 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-49891 13 hours ago |
1-37358 1 day ago |
4-6807 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-49817 13 hours ago |
0-49914 13 hours ago |
0-49658 13 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-48200 13 hours ago |
0-48200 13 hours ago |
0-47945 13 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-46933 13 hours ago |
8-53995 8 days ago |
9-83350 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-45329 12 hours ago |
0-45396 12 hours ago |
0-45602 12 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-43864 12 hours ago |
0-44054 12 hours ago |
0-43798 12 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-42307 11 hours ago |
0-42384 11 hours ago |
0-42128 11 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-42247 11 hours ago |
0-42354 11 hours ago |
0-42098 11 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-42243 11 hours ago |
0-42358 11 hours ago |
0-42102 11 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-42237 11 hours ago |
0-42350 11 hours ago |
0-42094 11 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-42205 11 hours ago |
0-42348 11 hours ago |
0-42092 11 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-41992 11 hours ago |
0-51362 14 hours ago |
0-51106 14 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-41891 11 hours ago |
0-41968 11 hours ago |
0-41712 11 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-41102 11 hours ago |
0-43394 11 hours ago |
1-5261 1 day |
| 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-39142 10 hours ago |
0-40573 11 hours ago |
1-4755 1 day |
| 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-38383 10 hours ago |
0-46984 12 hours ago |
0-47163 13 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-37558 10 hours ago |
0-37632 10 hours ago |
0-39322 10 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-32745 9 hours ago |
0-33161 9 hours ago |
43-33896 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-32582 9 hours ago |
20-42009 20 days ago |
39-12853 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-31814 8 hours ago |
0-31814 8 hours ago |
0-31966 8 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-28870 8 hours ago |
12-50333 12 days ago |
12-51018 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-28151 7 hours ago |
3-33294 3 days ago |
21-35272 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-27795 7 hours ago |
0-43629 12 hours ago |
1-4731 1 day |
| 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-27307 7 hours ago |
0-27408 7 hours ago |
0-42091 11 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-27299 7 hours ago |
0-27325 7 hours ago |
19-32186 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-27044 7 hours ago |
0-27088 7 hours ago |
8-47968 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-26019 7 hours ago |
1-15621 1 day ago |
2-18682 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-25705 7 hours ago |
0-25705 7 hours ago |
16-40534 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-25670 7 hours ago |
8-48166 8 days ago |
14-18658 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-25512 7 hours ago |
3-1765 3 days ago |
43-49094 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-25119 6 hours ago |
0-25183 6 hours ago |
13-2546 13 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-24942 6 hours ago |
0-24942 6 hours ago |
31-851 31 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-24651 6 hours ago |
5-79449 5 days ago |
6-78153 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-24541 6 hours ago |
0-24608 6 hours ago |
2-17697 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-24363 6 hours ago |
0-42352 11 hours ago |
0-42096 11 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-24284 6 hours ago |
0-42356 11 hours ago |
0-42100 11 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-24175 6 hours ago |
1-12163 1 day ago |
1-11907 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-24149 6 hours ago |
0-24108 6 hours ago |
33-39544 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-23689 6 hours ago |
0-63046 17 hours ago |
0-63582 17 hours |
| 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-22448 6 hours ago |
0-22512 6 hours ago |
5-70283 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-22399 6 hours ago |
11-49274 11 days ago |
11-49054 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-22304 6 hours ago |
6-54893 6 days ago |
8-70763 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-22210 6 hours ago |
0-22269 6 hours ago |
37-58284 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-22055 6 hours ago |
17-67025 17 days ago |
17-66769 17 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-21977 6 hours ago |
16-77630 16 days ago |
28-26835 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-21922 6 hours ago |
25-9027 25 days ago |
25-8771 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-21636 6 hours ago |
17-22584 17 days ago |
17-25473 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-21613 6 hours ago |
0-21613 5 hours ago |
0-21358 5 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-21515 5 hours ago |
0-21563 5 hours ago |
18-82531 18 days |
| 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-20372 5 hours ago |
34-79850 34 days ago |
34-79594 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-19821 5 hours ago |
0-49301 13 hours ago |
13-69399 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-19628 5 hours ago |
0-19732 5 hours ago |
8-32601 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-18953 5 hours ago |
0-27939 7 hours ago |
8-70741 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-18953 5 hours ago |
2-31091 2 days ago |
2-30835 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-18769 5 hours ago |
1-84356 1 day ago |
1-84100 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-17891 4 hours ago |
0-23964 6 hours ago |
14-17270 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-17180 4 hours ago |
0-17256 4 hours ago |
0-17000 4 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-17032 4 hours ago |
1-23265 1 day ago |
1-23138 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-12871 3 hours ago |
3-26892 3 days ago |
17-38853 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-11817 3 hours ago |
9-74999 9 days ago |
13-10987 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-10874 3 hours ago |
28-3244 28 days ago |
28-2988 28 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-9578 2 hours ago |
0-24587 6 hours ago |
0-62778 17 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-8468 2 hours ago |
0-8468 2 hours ago |
23-63347 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-8371 2 hours ago |
1-40271 1 day ago |
1-40717 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-8340 2 hours ago |
0-8340 2 hours ago |
0-72774 20 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-8304 2 hours ago |
0-8367 2 hours ago |
13-70478 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-7432 2 hours ago |
2-15236 2 days ago |
2-15073 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-7088 1 hour ago |
3-51799 3 days ago |
9-32486 9 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-7001 1 hour ago |
2-34691 2 days ago |
2-34435 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-6525 1 hour ago |
0-39438 10 hours ago |
1-33535 1 day |
| 38632 |
joelriou author:joelriou |
feat(CategoryTheory/Shift): lifting of single functors |
Let `C`, `D` and `E` be categories. Let `A` be an additive monoid. Assume that `D` and `E` have shifts by `A` and that we have a fully faithful functor `G : D ⥤ A` which commutes with shifts. Given `F : SingleFunctors C E A`, and a family of functors `Φ a : C ⥤ D` with isomorphisms `Φ a ⋙ G ≅ F.functor a` for all `a : A`, we lift `F` in `SingleFunctor C D A`.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
139/2 |
Mathlib.lean,Mathlib/CategoryTheory/Preadditive/AdditiveFunctor.lean,Mathlib/CategoryTheory/Shift/CommShift.lean,Mathlib/CategoryTheory/Shift/SingleFunctorsLift.lean |
4 |
7 |
['dagurtomas', 'github-actions', 'joelriou'] |
nobody |
0-6027 1 hour ago |
0-6027 1 hour ago |
2-24377 2 days |
| 36913 |
joelriou author:joelriou |
feat(CategoryTheory/Monoidal): Yoneda embedding of ring objects |
(This series of PR mostly builds on previous work by the Toric project.)
---
- [x] depends on: #38366
- [x] depends on: #37587
- [x] depends on: #37167
- [x] depends on: #37265
- [x] depends on: #37263
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
84/0 |
Mathlib.lean,Mathlib/CategoryTheory/Monoidal/Cartesian/Ring.lean |
2 |
9 |
['dagurtomas', 'github-actions', 'joelriou', 'mathlib-dependent-issues', 'mathlib-merge-conflicts'] |
robin-carlier assignee:robin-carlier |
0-5763 1 hour ago |
0-5808 1 hour ago |
4-38533 4 days |
| 37799 |
joelriou author:joelriou |
feat(Topology/Convenient): the category of `X`-generated spaces |
Given a family `X i` of topological spaces, we introduce two equivalent categories:
* the full subcategory of the category of topological spaces consisting of `X`-generated spaces;
* the category whose objects are any topological space, and morphisms are `X`-continuous maps.
---
- [x] depends on: #37792
[](https://gitpod.io/from-referrer/)
|
t-topology
t-category-theory
|
298/0 |
Mathlib.lean,Mathlib/Topology/Convenient/Category.lean,Mathlib/Topology/Convenient/ContinuousMapGeneratedBy.lean |
3 |
13 |
['dagurtomas', 'github-actions', 'j-loreaux', 'joelriou', 'mathlib-dependent-issues'] |
dagurtomas assignee:dagurtomas |
0-5259 1 hour ago |
0-5163 1 hour ago |
15-42163 15 days |
| 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 |
30 |
['JovanGerb', 'Whysoserioushah', 'github-actions', 'jcommelin', 'kbuzzard', 'leanprover-radar'] |
nobody |
0-5036 1 hour ago |
1-17585 1 day ago |
1-17331 1 day |
| 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
maintainer-merge
|
4/17 |
Mathlib/AlgebraicGeometry/Restrict.lean |
1 |
4 |
['dagurtomas', 'github-actions'] |
nobody |
0-4658 1 hour ago |
0-42388 11 hours ago |
0-42132 11 hours |
| 38747 |
SnirBroshi author:SnirBroshi |
feat(Combinatorics/SimpleGraph/Basic): more `neighborSet` and `IsIsolated` lemmas |
---
`neighborSet_mono` moved from `Maps.lean` to `Basic.lean` with a simpler proof
[](https://gitpod.io/from-referrer/)
|
t-combinatorics |
71/17 |
Mathlib/Combinatorics/SimpleGraph/Basic.lean,Mathlib/Combinatorics/SimpleGraph/Finite.lean,Mathlib/Combinatorics/SimpleGraph/Maps.lean,Mathlib/Combinatorics/SimpleGraph/StronglyRegular.lean |
4 |
2 |
['github-actions', 'vlad902'] |
nobody |
0-4579 1 hour ago |
0-4649 1 hour ago |
0-58682 16 hours |
| 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 |
15 |
['dagurtomas', 'github-actions', 'joelriou', 'robin-carlier'] |
robin-carlier assignee:robin-carlier |
0-3455 57 minutes ago |
0-7040 1 hour ago |
4-63774 4 days |
| 31222 |
Thmoas-Guan author:Thmoas-Guan |
feat(Algebra): `Hom` commute with flat base change |
In this PR, we proved `Hom_S (M \tensor S, N \tensor S)` is base change of `Hom_R (M, N)` with respect to `LinearMap.baseChangeHom`.
Co-authored-by: Wang Jingting
---
- [x] depends on: #31218
- [ ] depends on: #31219
- [x] depends on: #31696
[](https://gitpod.io/from-referrer/)
|
large-import
t-algebra
label:t-algebra$ |
220/0 |
Mathlib.lean,Mathlib/Algebra/Module/FinitePresentation.lean,Mathlib/RingTheory/Flat/IsBaseChange.lean,Mathlib/RingTheory/IsTensorProduct.lean,Mathlib/RingTheory/TensorProduct/IsBaseChangeRightExact.lean |
5 |
5 |
['github-actions', 'mathlib-dependent-issues', 'mathlib4-merge-conflict-bot'] |
nobody |
0-1902 31 minutes ago |
0-1904 27 minutes ago |
0-1914 31 minutes |
| 38787 |
peabrainiac author:peabrainiac |
feat(CategoryTheory/MorphismProperty): some lemmas for `MorphismProperty.strictMap` |
Add some API lemmas for `MorphismProperty.strictMap` and other ways to transport morphism properties across functors.
---
[](https://gitpod.io/from-referrer/)
|
t-category-theory |
53/14 |
Mathlib/CategoryTheory/MorphismProperty/Basic.lean |
1 |
6 |
['github-actions', 'joelriou', 'peabrainiac'] |
nobody |
0-1025 17 minutes ago |
0-1025 12 minutes ago |
0-1702 28 minutes |
| 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$ |
12/0 |
Mathlib/Algebra/Group/Action/Defs.lean,Mathlib/Algebra/Module/RingHom.lean |
2 |
5 |
['JJYYY-JJY', 'copilot-pull-request-reviewer', 'eric-wieser', 'github-actions'] |
nobody |
0-1019 16 minutes ago |
0-40352 11 hours ago |
0-40096 11 hours |
| 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$ |
18/0 |
Mathlib/Algebra/Module/Submodule/LinearMap.lean,Mathlib/Algebra/Ring/Subsemiring/Basic.lean,Mathlib/ModelTheory/Substructures.lean |
3 |
3 |
['eric-wieser', 'github-actions'] |
nobody |
0-916 15 minutes ago |
1-78774 1 day ago |
1-78518 1 day |
| 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 |
3 |
['ADedecker', 'CoolRmal', 'github-actions'] |
nobody |
0-873 14 minutes ago |
0-73287 20 hours ago |
0-74020 20 hours |