Maintainers page: short tasks

Are you a maintainer with just a short amount of time? The following kinds of pull requests could be relevant for you.

If you realise you actually have a bit more time, you can also look at the page for reviewers, or look at the triage page!
This dashboard was last updated on: January 15, 2026 at 07:58 UTC

Stale ready-to-merge'd PRs

There are currently no stale PRs labelled auto-merge-after-CI or ready-to-merge. Congratulations!

Stale maintainer-merge'd PRs

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
30872 rudynicolop
author:rudynicolop
feat(Computability/NFA): NFA closure under concatenation This PR proves that regular languages are closed under concatenation via a direct construction on `NFA`s without `εNFA` nor ε-transitions. The main new definitions and results include: - `M1.concat M2`, the concatenation of `NFA`s `M1` and `M2`, a direct construction without ε-transitions. - Theorem `accepts_concat : (M1.concat M2).accepts = M1.accepts * M2.accepts`, showing the correctness of the construction. - Theorem `IsRegular.mul`, showing that regular languages are closed under concatenation. --- - [x] depends on: #31038 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability new-contributor maintainer-merge 104/7 Mathlib/Computability/NFA.lean 1 63 ['YaelDillies', 'ctchou', 'github-actions', 'lambda-fairy', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'rudynicolop'] YaelDillies
assignee:YaelDillies
26-32992
26 days ago
26-32036
26 days ago
45-5608
45 days
31706 Thmoas-Guan
author:Thmoas-Guan
feat(Algebra/ModuleCat): `ModuleCat.uliftFunctor` Add `ModuleCat.uliftFunctor` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra awaiting-author maintainer-merge
label:t-algebra$
108/0 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Ulift.lean 2 20 ['Thmoas-Guan', 'dagurtomas', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'robin-carlier'] mattrobball
assignee:mattrobball
2-75757
2 days ago
2-75757
2 days ago
14-79739
14 days
28796 grunweg
author:grunweg
feat: immersions are smooth The conventional textbook definition demands that an immersion be smooth. When asking for the immersion to have local slice charts (as we do), this implies smoothness automatically. --- - [x] depends on: #28701 - [x] depends on: #28793 - [x] depends on: #30356 - [x] depends on: #28853 (for simplicity) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry maintainer-merge 192/21 Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean,Mathlib/Geometry/Manifold/Immersion.lean,Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,Mathlib/Geometry/Manifold/SmoothEmbedding.lean 6 45 ['chrisflav', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] PatrickMassot
assignee:PatrickMassot
1-51333
1 day ago
2-72719
2 days ago
24-68813
24 days

All maintainer merge'd PRs

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
30872 rudynicolop
author:rudynicolop
feat(Computability/NFA): NFA closure under concatenation This PR proves that regular languages are closed under concatenation via a direct construction on `NFA`s without `εNFA` nor ε-transitions. The main new definitions and results include: - `M1.concat M2`, the concatenation of `NFA`s `M1` and `M2`, a direct construction without ε-transitions. - Theorem `accepts_concat : (M1.concat M2).accepts = M1.accepts * M2.accepts`, showing the correctness of the construction. - Theorem `IsRegular.mul`, showing that regular languages are closed under concatenation. --- - [x] depends on: #31038 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability new-contributor maintainer-merge 104/7 Mathlib/Computability/NFA.lean 1 63 ['YaelDillies', 'ctchou', 'github-actions', 'lambda-fairy', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'rudynicolop'] YaelDillies
assignee:YaelDillies
26-32992
26 days ago
26-32036
26 days ago
45-5608
45 days
31706 Thmoas-Guan
author:Thmoas-Guan
feat(Algebra/ModuleCat): `ModuleCat.uliftFunctor` Add `ModuleCat.uliftFunctor` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-algebra awaiting-author maintainer-merge
label:t-algebra$
108/0 Mathlib.lean,Mathlib/Algebra/Category/ModuleCat/Ulift.lean 2 20 ['Thmoas-Guan', 'dagurtomas', 'erdOne', 'github-actions', 'mathlib4-merge-conflict-bot', 'robin-carlier'] mattrobball
assignee:mattrobball
2-75757
2 days ago
2-75757
2 days ago
14-79739
14 days
28796 grunweg
author:grunweg
feat: immersions are smooth The conventional textbook definition demands that an immersion be smooth. When asking for the immersion to have local slice charts (as we do), this implies smoothness automatically. --- - [x] depends on: #28701 - [x] depends on: #28793 - [x] depends on: #30356 - [x] depends on: #28853 (for simplicity) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry maintainer-merge 192/21 Mathlib/Analysis/Calculus/ContDiff/Basic.lean,Mathlib/Geometry/Manifold/ContMDiff/Atlas.lean,Mathlib/Geometry/Manifold/Immersion.lean,Mathlib/Geometry/Manifold/IsManifold/ExtChartAt.lean,Mathlib/Geometry/Manifold/LocalSourceTargetProperty.lean,Mathlib/Geometry/Manifold/SmoothEmbedding.lean 6 45 ['chrisflav', 'github-actions', 'grunweg', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] PatrickMassot
assignee:PatrickMassot
1-51333
1 day ago
2-72719
2 days ago
24-68813
24 days
31794 thorimur
author:thorimur
feat: `unusedFintypeInType` linter Adds an `UnusedInstancesInType` linter which suggests replacing `Fintype` instances with `Finite` or removing them. This linter is off by default: it is turned on in #31795. The violations found by this linter are fixed in #33068 (merged) and #33148 (merged). Note that the portion of this diff corresponding to the actual linter file is relatively small (+68 -11), and is very similar to the `unusedDecidableInType` linter. The majority of the diff in the linter file itself is factoring out the workaround to lean4#11313 (which is used in both linters); the rest of the diff comes from reorganizing tests and adding tests. --- - [x] depends on: #31142 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) maintainer-merge file-removed 304/46 Mathlib/Tactic/Linter/UnusedInstancesInType.lean,MathlibTest/UnusedInstancesInType/Basic.lean,MathlibTest/UnusedInstancesInType/Decidable.lean,MathlibTest/UnusedInstancesInType/Fintype.lean,MathlibTest/UnusedInstancesInType/FintypeNeedingImport.lean,MathlibTest/UnusedInstancesInType/SetOption.lean 6 15 ['JovanGerb', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'thorimur'] JovanGerb
assignee:JovanGerb
0-56308
15 hours ago
2-42563
2 days ago
40-15427
40 days

PRs blocked on a zulip discussion

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
17518 grunweg
author:grunweg
feat: lint on declarations mentioning `Invertible` or `Unique` Using the same infrastructure as for #10235. Depends on that PR to land first, and also (for the first lint) a zulip discussion if that change is desired/about the best way to enact it. --- - [ ] depends on: #10235 merge-conflict t-linter blocked-by-other-PR awaiting-zulip 149/7 Mathlib.lean,Mathlib/Algebra/MvPolynomial/PDeriv.lean,Mathlib/Computability/Halting.lean,Mathlib/Computability/TuringMachine.lean,Mathlib/Data/Fintype/Card.lean,Mathlib/GroupTheory/Perm/DomMulAct.lean,Mathlib/Logic/Basic.lean,Mathlib/Logic/Encodable/Basic.lean,Mathlib/NumberTheory/JacobiSum/Basic.lean,Mathlib/Order/Heyting/Regular.lean,Mathlib/RingTheory/MvPolynomial/Symmetric/FundamentalTheorem.lean,Mathlib/Tactic.lean,Mathlib/Tactic/Linter/UnusedAssumptionInType.lean 13 3 ['github-actions', 'mathlib4-dependent-issues-bot', 'mergify'] nobody
438-51361
1 year ago
unknown
unknown
17623 astrainfinita
author:astrainfinita
feat(Algebra/Order/GroupWithZero/Unbundled): add some lemmas Some lemmas in `Algebra.Order.GroupWithZero.Unbundled` have incorrect or unsatisfactory names, or assumptions that can be omitted using `ZeroLEOneClass`. The lemmas added in this PR are versions of existing lemmas that use the correct or better name or `ZeroLEOneClass` to omit an assumption. The original lemmas will be deprecated in #17593. | New name | Old name | |-------------------------|-------------------------| | `mul_le_one_left₀` | `Left.mul_le_one_of_le_of_le` | | `mul_lt_one_of_le_of_lt_left₀` (`0 ≤ ·` version) / `mul_lt_one_of_le_of_lt_of_pos_left` | `Left.mul_lt_of_le_of_lt_one_of_pos` | | `mul_lt_one_of_lt_of_le_left₀` | `Left.mul_lt_of_lt_of_le_one_of_nonneg` | | `mul_le_one_right₀` | `Right.mul_le_one_of_le_of_le` | | `mul_lt_one_of_lt_of_le_right₀` (`0 ≤ ·` version) / `mul_lt_one_of_lt_of_le_of_pos_right` | `Right.mul_lt_one_of_lt_of_le_of_pos` | | `mul_lt_one_of_le_of_lt_right₀` | `Right.mul_lt_one_of_le_of_lt_of_nonneg` | The following lemmas use `ZeroLEOneClass`. | New name | Old name | |-------------------------|-------------------------| | `(Left.)one_le_mul₀` | `Left.one_le_mul_of_le_of_le` | | `Left.one_lt_mul_of_le_of_lt₀` | `Left.one_lt_mul_of_le_of_lt_of_pos` | | `Left.one_lt_mul_of_lt_of_le₀` | `Left.lt_mul_of_lt_of_one_le_of_nonneg` / `one_lt_mul_of_lt_of_le` (still there) | | `(Left.)one_lt_mul₀` | | | `Right.one_le_mul₀` | `Right.one_le_mul_of_le_of_le` | | `Right.one_lt_mul_of_lt_of_le₀` | `Right.one_lt_mul_of_lt_of_le_of_pos` | | `Right.one_lt_mul_of_le_of_lt₀` | `Right.one_lt_mul_of_le_of_lt_of_nonneg` / `one_lt_mul_of_le_of_lt` (still there) / `one_lt_mul` (still there) | | `Right.one_lt_mul₀` | `Right.one_lt_mul_of_lt_of_lt` | --- Split from #17593. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) merge-conflict t-algebra awaiting-zulip t-order
label:t-algebra$
146/44 Mathlib/Algebra/Order/GroupWithZero/Canonical.lean,Mathlib/Algebra/Order/GroupWithZero/Unbundled.lean 2 11 ['YaelDillies', 'astrainfinita', 'github-actions', 'j-loreaux'] nobody
420-70892
1 year ago
unknown
unknown
8370 eric-wieser
author:eric-wieser
refactor(Analysis/NormedSpace/Exponential): remove the `𝕂` argument from `exp` This argument is still needed for almost all the lemmas, which means it can longer be found by unification. We keep around `expSeries 𝕂 A`, as it's needed for talking about the radius of convergence over different base fields. This is a prerequisite for #8372, as we can't merge the functions until they have the same interface.\ Zulip thread: [#mathlib4 > Real.exp @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Real.2Eexp/near/401602245) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) This is started from the mathport output on https://github.com/leanprover-community/mathlib/pull/19244 merge-conflict t-analysis awaiting-zulip 432/387 Mathlib/Analysis/CStarAlgebra/Exponential.lean,Mathlib/Analysis/CStarAlgebra/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/Normed/Algebra/MatrixExponential.lean,Mathlib/Analysis/Normed/Algebra/QuaternionExponential.lean,Mathlib/Analysis/Normed/Algebra/Spectrum.lean,Mathlib/Analysis/Normed/Algebra/TrivSqZeroExt.lean,Mathlib/Analysis/NormedSpace/DualNumber.lean,Mathlib/Analysis/SpecialFunctions/ContinuousFunctionalCalculus/ExpLog.lean,Mathlib/Analysis/SpecialFunctions/Exponential.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Series.lean 11 29 ['YaelDillies', 'eric-wieser', 'girving', 'github-actions', 'j-loreaux', 'kbuzzard', 'leanprover-community-bot-assistant', 'urkud'] nobody
265-26269
8 months ago
unknown
unknown
15654 TpmKranz
author:TpmKranz
feat(Computability): language-preserving maps between NFA and RE Map REs to NFAs via Thompson's construction and NFAs to REs using GNFAs Last chunk of #12648 --- - [ ] depends on: #15651 - [ ] depends on: #15649 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) blocked-by-other-PR new-contributor t-computability merge-conflict awaiting-zulip 985/2 Mathlib.lean,Mathlib/Computability/GNFA.lean,Mathlib/Computability/Language.lean,Mathlib/Computability/NFA.lean,Mathlib/Computability/RegularExpressions.lean,Mathlib/Data/FinEnum/Option.lean,docs/references.bib 7 3 ['github-actions', 'leanprover-community-mathlib4-bot', 'meithecatte'] nobody
254-34169
8 months ago
unknown
unknown
23929 meithecatte
author:meithecatte
feat(Computability/NFA): improve bound on pumping lemma --- - [x] depends on: #25321 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-computability awaiting-zulip new-contributor 101/10 Mathlib/Computability/EpsilonNFA.lean,Mathlib/Computability/NFA.lean 2 41 ['YaelDillies', 'github-actions', 'leanprover-community-bot-assistant', 'mathlib4-dependent-issues-bot', 'meithecatte'] nobody
221-43771
7 months ago
221-43772
221 days ago
0-37135
10 hours
17458 urkud
author:urkud
refactor(Algebra/Group): make `IsUnit` a typeclass Also change some lemmas to assume `[IsUnit _]` instead of `[Invertible _]`. Motivated by potential non-defeq diamonds in #14986, see also [Zulip](https://leanprover.zulipchat.com/#narrow/stream/116395-maths/topic/Invertible.20and.20data) I no longer plan to merge this PR, but I'm going to cherry-pick some changes to a new PR before closing this one. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) merge-conflict t-algebra awaiting-zulip
label:t-algebra$
82/72 Mathlib/Algebra/CharP/Invertible.lean,Mathlib/Algebra/Group/Invertible/Basic.lean,Mathlib/Algebra/Group/Units/Defs.lean,Mathlib/Algebra/GroupWithZero/Invertible.lean,Mathlib/Algebra/GroupWithZero/Units/Basic.lean,Mathlib/Algebra/Polynomial/Degree/Units.lean,Mathlib/Algebra/Polynomial/Splits.lean,Mathlib/Analysis/Convex/Segment.lean,Mathlib/Analysis/Normed/Affine/Isometry.lean,Mathlib/Analysis/Normed/Ring/Units.lean,Mathlib/CategoryTheory/Linear/Basic.lean,Mathlib/FieldTheory/Finite/Basic.lean,Mathlib/FieldTheory/Separable.lean,Mathlib/FieldTheory/SeparableDegree.lean,Mathlib/GroupTheory/Submonoid/Inverses.lean,Mathlib/LinearAlgebra/AffineSpace/AffineEquiv.lean,Mathlib/LinearAlgebra/AffineSpace/Combination.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Contraction.lean,Mathlib/LinearAlgebra/CliffordAlgebra/Inversion.lean,Mathlib/LinearAlgebra/CliffordAlgebra/SpinGroup.lean,Mathlib/LinearAlgebra/Eigenspace/Minpoly.lean,Mathlib/NumberTheory/MulChar/Basic.lean,Mathlib/RingTheory/Localization/NumDen.lean,Mathlib/RingTheory/Polynomial/Content.lean,Mathlib/RingTheory/Polynomial/GaussLemma.lean,Mathlib/RingTheory/Valuation/Basic.lean 26 12 ['MichaelStollBayreuth', 'acmepjz', 'eric-wieser', 'github-actions', 'leanprover-bot', 'leanprover-community-bot-assistant', 'urkud'] nobody
194-14518
6 months ago
unknown
unknown
25218 kckennylau
author:kckennylau
feat(AlgebraicGeometry): Tate normal form of elliptic curves --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) merge-conflict t-algebraic-geometry awaiting-zulip new-contributor 291/26 Mathlib.lean,Mathlib/AlgebraicGeometry/EllipticCurve/IsomOfJ.lean,Mathlib/AlgebraicGeometry/EllipticCurve/Modular/TateNormalForm.lean,Mathlib/AlgebraicGeometry/EllipticCurve/NormalForms.lean,Mathlib/AlgebraicGeometry/EllipticCurve/VariableChange.lean 5 31 ['MichaelStollBayreuth', 'Multramate', 'acmepjz', 'github-actions', 'grunweg', 'kckennylau', 'leanprover-community-bot-assistant'] nobody
194-13356
6 months ago
unknown
unknown
28803 astrainfinita
author:astrainfinita
refactor: unbundle algebra from `ENormed*` Further speed up the search in the algebraic typeclass hierarchy by avoiding searching for `TopologicalSpace`. This PR continues the work from #23961. - Change `ESeminormed(Add)Monoid` and `ENormed(Add)Monoid` so they no longer carry algebraic data. - Deprecate `ESeminormed(Add)CommMonoid` and `ENormed(Add)CommMonoid` in favor of `ESeminormed(Add)Monoid` and `ENormed(Add)Monoid` with a commutative algebraic typeclass. |Old|New| |---|---| | `[ESeminormed(Add)(Comm)Monoid E]` | `[(Add)(Comm)Monoid E] [ESeminormed(Add)Monoid E]` | | `[ENormed(Add)(Comm)Monoid]` | `[(Add)(Comm)Monoid E] [ENormed(Add)Monoid]` | See [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/144837-PR-reviews/topic/.2328803.20refactor.3A.20unbundle.20algebra.20from.20.60ENormed*.60/with/536024350) ------------ - [x] depends on: #28813 t-algebra merge-conflict slow-typeclass-synthesis awaiting-zulip t-analysis
label:t-algebra$
80/63 Mathlib/Analysis/CStarAlgebra/CStarMatrix.lean,Mathlib/Analysis/Normed/Group/Basic.lean,Mathlib/Analysis/Normed/Group/Continuity.lean,Mathlib/Analysis/Normed/Group/InfiniteSum.lean,Mathlib/Analysis/NormedSpace/IndicatorFunction.lean,Mathlib/MeasureTheory/Function/L1Space/AEEqFun.lean,Mathlib/MeasureTheory/Function/L1Space/HasFiniteIntegral.lean,Mathlib/MeasureTheory/Function/L1Space/Integrable.lean,Mathlib/MeasureTheory/Function/LocallyIntegrable.lean,Mathlib/MeasureTheory/Function/LpSeminorm/Basic.lean,Mathlib/MeasureTheory/Function/LpSeminorm/CompareExp.lean,Mathlib/MeasureTheory/Function/LpSeminorm/TriangleInequality.lean,Mathlib/MeasureTheory/Integral/IntegrableOn.lean,Mathlib/MeasureTheory/Integral/IntervalIntegral/Basic.lean 14 28 ['astrainfinita', 'bryangingechen', 'github-actions', 'grunweg', 'kbuzzard', 'leanprover-bot', 'leanprover-community-mathlib4-bot', 'mathlib-bors', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'sgouezel'] grunweg
assignee:grunweg
134-29001
4 months ago
142-66555
142 days ago
0-16864
4 hours
28925 grunweg
author:grunweg
chore: remove `linear_combination'` tactic When `linear_combination` was refactored in #15899, the old code was kept as the `linear_combination'` tactic, for easier migration. The consensus of the zulip discussion ([#mathlib4 > Narrowing the scope of `linear_combination` @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Narrowing.20the.20scope.20of.20.60linear_combination.60/near/470237816)) was to wait, and "revisit this once people have experienced the various tactics in practice". One year later, the old tactic has almost no uses: it is unused in mathlib; [searching on github](https://github.com/search?q=linear_combination%27%20path%3A*.lean&type=code) yields 37 hits --- all of which are in various forks of mathlib. Thus, removing this tactic seems appropriate. --- Do not merge before the zulip discussion has concluded! [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) merge-conflict file-removed awaiting-zulip 0/564 Mathlib.lean,Mathlib/Tactic.lean,Mathlib/Tactic/LinearCombination'.lean,Mathlib/Tactic/Linter/UnusedTactic.lean,MathlibTest/linear_combination'.lean 5 4 ['euprunin', 'github-actions', 'grunweg', 'mathlib4-merge-conflict-bot'] nobody
91-6211
2 months ago
unknown
unknown
30902 adomani
author:adomani
chore: longLine warnings happen starting at the 101st character Right now, the longLine linter warning spans the whole line. This PR changes the behaviour and the warning only covers the characters exceeding the 100 character limit. Previous discussion: [#general > error lens in lean4 @ 💬](https://leanprover.zulipchat.com/#narrow/channel/113488-general/topic/error.20lens.20in.20lean4/near/547074537) Specific thread: [#mathlib4 > Restrict longLine warning to exceeding characters @ 💬](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Restrict.20longLine.20warning.20to.20exceeding.20characters/near/547081669) --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-linter awaiting-zulip 1/1 Mathlib/Tactic/Linter/Style.lean 1 1 ['github-actions'] nobody
81-40335
2 months ago
unknown
unknown
22361 rudynicolop
author:rudynicolop
feat(Computability/NFA): nfa closure properties Add the closure properties union, intersection and reversal for NFA. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-computability merge-conflict awaiting-author awaiting-zulip 218/2 Mathlib/Computability/Language.lean,Mathlib/Computability/NFA.lean 2 91 ['EtienneC30', 'b-mehta', 'ctchou', 'github-actions', 'leanprover-community-bot-assistant', 'meithecatte', 'rudynicolop'] EtienneC30
assignee:EtienneC30
72-15901
2 months ago
unknown
unknown
30150 imbrem
author:imbrem
feat(CategoryTheory/Monoidal): to_additive for MonoidalCategory Add `AddMonoidalCategory`, the additive version of `MonoidalCategory`. To get this to work, I needed to _remove_ the `to_additive` attributes in `Discrete.lean`, since existing code relies on the `AddMonoid M → MonoidalCategory M` instance. For now, we simply implement the additive variants by hand instead. --- As discussed in #28718; I added an `AddMonoidalCategory` struct and tagged `MonoidalCategory` with `to_additive`, along with the lemmas in `Category.lean`. I think this is the right approach, since under this framework the "correct" additive version of `Discrete.lean` would be mapping an `AddMonoid` to an `AddMonoidalCategory`. Next steps would be to: - Make `monoidal_coherence` and `coherence` support `AddMonoidalCategory` - Add `CocartesianMonoidalCategory` extending `AddMonoidalCategory` [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-category-theory large-import new-contributor merge-conflict awaiting-zulip t-meta 444/125 Mathlib/CategoryTheory/Monoidal/Category.lean,Mathlib/CategoryTheory/Monoidal/Discrete.lean,Mathlib/Tactic/ToAdditive/GuessName.lean 3 22 ['JovanGerb', 'YaelDillies', 'github-actions', 'imbrem', 'mathlib4-merge-conflict-bot'] nobody
63-17085
2 months ago
102-82151
102 days ago
0-29227
8 hours
15651 TpmKranz
author:TpmKranz
feat(Computability/NFA): operations for Thompson's construction Lays the groundwork for a proof of equivalence of RE and NFA, w.r.t. described language. Actual connection to REs comes later, after the groundwork for the opposite direction has been laid. Third chunk of #12648 --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-computability merge-conflict awaiting-author awaiting-zulip 307/5 Mathlib/Computability/NFA.lean 1 27 ['TpmKranz', 'YaelDillies', 'dupuisf', 'github-actions', 'leanprover-community-bot-assistant', 'meithecatte', 'rudynicolop'] nobody
58-34217
1 month ago
unknown
unknown
15649 TpmKranz
author:TpmKranz
feat(Computability): introduce Generalised NFA as bridge to Regular Expression Lays the groundwork for a proof of equivalence of NFA and RE, w.r.t. described language. Actual connection to NFA comes later, after the groundwork for the opposite direction has been laid. Second chunk of #12648 --- - [x] depends on: #15647 [Data.FinEnum.Option unchanged since then] [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-computability merge-conflict awaiting-author awaiting-zulip 298/0 Mathlib.lean,Mathlib/Computability/GNFA.lean,Mathlib/Computability/Language.lean,Mathlib/Computability/RegularExpressions.lean,docs/references.bib 5 7 ['github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'meithecatte', 'trivial1711'] nobody
57-50458
1 month ago
unknown
unknown
20238 maemre
author:maemre
feat(Computability/DFA): Closure of regular languages under some set operations This shows that regular languages are closed under complement and intersection by constructing DFAs for them. --- Closure under all other operations will be proved when someone adds the proof for DFA<->regular expression equivalence, so they are not part of this PR. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor t-computability merge-conflict awaiting-author awaiting-zulip 159/0 Mathlib/Computability/DFA.lean,Mathlib/Computability/Language.lean 2 60 ['EtienneC30', 'YaelDillies', 'github-actions', 'maemre', 'mathlib4-merge-conflict-bot', 'meithecatte', 'urkud'] EtienneC30
assignee:EtienneC30
57-49548
1 month ago
unknown
unknown
20648 anthonyde
author:anthonyde
feat: formalize regular expression -> εNFA The file `Computability/RegularExpressionsToEpsilonNFA.lean` contains a formal definition of Thompson's method for constructing an `εNFA` from a `RegularExpression` and a proof of its correctness. --- - [x] depends on: #20644 - [x] depends on: #20645 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) merge-conflict t-computability awaiting-zulip new-contributor 490/0 Mathlib.lean,Mathlib/Computability/RegularExpressionsToEpsilonNFA.lean,docs/references.bib 3 7 ['anthonyde', 'github-actions', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot', 'meithecatte', 'qawbecrdtey'] nobody
57-1226
1 month ago
unknown
unknown
11800 JADekker
author:JADekker
feat: KappaLindelöf spaces Define KappaLindelöf spaces by following the first one-third of the API for Lindelöf spaces. The remainder will be added in a future PR. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) please-adopt merge-conflict t-topology awaiting-zulip 301/2 Mathlib.lean,Mathlib/Topology/Compactness/KappaLindelof.lean,Mathlib/Topology/Compactness/Lindelof.lean 3 38 ['ADedecker', 'JADekker', 'PatrickMassot', 'StevenClontz', 'adomani', 'github-actions', 'grunweg', 'kim-em', 'urkud'] nobody
56-59492
1 month ago
unknown
unknown
28141 YaelDillies
author:YaelDillies
chore: deprecate `BialgHom.coe_toLinearMap` `BialgHom.toLinearMap` is a fake projection. From Toric --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-ring-theory awaiting-zulip toric 5/11 Mathlib/RingTheory/Bialgebra/Hom.lean 1 16 ['YaelDillies', 'erdOne', 'eric-wieser', 'github-actions'] alreadydone
assignee:alreadydone
53-69337
1 month ago
53-69337
53 days ago
100-70827
100 days
30750 SnirBroshi
author:SnirBroshi
feat(Data/Quot): `toSet` and `equivClassOf` Define `toSet` which gets the set corresponding to an element of a quotient, and `equivClassOf` which gets the equivalence class of an element under a quotient. --- I found these definitions helpful when working with quotients, specifically `ConnectedComponents` of a `TopologicalSpace`. Additionally, I need `equivSigmaToSet` (in `Data/Setoid/Basic`) to prove things about `SimpleGraph.ConnectedComponent`. [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-data awaiting-author awaiting-zulip 179/0 Mathlib/Data/Quot.lean,Mathlib/Data/Set/Image.lean,Mathlib/Data/SetLike/Basic.lean,Mathlib/Data/Setoid/Basic.lean 4 3 ['TwoFX', 'eric-wieser', 'github-actions'] TwoFX
assignee:TwoFX
49-14
1 month ago
49-14
48 days ago
35-75966
35 days
30668 astrainfinita
author:astrainfinita
feat: `QuotType` This typeclass is primarily for use by type synonyms of `Quot` and `Quotient`. Using `QuotType` API for type synonyms of `Quot` and `Quotient` will avoid defeq abuse caused by directly using `Quot` and `Quotient` APIs. This PR also adds some typeclasses to support different ways to find the quotient map that should be used. See the documentation comments of these typeclasses for examples of usage. --- It's not a typical design to use these auxiliary typeclasses and term elaborators, but I haven't found a better way to support these notations. Some of the naming may need to be discussed. For example: - `⟦·⟧` is currently called `mkQ` in names. This distinguishes it from other `.mk`s and makes it possible to write the quotient map as `mkQ` `mkQ'` ~~`mkQ_ h`~~. But this will also require changing the old lemma names. - It would be helpful if the names of new type classes explained their functionality better. [Zulip](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/migrate.20to.20.60QuotLike.60.20API) This PR continues the work from #16421. Original PR: https://github.com/leanprover-community/mathlib4/pull/16421 RFC t-data awaiting-zulip 629/0 Mathlib.lean,Mathlib/Data/QuotType.lean,MathlibTest/QuotType.lean 3 20 ['YaelDillies', 'astrainfinita', 'github-actions', 'mathlib4-merge-conflict-bot', 'plp127', 'vihdzp'] nobody
35-41338
1 month ago
unknown
unknown
32608 PrParadoxy
author:PrParadoxy
feat(LinearAlgebra/PiTensorProduct): API for PiTensorProducts indexed by sets This PR addresses a TODO item in LinearAlgebra/PiTensorProduct.lean: * API for the various ways ι can be split into subsets; connect this with the binary tensor product -- specifically by describing tensors of type ⨂ (i : S), M i, for S : Set ι. Our primary motivation is to formalise the notion of "restricted tensor products". This will be the content of a follow-up PR. Beyond that, the Set API is natural in contexts where the index type has an independent interpretation. An example is quantum physics, where ι ranges over distinguishable degrees of freedom, and where its is common practice to annotate objects by the set of indices they are defined on. --- Stub file with preliminary definition of the restricted tensor product as a direct limit of tensors indexed by finite subsets of an index type: https://github.com/PrParadoxy/mathlib4/blob/restricted-stub/Mathlib/LinearAlgebra/PiTensorProduct/Restricted.lean --- - [x] depends on: #32598 [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor awaiting-zulip 300/2 Mathlib.lean,Mathlib/LinearAlgebra/PiTensorProduct.lean,Mathlib/LinearAlgebra/PiTensorProduct/Set.lean 3 28 ['PrParadoxy', 'dagurtomas', 'eric-wieser', 'github-actions', 'goliath-klein', 'leanprover-radar', 'mathlib4-dependent-issues-bot', 'mathlib4-merge-conflict-bot'] dagurtomas
assignee:dagurtomas
11-53108
11 days ago
23-52811
23 days ago
10-63624
10 days
32742 LTolDe
author:LTolDe
feat(MeasureTheory/Constructions/Polish/Basic): add class SuslinSpace add new class `SuslinSpace` for a topological space that is an analytic set in itself This will be useful to prove the **Effros Theorem**, see [zulip thread](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Effros.20Theorem/with/558712441). --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) new-contributor awaiting-zulip 4/0 Mathlib/MeasureTheory/Constructions/Polish/Basic.lean 1 9 ['ADedecker', 'LTolDe', 'dupuisf', 'github-actions', 'jcommelin'] PatrickMassot
assignee:PatrickMassot
8-59693
8 days ago
8-59846
8 days ago
11-6345
11 days
33368 urkud
author:urkud
feat: define `Complex.UnitDisc.shift` Also review the existing API UPD: I'm going to define a `PSL(2, Real)` action instead. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-analysis awaiting-zulip merge-conflict 273/39 Mathlib.lean,Mathlib/Analysis/Complex/UnitDisc/Basic.lean,Mathlib/Analysis/Complex/UnitDisc/Shift.lean 3 7 ['github-actions', 'j-loreaux', 'mathlib4-merge-conflict-bot', 'sgouezel', 'urkud'] j-loreaux
assignee:j-loreaux
8-9651
8 days ago
8-56384
8 days ago
6-73017
6 days
30526 SnirBroshi
author:SnirBroshi
chore(Logic/Relation): use `Subrelation` to state theorems chore(Logic/Relation): replace every `∀ x y, r x y → r' x y` with `Subrelation r r'` --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) awaiting-zulip t-logic 78/72 Mathlib/CategoryTheory/IsConnected.lean,Mathlib/CategoryTheory/Limits/Types/Coequalizers.lean,Mathlib/CategoryTheory/Limits/Types/Filtered.lean,Mathlib/Data/Setoid/Basic.lean,Mathlib/GroupTheory/FreeGroup/Basic.lean,Mathlib/Logic/Relation.lean,Mathlib/Order/Interval/Finset/Basic.lean,Mathlib/RingTheory/Congruence/Hom.lean 8 9 ['SnirBroshi', 'github-actions', 'mathlib4-merge-conflict-bot', 'thorimur', 'vihdzp'] thorimur
assignee:thorimur
4-18872
4 days ago
84-25590
84 days ago
8-45935
8 days

PRs on the review queue labelled 'tech debt' or 'longest-pole'

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
33896 loefflerd
author:loefflerd
refactor(Geometry/Manifold): split long file ChartedSpace.lean Split the > 1500 line file `Mathlib.Geometry.Manifold.ChartedSpace` into 3 shorter files. --- [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) t-differential-geometry tech debt 935/868 Mathlib.lean,Mathlib/Geometry/Manifold/ChartedSpace.lean,Mathlib/Geometry/Manifold/ConformalGroupoid.lean,Mathlib/Geometry/Manifold/HasGroupoid.lean,Mathlib/Geometry/Manifold/IsManifold/Basic.lean,Mathlib/Geometry/Manifold/LocalInvariantProperties.lean,Mathlib/Geometry/Manifold/StructureGroupoid.lean 7 1 ['github-actions'] grunweg
assignee:grunweg
2-35509
2 days ago
2-25789
2 days ago
2-25557
2 days
33921 SnirBroshi
author:SnirBroshi
chore(Data/Nat/Factorial): replace `n !` with `(n)!` everywhere Fixes ``Todo: replace occurrences of `n !` with `(n)!` in Mathlib.`` from `Data/Nat/Factorial/Basic.lean`. Only literals are allowed to use factorial unparenthesized, e.g. `5!`. --- The TODO was introduced in #18085, with an accompanying [Zulip discussion](https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/precedence.20of.20Nat.2Efactorial) that decided on this. The factorial notation is used in Mathlib on the following kinds of expressions: - `Nat` numerals, e.g. `5`, there are 20 such cases - Identifiers, e.g. `n` or `n.succ` or `l.length` or `p.natDegree`, there are 433 such cases - Structure projection, e.g. `n.1`, there are 20 such cases - Parenthesized expressions, e.g. `(n + k)`, there are 293 such cases - Type ascriptions, e.g. `(n : ℕ)` (these don't count as parenthesized in `Lean.Syntax`), there are [3](https://github.com/leanprover-community/mathlib4/blob/b2f24e70b375e42e5a60251a2f43baa20ca668f1/MathlibTest/norm_num_ext.lean#L625) [such](https://github.com/leanprover-community/mathlib4/blob/b2f24e70b375e42e5a60251a2f43baa20ca668f1/Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean#L378) [cases](https://github.com/leanprover-community/mathlib4/blob/b2f24e70b375e42e5a60251a2f43baa20ca668f1/Mathlib/MeasureTheory/Measure/Lebesgue/VolumeOfBalls.lean#L384) This PR normalizes everything to use `(...)!` notation, except for numerals which don't require parentheses. Note that structure projections also don't require parentheses but it looks confusing (see [this](https://github.com/leanprover-community/mathlib4/blob/4baa44807be87d9aba67c680ae68c2ba4a7fc29b/Mathlib/Data/Nat/Factorial/NatCast.lean#L106) and [this](https://github.com/leanprover-community/mathlib4/blob/4baa44807be87d9aba67c680ae68c2ba4a7fc29b/Mathlib/NumberTheory/Bernoulli.lean#L150)), so parentheses were added. I used metaprogramming + Python to create this PR; these are the non-formulaic changes: - Deleted the TODO in `Data/Nat/Factorial/Basic.lean` - Fixed 3 comments in `Data/Nat/Factorial/Basic.lean` that used ` !` - The replacement caused these lines to go over the length limit, so I fixed them manually: - `Archive/Imo/Imo2019Q4.lean:84` - `Mathlib/Data/Nat/Choose/Basic.lean:289` - `Mathlib/RingTheory/DividedPowers/RatAlgebra.lean:134` - `Mathlib/RingTheory/Polynomial/ShiftedLegendre.lean:71` In a future PR I'll add a linter that requires parentheses inside factorials for non-numerals, then the whitespace linter will lint against spaces between `)` and `!`. (though the pretty printer's parenthesizer still prefers adding spaces instead of parentheses, not sure how to fix it) [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/from-referrer/) tech debt t-data 402/401 Archive/Imo/Imo1987Q1.lean,Archive/Imo/Imo2001Q4.lean,Archive/Imo/Imo2019Q4.lean,Mathlib/Algebra/BigOperators/Intervals.lean,Mathlib/Algebra/Group/ForwardDiff.lean,Mathlib/Algebra/Polynomial/Derivative.lean,Mathlib/Algebra/Polynomial/FieldDivision.lean,Mathlib/Algebra/Polynomial/HasseDeriv.lean,Mathlib/Algebra/Polynomial/SumIteratedDerivative.lean,Mathlib/Analysis/Analytic/Binomial.lean,Mathlib/Analysis/Calculus/ContDiff/Bounds.lean,Mathlib/Analysis/Calculus/Deriv/ZPow.lean,Mathlib/Analysis/Calculus/FDeriv/Analytic.lean,Mathlib/Analysis/Calculus/IteratedDeriv/WithinZpow.lean,Mathlib/Analysis/Calculus/Taylor.lean,Mathlib/Analysis/Complex/Exponential.lean,Mathlib/Analysis/Complex/TaylorSeries.lean,Mathlib/Analysis/Distribution/SchwartzSpace.lean,Mathlib/Analysis/Distribution/TemperateGrowth.lean,Mathlib/Analysis/Normed/Algebra/Exponential.lean,Mathlib/Analysis/ODE/PicardLindelof.lean,Mathlib/Analysis/Real/Pi/Irrational.lean,Mathlib/Analysis/Real/Pi/Wallis.lean,Mathlib/Analysis/SpecialFunctions/Exp.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Basic.lean,Mathlib/Analysis/SpecialFunctions/Gamma/Beta.lean,Mathlib/Analysis/SpecialFunctions/Gamma/BohrMollerup.lean,Mathlib/Analysis/SpecialFunctions/OrdinaryHypergeometric.lean,Mathlib/Analysis/SpecialFunctions/Stirling.lean,Mathlib/Analysis/SpecialFunctions/Trigonometric/Cotangent.lean,Mathlib/Analysis/SpecificLimits/Basic.lean,Mathlib/Analysis/SpecificLimits/Normed.lean,Mathlib/Combinatorics/Enumerative/Bell.lean,Mathlib/Data/Fintype/Perm.lean,Mathlib/Data/List/Permutation.lean,Mathlib/Data/Nat/Choose/Basic.lean,Mathlib/Data/Nat/Choose/Bounds.lean,Mathlib/Data/Nat/Choose/Cast.lean,Mathlib/Data/Nat/Choose/Factorization.lean,Mathlib/Data/Nat/Choose/Multinomial.lean,Mathlib/Data/Nat/Factorial/Basic.lean,Mathlib/Data/Nat/Factorial/BigOperators.lean,Mathlib/Data/Nat/Factorial/DoubleFactorial.lean,Mathlib/Data/Nat/Factorial/NatCast.lean,Mathlib/Data/Nat/Factorial/SuperFactorial.lean,Mathlib/Data/Nat/Multiplicity.lean,Mathlib/Data/Nat/Prime/Factorial.lean,Mathlib/Data/Nat/Prime/Infinite.lean,Mathlib/Data/ZMod/Factorial.lean,Mathlib/GroupTheory/IndexNormal.lean,Mathlib/GroupTheory/Perm/Centralizer.lean,Mathlib/NumberTheory/Bernoulli.lean,Mathlib/NumberTheory/BernoulliPolynomials.lean,Mathlib/NumberTheory/Harmonic/GammaDeriv.lean,Mathlib/NumberTheory/ModularForms/EisensteinSeries/QExpansion.lean,Mathlib/NumberTheory/Padics/PadicVal/Basic.lean,Mathlib/NumberTheory/PrimesCongruentOne.lean,Mathlib/NumberTheory/Transcendental/Lindemann/AnalyticalPart.lean,Mathlib/NumberTheory/Transcendental/Liouville/LiouvilleNumber.lean,Mathlib/NumberTheory/ZetaValues.lean,Mathlib/Probability/Distributions/Poisson.lean,Mathlib/Probability/Moments/MGFAnalytic.lean,Mathlib/RingTheory/DividedPowers/Basic.lean,Mathlib/RingTheory/DividedPowers/Padic.lean,Mathlib/RingTheory/DividedPowers/RatAlgebra.lean,Mathlib/RingTheory/Nilpotent/Exp.lean,Mathlib/RingTheory/Polynomial/HilbertPoly.lean,Mathlib/RingTheory/Polynomial/Pochhammer.lean,Mathlib/RingTheory/Polynomial/ShiftedLegendre.lean,Mathlib/RingTheory/PowerSeries/WellKnown.lean,Mathlib/Tactic/NormNum/NatFactorial.lean,Mathlib/Topology/Algebra/Order/Floor.lean,MathlibTest/GCongr/inequalities.lean,MathlibTest/Simproc/Divisors.lean,MathlibTest/factorial.lean,MathlibTest/norm_num_ext.lean,MathlibTest/positivity.lean 77 1 ['github-actions'] nobody
0-67145
18 hours ago
0-80719
22 hours ago
0-80487
22 hours